anchor.diff:  operating system, and hardware architecture."
     (or *implementation-specific-directory-name*
         (setf *implementation-specific-directory-name*
  -            (flet ((first-of (features)
  -                     (loop for f in features
  -                           when (find f *features*) return it))
  -                   (maybe-warn (value fstring &rest args)
  -                     (cond (value)
  -                           (t (apply #'warn fstring args)
  -                              "unknown"))))
  +            (labels ((fp (thing)
  +                       (etypecase thing
  +                         (symbol
  +                          (let ((feature (find thing *features*)))
  +                            (when feature (return-from fp feature))))
  +                         ;; allows features to be lists of which the first
  +                         ;; member is the "main name", the rest being aliases
  +                         (cons
  +                          (dolist (subf thing)
  +                            (let ((feature (find subf *features*)))
  +                              (when feature (return-from fp (first thing))))))))
  +                     (first-of (features)
  +                       (loop for f in features
  +                             when (fp f) return it))
  +                     (maybe-warn (value fstring &rest args)
  +                       (cond (value)
  +                             (t (apply #'warn fstring args)
  +                                "unknown"))))
                 (let ((lisp (maybe-warn (first-of *implementation-features*)
                                         "No implementation feature found in ~a." 
                                         *implementation-features*))
  
positive.code:     :linux :unix))
  
  (defparameter *architecture-features*
    '(:amd64 :x86-64 :x86_64 :i686 :i586 :pentium3 
      :i486 :i386 :pc386 :iapx386 :x86 :pentium4
      :hppa64 :hppa :ppc64 :ppc32 :powerpc :ppc :sparc64 :sparc))
  
  ;; note to gwking: this is in slime, system-check, and system-check-server too
  
negative.code: 
  
  (defparameter *implementation-features*
    '(:allegro :lispworks :sbcl :ccl :openmcl :cmu :clisp
      :corman :cormanlisp :armedbear :gcl :ecl :scl))
  
  (defparameter *os-features*
  