0.pre7.110:
[sbcl.git] / src / code / primordial-extensions.lisp
index f78d9f8..db95431 100644 (file)
 ;;; and there's also the noted-below problem that the C-level code
 ;;; contains implicit assumptions about this marker.
 ;;;
-;;; KLUDGE: Note that as of version 0.6.6 there's a dependence in the
+;;; KLUDGE: Note that as of version 0.pre7 there's a dependence in the
 ;;; gencgc.c code on this value being a symbol. (This is only one of
-;;; many nasty dependencies between that code and this, alas.)
-;;; -- WHN 2001-02-28
+;;; several nasty dependencies between that code and this, alas.)
+;;; -- WHN 2001-08-17
 ;;;
 ;;; FIXME: We end up doing two DEFCONSTANT forms because (1) LispWorks
 ;;; needs EVAL-WHEN wrapped around DEFCONSTANT, and (2) SBCL's
@@ -47,7 +47,8 @@
 ;;; interpreter to go away, which is waiting for sbcl-0.7.x..
 (eval-when (:compile-toplevel :load-toplevel :execute)
   (defconstant +empty-ht-slot+ '%empty-ht-slot%))
-(defconstant +empty-ht-slot+ '#.+empty-ht-slot+) ; egads.. See FIXME above.
+;;; We shouldn't need this mess now that EVAL-WHEN works.
+#+nil (defconstant +empty-ht-slot+ '#.+empty-ht-slot+) ; egads.. See FIXME above.
 ;;; KLUDGE: Using a private symbol still leaves us vulnerable to users
 ;;; getting nonconforming behavior by messing around with
 ;;; DO-ALL-SYMBOLS. That seems like a fairly obscure problem, so for
      ,@(when doc (list doc))))
 (defun %defconstant-eqx-value (symbol expr eqx)
   (flet ((bummer (explanation)
-          (error "~@<bad DEFCONSTANT-EQX ~S: ~2I~_~A~:>" symbol explanation)))
+          (error "~@<bad DEFCONSTANT-EQX ~S ~2I~_~S: ~2I~_~A ~S~:>"
+                 symbol
+                 expr
+                 explanation
+                 (symbol-value symbol))))
     (cond ((not (boundp symbol))
           expr)
          ((not (constantp symbol))