* incompatible change: the --noprogrammer option, deprecated since
version 0.7.5, has been removed. Please use the equivalent
--disable-debugger option instead.
+ * Null lexical environments are now printed as #<NULL-LEXENV>,
+ significantly reducing the amount of clutter in typical backtraces.
* improved the startup banner. (thanks to Brian Mastenbrook and
Teemu Kalvas)
* optimization: REPLACE on declared (UNSIGNED-BYTE 8) vectors, as well
(define-condition reference-condition ()
((references :initarg :references :reader reference-condition-references)))
+;;; KLUDGE: yet another OAOOM.
+;;;
+;;; FIXME: This is clearly one OAOOM KLUDGE too many in a row. When tempted
+;;; to add another one invent DEF!CONDITION or whatever seems necessary,
+;;; and replace these.
+(define-condition type-warning (reference-condition simple-warning)
+ ()
+ (:default-initargs :references (list '(:sbcl :node "Handling of Types"))))
+
(define-condition bug (simple-error)
()
(:report
;;; (This is also what shows up as an ENVIRONMENT value in macroexpansion.)
#!-sb-fluid (declaim (inline internal-make-lexenv)) ; only called in one place
(def!struct (lexenv
- (:constructor make-null-lexenv ())
+ (:print-function print-lexenv)
+ (:constructor make-null-lexenv ())
(:constructor internal-make-lexenv
(funs vars blocks tags
type-restrictions
(null (make-null-lexenv))
(lexenv x)))
+(defun null-lexenv-p (lexenv)
+ (equalp (coerce-to-lexenv lexenv) (make-null-lexenv)))
+
+(defun print-lexenv (lexenv stream level)
+ (if (null-lexenv-p lexenv)
+ (print-unreadable-object (lexenv stream)
+ (write-string "NULL-LEXENV" stream))
+ (default-structure-print lexenv stream level)))
+
(defun maybe-inline-syntactic-closure (lambda lexenv)
(declare (type list lambda) (type lexenv lexenv))
(aver (eql (first lambda) 'lambda))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.21.10"
+"0.8.21.11"