Steven M. Haflich <smh_no_spiced_ham@alum.mit.edu> wrote:
+---------------
| One of the brilliant language-simplification moves of the X3J13
| compiler subcommittee was to recommend that the language remove
| any compile-file-top-level special behavior from all CL _functions_.
| The necessary semantics of defmumble defining macros would be
| implemented by expansion into transparent eval-when forms, and
| (I recollect this was the only such case) in-package was changed
| from a function into a macro.
+---------------
Thanks! After reading your comment, I also found it quite
helpful to pass the following forms through CMUCL & CLISP:
(macroexpand '(defmacro foo (x) `(+ ,x 1)))
(macroexpand '(in-package "foo"))
"Very interesting..."
+---------------
| Now for the simple, general rule: "No CL function operators have any
| irregular interpretation by the file compiler at top-level." That's
| why the eval-when is necessary, to give the call to the require function
| its special behavior at compile time.
+---------------
Thanks again.
-Rob
-----
Rob Warnock, PP-ASEL-IA <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607