* bug fix: GC race condition occasionally resulting in crashes with
the error message "SIG_STOP_FOR_GC blocked at a bad place" has been
fixed.
+ * bug fix: &ENVIRONMENT variables in macro lambda lists can now be
+ declared ignored.
+ * bug fix: DEFSETF lambda lists without &ENVIRONMENT no longer cause
+ a STYLE-WARNING to be signalled (regression from 1.0.4.)
changes in sbcl-1.0.5 relative to sbcl-1.0.4:
* incompatible change: removed writer methods for host-ent-name,
(assign-setf-macro
',access-fn
(lambda (,access-form-var ,env-var)
- (declare (ignorable ,env-var))
+ ,@local-decs
(%defsetf ,access-form-var ,(length store-variables)
(lambda (,whole-var)
- ,@local-decs
,body)))
nil
',doc))))))
(parse-defmacro-lambda-list lambda-list whole-var name context
:error-fun error-fun
:anonymousp anonymousp)
- (values `(let* (,@(when env-arg-used
- `((,*env-var* ,env-arg-name)))
- ,@(nreverse *system-lets*))
+ (values `(let* (,@(nreverse *system-lets*))
,@(when *ignorable-vars*
`((declare (ignorable ,@*ignorable-vars*))))
,@*arg-tests*
- (let* ,(nreverse *user-lets*)
+ (let* (,@(when env-arg-used
+ `((,*env-var* ,env-arg-name)))
+ ,@(nreverse *user-lets*))
,@declarations
,@(if wrap-block
`((block ,(fun-name-block-name name)
(program-error ()
:ok))))
+;;; ignore &environment
+(handler-bind ((style-warning #'error))
+ (compile nil '(lambda ()
+ (defmacro macro-ignore-env (&environment env)
+ (declare (ignore env))
+ :foo)))
+ (compile nil '(lambda ()
+ (defmacro macro-no-env ()
+ :foo))))
+
;;; success
(error ()
:error))))
+(handler-bind ((style-warning #'error))
+ (compile nil '(lambda ()
+ (defsetf test-defsetf-no-env (foo) (new)
+ `(set-foo ,foo ,new))))
+ (compile nil '(lambda ()
+ (defsetf test-defsetf-ignore-env (foo &environment env) (new)
+ (declare (ignore env))
+ `(set-foo ,foo ,new)))))
+
;;; success
;;; 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".)
-"1.0.5.4"
+"1.0.5.5"