From cd89447eec61ad9e84988d0c363f071ecc379a2d Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Sun, 28 Jun 2009 19:36:24 +0200 Subject: [PATCH] DEFCONSTANT must also define the constant at compile time. --- src/CHANGELOG | 3 +++ src/lsp/evalmacros.lsp | 1 + 2 files changed, 4 insertions(+) diff --git a/src/CHANGELOG b/src/CHANGELOG index 8ebcd1e5d..a9e3a063c 100644 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -38,6 +38,9 @@ ECL 9.6.3: - Compiler messages no show the offending form and file position. Before this information was not properly stored in the compiled code tree. + - DEFCONSTANT only had the expected compile-time side effects in the bytecodes + compiler, not in the lisp->C translator. + * Visible changes: - The toplevel only traps SERIOUS-CONDITIONS. diff --git a/src/lsp/evalmacros.lsp b/src/lsp/evalmacros.lsp index 301d04c7a..a726ca059 100644 --- a/src/lsp/evalmacros.lsp +++ b/src/lsp/evalmacros.lsp @@ -119,6 +119,7 @@ VARIABLE doc and can be retrieved by (DOCUMENTATION 'SYMBOL 'VARIABLE)." ,(ext:register-with-pde whole) ,(unless *bytecodes-compiler* `(eval-when (:compile-toplevel) + (sys:*make-constant ',var ,form) (si::register-global ',var))) ',var))