Dave Cooper wrote:
I'm not sure how much this matters because it's mostly a backward compatibility issue with something which is a relatively new feature anyway, but
(asdf:output-file[s] 'asdf:monolithic-fasl-op ...)
no longer works in 3.1.3 (at least on CCL/Linux).
I'm sorry -- what does it mean that it no longer works? It raises an error? No such method? Or does it return some default value?
The new nomenclature
is apparently:
(asdf:output-file[s] 'asdf:monolithic-compile-bundle-op ...)
is 'asdf:monolithic-compile-bundle-op indeed the exact replacement for 'asdf:monolithic-fasl-op?
I believe that the intent of the following:
(defclass monolithic-fasl-op (selfward-operation) ((selfward-operation :initform 'monolithic-compile-bundle-op :allocation :class)))
is that one does a MONOLITHIC-FASL-OP to oneself by doing a MONOLITHIC-COMPILE-BUNDLE-OP.
It makes sense that from the PoV of *performing* this operation, the above delegation would work. However, it also makes sense that if you try to treat this operation as a real operation with its own attributes (like OUTPUT-FILES), this will not work.
Question: what's the best fix here? One possibility would be to simply smash the old names, since they provide only imperfect compatibility. Perhaps this could be done by leaving them, but adding code to cause any attempt to make an instance of them to raise a continuable error whose continuation is to make an instance of the newly-named OPERATION class. This is only a hazy thought: I'm not sure that an :AROUND method on MAKE-INSTANCE will work properly.
Cheers, r