anchor.diff:  
   (in-package :linedit-system)
   
  +;;;; Loading specific files based on features.
  +
  +(defun featurep (x)
  +  (typecase x
  +    (cons
  +     (case (car x)
  +       ((:not not)
  +        (cond
  +          ((cddr x)
  +           (error "Too many subexpressions in feature expression: ~S" x))
  +          ((null (cdr x))
  +           (error "Too few subexpressions in feature expression: ~S" x))
  +          (t (not (featurep (cadr x))))))
  +       ((:and and) (every #'featurep (cdr x)))
  +       ((:or or) (some #'featurep (cdr x)))
  +       (t
  +        (error "Unknown operator in feature expression: ~S." x))))
  +    (symbol
  +     (not (null (member x *features* :test #'eq))))
  +    (t
  +      (error "Invalid feature expression: ~S" x))))
  +
  +(defclass port-file (cl-source-file)
  +  ((test :initform nil)))
  +
  +(defmethod shared-initialize :after ((port port-file) slots &key when unless)
  +  (setf (slot-value port 'test)
  +        (cond ((and when unless)
  +               `(:and ,when (:not ,unless)))
  +              (when)
  +              (unless)
  +              (t
  +               (error "~S has no feature conditionals." port)))))
  +
  +(defmethod perform :around ((op load-op) (port port-file))
  +  (when (featurep (slot-value port 'test))
  +    (call-next-method)))
  +
  +(defmethod perform :around ((op load-source-op) (port port-file))
  +  (when (featurep (slot-value port 'test))
  +    (call-next-method)))
  +
  +(defmethod perform :around ((op compile-op) (port port-file))
  +  (when (featurep (slot-value port 'test))
  +    (call-next-method)))
  +
  +;;;; C compiler
  +
   (defvar *gcc* "/usr/bin/gcc")
   
   (defvar *gcc-options*
  
positive.code:    #-sbcl
     (list "/usr/lib/bundle1.o" "-flat_namespace" "-undefined" "suppress")))
  
  ;;; Separate class so that we don't mess up other packages
  (defclass uffi-c-source-file (c-source-file) ())
  
  (defmethod output-files ((o compile-op) (c uffi-c-source-file))
    (list (make-pathname :name (component-name c)
  		       :type #-(or darwin macosx) "so" #+(or darwin macosx) "dylib"
  		       :defaults (component-pathname c))))
  
  (defmethod perform ((o load-op) (c uffi-c-source-file))
    (let ((loader (intern (symbol-name '#:load-foreign-library) :uffi)))
  
negative.code: 
  (defmethod perform ((o compile-op) (c uffi-c-source-file))
    (unless (zerop (run-shell-command "~A ~A ~{~A ~}-o ~A"
                                      *gcc*
                                      (namestring (component-pathname c))
                                      *gcc-options*
                                      (namestring (car (output-files o c)))))
      (error 'operation-error :component c :operation o)))
  
  (defsystem :linedit
  