For some more details see comments for (define-alien-type-method
(c-string :deport-gen) ...) in host-c-call.lisp.
-400: "aggressive constant folding"
- (fixed in sbcl-0.9.10.17)
-
+401: "optimizer runaway on bad constant type specifiers in TYPEP"
+ In 0.9.12.3 (and probably many earlier versions), COMPILE-FILE on
+ (defun ouch401 ()
+ (etypecase (signum (- x y))
+ ((-1 nil))
+ ((0 1) (oops "shouldn't happen"))))
+ or just
+ (defun foo401 (x)
+ (typep x '(-1 nil)))
+ spins emitting what seems to be an endless series of compiler
+ warnings like
+ ; --> TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP
+ ; --> TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP TYPEP
+ ; --> TYPEP
+ ; ==>
+ ; (TYPEP SB-C::OBJECT '(-1 NIL))
+ ;
+ ; caught WARNING:
+ ; illegal type specifier for TYPEP: (-1 NIL)
,@body
(return-from ,skip nil)))))
(ir1-convert ,start ,next ,result
- (make-compiler-error-form ,condition ,form)))))))
+ (make-compiler-error-form ,condition
+ ,form)))))))
;; Translate FORM into IR1. The code is inserted as the NEXT of the
;; CTRAN START. RESULT is the LVAR which receives the value of the
(aver (and (consp lexical-def)
(eq (car lexical-def) 'macro)))
(ir1-convert start next result
- (careful-expand-macro (cdr lexical-def)
- form))))))
+ (careful-expand-macro
+ (cdr lexical-def)
+ form))))))
((or (atom opname) (not (eq (car opname) 'lambda)))
(compiler-error "illegal function call"))
(t
;;; 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.12.3"
+"0.9.12.4"