*READ-SUPPRESS* is T
** Signal an error if a symbol that names a declaration is used
as the name of a type, or vice versa
+ ** Allow using the (declare (typespec var*)) abbreviation for
+ (declare (type typespec var*)) with all type specifiers.
changes in sbcl-0.9.1 relative to sbcl-0.9.0:
* fixed cross-compiler leakages that prevented building a 32-bit
;;; implements that by converting (FOO X Y) to (TYPE FOO X Y).
(defun canonized-decl-spec (decl-spec)
(let ((id (first decl-spec)))
- (unless (symbolp id)
- (error "The declaration identifier is not a symbol: ~S" id))
- (let ((id-is-type (info :type :kind id))
+ (let ((id-is-type (if (symbolp id)
+ (info :type :kind id)
+ ;; A cons might not be a valid type specifier,
+ ;; but it can't be a declaration either.
+ (or (consp id)
+ (typep id 'class))))
(id-is-declared-decl (info :declaration :recognized id)))
+ ;; FIXME: Checking ID-IS-DECLARED is probably useless these days,
+ ;; since we refuse to use the same symbol as both a type name and
+ ;; recognized declaration name.
(cond ((and id-is-type id-is-declared-decl)
(compiler-error
"ambiguous declaration ~S:~% ~
LIBS = ${OS_LIBS} -lm
-sbcl: $(OBJS) $(LIBS)
- $(CC) ${LINKFLAGS} -o $@ $^
+sbcl: $(OBJS)
+ $(CC) ${LINKFLAGS} -o $@ $^ $(LIBS)
sbcl.nm: sbcl
$(NM) sbcl | grep -v " F \| U " > ,$@
;;; 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.1.18"
+"0.9.1.19"