Opened 5 years ago
Last modified 21 months ago
#351 new defect
Compiler loses lexical macro in (eval-when (:compile-toplevel ...))
Reported by: | mevenson | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 1.6.0 |
Component: | compiler | Version: | 1.4.0-dev |
Keywords: | has-test | Cc: | |
Parent Tickets: |
Description
Douglas Katzman reports in http://article.gmane.org/gmane.lisp.armedbear.devel/3132 that:
This code fragment works with (LOAD "/tmp/foo.lisp") but not (COMPILE-FILE "/tmp/foo.lisp") (eval-when (:compile-toplevel :load-toplevel :execute) (defvar *count* 0) (macrolet ((something (sym) `(setf (get ,sym 'uniqueid) (incf *count*)))) (defun register-it (x) (something x)))) (eval-when (:compile-toplevel :execute) (format t "~&OK so far~%") (register-it :foo)) (eval-when (:compile-toplevel :execute) (format t "~&Got ~D~%" (symbol-plist :foo))) Armed Bear Common Lisp 1.3.0 Java 1.7.0_51 Oracle Corporation Java HotSpot(TM) 64-Bit Server VM Low-level initialization completed in 0.258 seconds. Startup completed in 1.231 seconds. Type ":help" for a list of available commands. CL-USER(1): (compile-file "/tmp/foo.lisp") ; Compiling /private/tmp/foo.lisp ... ; (DEFVAR *COUNT* ...) ; (DEFUN REGISTER-IT ...) OK so far #<THREAD "interpreter" {3A284BEE}>: Debugger invoked on condition of type UNDEFINED-FUNCTION The function SOMETHING is undefined. Restarts: …
Subtickets (add)
Change History (2)
comment:1 Changed 2 years ago by mevenson
- Milestone changed from 1.4.0 to 1.5.0
comment:2 Changed 21 months ago by mevenson
- Milestone changed from 1.5.0 to 1.6.0
Ticket retargeted after milestone closed
Note: See
TracTickets for help on using
tickets.
Ticket retargeted after milestone closed