Hi,

Yes, it seems that the package is not the place to be declaring nicknames. How 
can one know in advance, all preferred future designations?

I faced a situation similar to this (decisions being made too early) the other 
day when examining the use of tail-call optimization in a micro-Lisp compiled 
to Forth for use in embedded systems. Forth (ITC) has a little code-word header 
on each compiled verb. That code word points to executable behavior for the 
verb. 

For machine (Assembly language) routines, it merely points to the following 
body of compiled code. But for higher level threaded code, it points to a 
kernel entry named DOCOL (do-colon) which pushes the current IP (akin to an 
instruction pointer) onto the return stack and then loads the IP with the 
address of the following words.

The problem here is that the decision to stack a return address should have 
been up to the call-site, not the callee. On its face, this prevents tail-call 
optimization. There are ways around it -- at the call site -- but it isn't 
pretty.

Some things are just better left to users, rather than attempting to anticipate 
every possible future use...


Dr. David McClain
[email protected]




_______________________________________________
asdf-devel mailing list
[email protected]
http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel

Reply via email to