[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]



In system 26.3, with microcode 616, on LISP Machine One:
The Compile File command in the editor, unlike Evaluate Buffer and Compile Buffer,
doesn't actually install things like macro definitions in any place that they can
be used later.  Thus, for example, if I have a macro definition (or a defun
enclosed in (eval-when (compile) ...)), I can't use that macro or function as part
of the computation in another macro.  Here's the example that blasted it out:
	(defmacro pack-intern args
	  `(intern-local (make-symbol (string-append ,@args))))

	(defmacro foo (fn . stuff)
	  (let ((name (pack-intern fn "-" (gensym))))
	    ...))
When the compiler tries to macro-expand a call of foo, pack-intern isn't defined
(for Compile File only).

Apparently if I want this to work I have to evaluate or compile the file once before
I do the Compile File.  This doesn't seem reasonable to me.