François-René ÐVB Rideau écrivait:

> What are the methods defined by asdf-flv?

  In order to support file local variables, ASDF-FLV does this:

(defmethod asdf:perform :around
    ((operation asdf:load-op) (file asdf:cl-source-file))
  "Establish new dynamic bindings for file-local variables."
  (progv *file-local-variables*
      (mapcar #'symbol-value *file-local-variables*)
    (call-next-method)))

(defmethod asdf:perform :around
    ((operation asdf:compile-op) (file asdf:cl-source-file))
  "Establish new dynamic bindings for file-local variables."
  (progv *file-local-variables*
      (mapcar #'symbol-value *file-local-variables*)
    (call-next-method)))


The problem, of course, is that loading ASDF-FLV will override any
existing method with the same signature, and conversely, anything else
loaded afterward will override ASDF-FLV.

ASDF-FLV could subclass ASDF:CL-SOURCE-FILE and specialize only on that
subclass, but that would defeat its pervasiveness and make it more
difficult to have multiple extensions working together. Hence Robert's
idea of mixins. My own idea was to have exported operations use a
special method combination allowing multiple methods with the same
signature.

-- 
Resistance is futile. You will be jazzimilated.

Jazz site:   http://www.didierverna.com
Other sites: http://www.didierverna.info

Reply via email to