(cl:in-package :cl-user)
+(load "assertoid.lisp")
+(use-package "ASSERTOID")
+
;;; Until sbcl-0.7.9.x, EVAL was not correctly treating LOCALLY,
;;; MACROLET and SYMBOL-MACROLET, which should preserve top-levelness
;;; of their body forms:
(symbol-macrolet ((foo (symbol-macrolet-bar 1)))
(defmacro symbol-macrolet-bar (x) `(+ ,x 1))
(assert (= foo 2)))
-\f
+
+;;; Bug reported by Paul Dietz: CONSTANTP on a self-evaluating object
+;;; must return T
+(assert (constantp (find-class 'symbol)))
+(assert (constantp #p""))
+
+;;; DEFPARAMETER must assign a dynamic variable
+(let ((var (gensym)))
+ (assert (equal (eval `(list (let ((,var 1))
+ (defparameter ,var 2)
+ ,var)
+ ,var))
+ '(1 2))))
+
+;;; Bug 264: SYMBOL-MACROLET did not check for a bound SPECIAL
+;;; declaration
+(assert (raises-error? (progv '(foo) '(1)
+ (eval '(symbol-macrolet ((foo 3))
+ (declare (special foo))
+ foo)))
+ error))
+
+;;; MAKE-PACKAGE (and other &key functions) should signal an error
+;;; when given a NIL key. This is kind of a compiler test really, but
+;;; this'll do as a resting place.
+(handler-case
+ (eval '(make-package "FOO" nil nil))
+ (error () :ok)
+ (:no-error (c) (error "MAKE-PACKAGE succeeded: ~S" c)))
+
+;;; FUNCTION
+(defun function-eq-test ()
+ 'ok)
+(trace function-eq-test)
+(assert (eq (eval '(function function-eq-test))
+ (funcall (compile nil '(lambda () (function function-eq-test))))))
+
;;; success
(sb-ext:quit :unix-status 104)
-
-