[slime-devel] CMUCL 20a startup issue

Tobias C. Rittweiler tcr at freebits.de
Wed Nov 4 12:35:05 UTC 2009


Martin Simmons <martin at lispworks.com> writes:

> BTW, just to clarify the l-t-v semantics: all dynamic variable bindings in the
> global and dynamic environments at load time are available, even though the
> null lexical environment has no bindings.  The null lexical environment just
> prevents you from mixing up load time and execution time like this:
>
> (let ((foo (print 10)))   ; a lexical binding
>   (load-time-value foo))

It's unfortunately not as easy as that because of:

  It is guaranteed that the evaluation of [L-V-T's] form will take place
  only once when the file is loaded, but the order of evaluation with
  respect to the evaluation of top level forms in the file is
  implementation-dependent.

So L-V-T cannot portably access variables defined in other toplevel
forms of the same file.

  -T.





More information about the slime-devel mailing list