*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"