On 24 Apr 2024, at 3:39, Didier Verna wrote:

> 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.

The one thing that worries me about that is that I don't know how well all the 
supported lisp implementations handle defining new method combinations.

But otherwise I agree that this would be an appropriate thing to do.

Reply via email to