[Asdf-devel] (asdf:output-file 'asdf:monolithic-fasl-op ...) no longer working

Robert P. Goldman rpgoldman at sift.info
Tue Jul 29 18:47:05 UTC 2014


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





More information about the asdf-devel mailing list