From: Sam S. <sd...@gn...> - 2017-08-02 22:34:40
|
http://clhs.lisp.se/Body/03_bcaa.htm: >> It is not specified whether definitions made available in the >> compilation environment are available in the evaluation environment, nor >> is it specified whether they are available in subsequent compilation >> units or subsequent invocations of the compiler. Some macros form Figure 3-8 leak into the evaluation environment and some do not. Specifically, declaim, defvar, defconstant, defparameter do NOT. defmacro, defclass, defstruct, defpackage DO. This kinda makes sense - except for declaim which I think should be in the second list. On the second thought, I think this is not quite right. Compiling a file should have an effect of loading its lib file. E.g., in a single session, using an example from http://clisp.org/impnotes/require.html, (compile-file "foo") will _not_ define variables defined in "foo", but (compile-file "bar") will load "foo.lib" (because of `(require "foo")` in "bar.lisp") and thus will define the variables. Bruno, can you elaborate on these design decisions? (possibly by committing a patch to doc/impbody.xml) Do you think declaim should be in the second list? Thanks. -- Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.1504 http://steingoldpsychology.com http://www.childpsy.net http://iris.org.il https://ffii.org http://thereligionofpeace.com http://islamexposedonline.com Lisp: its not just for geniuses anymore. |