Hi Alex, this is strange indeed. I checked on Bash/Archlinux as well, same problem as Win Term / WSL2, so this is not about WSL or so.
I can like you define a dummy wrapper, and debug it, and it looks fine: : (de foo (I J) (! native NIL NIL 1.0 I J)) -> foo : (foo 2 3) (native NIL NIL 1 I J) ! J -> 3 So here I can use J as argument name, and it works. But with my real wrapper functions, where ever I use J, as first or second arg, its interpreted as a transient symbol and is NIL, even if I create a fake wrapper without any real lib reference: : (rmath~exp_rand_fake2 3 2) (native NIL NIL 1 "J" B) ! J -> NIL But when I rename J to H in my real wrapper function, the problem is gone: : (rmath~pwilcox 1.2 2.1 3.2 3 2) (native "libRmath.so" "pwilcox" 1 (cons X 1) (cons Y 1) (cons Z 1) I H) ! H -> 2 So I think I know whats the problem here: its reading the function definitions from a library file vs defining the definition directly in the repl. (load "libRmath.l") seems to have a problem with the char J used for a paramter, and somehow converts it into a transient symbol. The easy solution is therefore to avoid J as parameter name ;-) But maybe I found a bug? Cheers Thorsten Am So., 15. Nov. 2020 um 09:01 Uhr schrieb Alexander Burger < a...@software-lab.de>: > Hi Thorsten, > > > (de pwilcox (X Y Z I J) > > ... > > : (rmath~pwilcox 2.7 6.20 5.4 1 3) > > (native "libRmath.so" "pwilcox" 1 (cons X 1) (cons Y 1) (cons Z 1) I "J") > > ... > > ! J > > -> NIL > > Why is that second Integer argument interpreted as transient symbol, and > > then NIL although the actual arg = 3? > > This is strange. I tried the same here, and get > > (native NIL "pwilcox" 1000000 (cons X 1000000) (cons Y 1000000) (cons Z > 1000000) I J) > > And I get 3 as expected for 'J'. > > Note the scaled integers! It seems your *Scl is zero. But this does not > explain > what you see. Are you sure you pasted exactly what you tested? > > > > In the docs I only find: > > "The number of fixpoint arguments is limited to six." > > but that looks irrelevant here. > > Yes, for pil64. For pil21 this no longer holds. There is no more limit on > the > number of float or double arguments. > > ☺/ A!ex > > -- > UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe >