Re: [Jprogramming] j807 cd - pass array arguments

2018-11-18 Thread bill lam
You can try 15!:14<'name' to get the address and then pass this address using signature x. But if you pass address directly, J will not downsize/upsize the array, your callee should aware of this. Mon, 19 Nov 2018, Ben Gorte написал(а): > When trying & , I apparently do not know what I am doing,

Re: [Jprogramming] j807 cd - pass array arguments

2018-11-18 Thread Ben Gorte
When trying & , I apparently do not know what I am doing, because it immediately crashes my session. However, I do feel meanwhile that I get an increasing number of copies of my (large) dataset in memory, so perhaps I should find out what I should be doing. As I understand, & can help to avoid cop

Re: [Jprogramming] j807 cd - pass array arguments

2018-11-18 Thread bill lam
"The memory is unaliased." refers to the memory as seen by the callee of cd. Any changes made by callee won't be written back to the original memory. That's why the value of names remained unchanged after cd call. Unless you had taken the address of name and passed the address to cd. The release n

Re: [Jprogramming] j807 cd - pass array arguments

2018-11-18 Thread Ben Gorte
Dear Henry, Bill, Linda, Thanks for your responses, I am getting the point/ers. Perhaps in https://code.jsoftware.com/wiki/Guides/DLLs/Calling_DLLs#J807_Incompatibilities , the phrase: "The DLL can read or write this memory." is a bit confusing, although it also says "The memory is unaliased." Th

Re: [Jprogramming] Revisisting the Y combinator

2018-11-18 Thread Jose Mario Quintana
Yes Roger, I mentioned in the first post of this thread that both use ad-hoc encodings to implement anonymous recursions (and I was not very proud of the tacit version). On Sunday, November 18, 2018, roger stokes wrote: > Pepe, have you seen the Rosettacode entry for Y-combinator in J ? > The

Re: [Jprogramming] j807 cd - pass array arguments

2018-11-18 Thread Henry Rich
What Bill is saying is that starting in 807, cd makes an copy of any argument to cd that might be shared by another noun.  So, the value of 'res' is put into a temporary block and passed to the DLL.  The temporary block is put into the boxed result of cd.  You need to look in that boxed result,

Re: [Jprogramming] j807 cd - pass array arguments

2018-11-18 Thread bill lam
j807 must get from result of cd, like this 0 3{ (sqrdll, 'sqr i i *i *i') cd (#y);y;res On Sun, Nov 18, 2018, 2:22 PM Ben Gorte Dear All, > > Long ago I made quite a lot of c-functions that I am calling from J using > the cd mechanism (load 'dll') in linux. > > They stopped working in j64-807. I

Re: [Jprogramming] Revisisting the Y combinator

2018-11-18 Thread roger stokes
Pepe, have you seen the Rosettacode entry for Y-combinator in J ? The tacit version is just before this: http://www.rosettacode.org/wiki/Y_combinator#Explicit_alternate_implementation Regards On Fri, Nov 16, 2018 at 10:06 PM Jose Mario Quintana < jose.mario.quint...@gmail.com> wrote: > Yes, i