Compiling the following file in the latest ABCL (r13272) illustrates the error:
---------------------------
(in-package :cl-user)
(eval-when (:compile-toplevel :load-toplevel :execute) (setf *print-case* ':downcase))
(defstruct rec a b)
---------------------------
Alternatively, remove the EVAL-WHEN and set *PRINT-CASE* as :downcase before compiling the file containing only the DEFSTRUCT.
On 5/1/11 8:11 PM, Dan Corkill wrote:
(in-package :cl-user)
(eval-when (:compile-toplevel :load-toplevel :execute) (setf*print-case* ':downcase))
(defstruct rec a b)
Filed as [ticket #147][#147].
[#147]: http://trac.common-lisp.net/armedbear/ticket/147
Hi Mark, Dan,
On Mon, May 2, 2011 at 6:07 AM, Mark Evenson evenson@panix.com wrote:
On 5/1/11 8:11 PM, Dan Corkill wrote:
(in-package :cl-user)
(eval-when (:compile-toplevel :load-toplevel :execute) (setf*print-case* ':downcase))
(defstruct rec a b)
Filed as [ticket #147][#147].
Yesterday evening, I took a short stab at analyzing this issue. I think it's an interaction between the lisp reader/printer assignment and the way our FASLs work. To be more precise: in DUMP-FORM (used from the compiler), we don't bind *all* the printer/reader influencing dynamic values, but rather only a limited number of them.
It'll take more than the 20 minutes I had to analyze the best solution. I'll come back hopefully later this week.
Regards,
Erik.
armedbear-devel@common-lisp.net