anchor.diff:                (t
                  (error "~S has no feature conditionals." port)))))
   
  -(defmethod perform :around ((op load-op) (port port-file))
  +(defmethod perform :around ((op load-op) (port linedit-port-file))
     (when (featurep (slot-value port 'test))
       (call-next-method)))
   
  -(defmethod perform :around ((op load-source-op) (port port-file))
  +(defmethod perform :around ((op load-source-op) (port linedit-port-file))
     (when (featurep (slot-value port 'test))
       (call-next-method)))
   
  -(defmethod perform :around ((op compile-op) (port port-file))
  +(defmethod perform :around ((op compile-op) (port linedit-port-file))
     (when (featurep (slot-value port 'test))
       (call-next-method)))
   
  
positive.code:             :components (;; This has definitions which signal an error, replaced
                           ;; by port-specific files below when possible.
                           (:file "generic")
                           (:port-file "sbcl" :when :sbcl)
                           (:port-file "ccl" :when :ccl)))))
  
negative.code:     (t
        (error "Invalid feature expression: ~S" x))))
  
  (defclass linedit-port-file (cl-source-file)
    ((test :initform nil)))
  
  (defmethod shared-initialize :after ((port linedit-port-file) slots &key when unless)
    (setf (slot-value port 'test)
          (cond ((and when unless)
                 `(:and ,when (:not ,unless)))
  