Re: miniPicoLisp Trasnients
Hi Doug, > (de foo (x) x) > ... > (de baz ("X") "X") Hmm, this looks very much as if the call isIntern(tail(y), Transient) doesn't work for some reason. It seems that the two "X" symbols are not the same. Strange that it works for 'Internal' symbols. > (setq "V" 456) > at the top level (not in a definition) that works as expected Again strange. It shouldn't matter how the symbol is used (globally or bound locally). > I wonder why it might not see "X" as a transient? (Er, I'm not even > sure if "transient" is the the right terminology here.) Yes, "transient" is correct. I suspect that the above effects are partially random. The reason must have to do with the index tree handling in isIntern() and intern(). Perhaps again some alignment or pointer-tag problem? Cheers, - Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
miniPicoLisp Trasnients
Alex, I have a porting-related question for you. After more android testing I'm finding a problem with (transient) variables ... (I think). When I try a definition like this, (de foo (x) x) no problem, (foo 123) returns 123 as expected. But when I try it this way: (de baz ("X") "X") (baz 123) I should get 123 but instead I get: "X" However, if I try (setq "V" 456) at the top level (not in a definition) that works as expected, and evaluating "V" later returns 456 I wonder why it might not see "X" as a transient? (Er, I'm not even sure if "transient" is the the right terminology here.) Does anything leap out at you there? :-) Cheers, Doug -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe