;;; 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
;;; 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))