(defconstantp progv (symbols values &body forms)
:test (and (constantp* symbols)
(constantp* values)
- (let ((*special-constant-variables*
- (append (constant-form-value* symbols)
- *special-constant-variables*)))
- (every #'constantp* forms)))
+ (let* ((symbol-values (constant-form-value* symbols))
+ (*special-constant-variables*
+ (append symbol-values *special-constant-variables*)))
+ (progv
+ symbol-values
+ (constant-form-value* values)
+ (every #'constantp* forms))))
:eval (progv
(constant-form-value* symbols)
(constant-form-value* values)
'(x)
'(1)
(1+ x)) t 2)
- ((unwind-protect 1 nil) t 1)
- ((unwind-protect 1
- (xxx)) nil)
- ((the integer 1) t 1)
- ((the integer (+ 1 1)) t 2)
- ((the integer (foo)) nil)
+ ((progv '(x) '(t)
+ (if x 1 2)) t 1)
+ ((unwind-protect 1 nil) t 1)
+ ((unwind-protect 1
+ (xxx)) nil)
+ ((the integer 1) t 1)
+ ((the integer (+ 1 1)) t 2)
+ ((the integer (foo)) nil)
((+ 1 2) t 3)))
(destructuring-bind (form c &optional v) test
(assert (eql (constantp form) c))
;;; 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.9.10.4"
+"0.9.10.5"