Hi Konrad, > 1) Does the Interpretor do any kind of tail call optimisation, I
No, not at all. As far as I can see, this is not easy to implement in an efficient way. The interpreter would have to detect tail recursion at runtime, which takes much more than time than simply executing the call/return. Each function must inspect itself, just to find those (extremely few) cases of tail recursion. Above that, it would violate some basic principles of picoLisp. Trying to be clever behind the scenes, doing things the programmer did not explicitly specify, losing simplicity and what-you-see-is-what-you-get. Tail recursion is nothing more than a simple loop. So we might better write directly what we mean, using 'while', 'for', 'loop' etc. > 2) With the release of SquirlFish there a lot of discussion about You mean SquirrelFish? Actually, I've never heard about it before... > Direct threading and register based VM's is any of that potentially > relevent to Pico Lisp. In that sense, picoLisp is also a threaded interpreter. Probably much faster than a bytecode interpreter, though, as the elements in a thread perform more high-level operations (e.g. complete list manipulations) than simple byte codes (which typically do more basic operations). Did I get your question right? Cheers, - Alex -- UNSUBSCRIBE: mailto:[EMAIL PROTECTED]