Skip to content
  • Francois-Rene Rideau's avatar
    Fix upgrade issue with asdf/bundle. · 8e68ac22
    Francois-Rene Rideau authored
    Change implementation strategy for operation metadata methods
    bundle-type, gather-operation and gather-type.
    
    Upgrading from 3.1.7 or earlier yielded incorrect values for the metadata slots
    of the bundle operation classes, e.g.
    (gather-type (make-operation 'monolithic-lib-op))) was stuck to :STATIC-LIBRARY
    instead of its correct value :OBJECT since 3.2.0.
    The reason was that we were storing the value for this method in the :initform
    for the slot gather-type, which started as clever way of defining it as part of
    the DEFCLASS form for the class itself; however, this usage pattern does not
    work well with hot code upgrade: if the :initform changes during ASDF upgrade,
    the slot is already initialized, so its value isn't updated. That would require
    a method on UPDATE-INSTANCE-FOR-REDEFINED-CLASS, which hopefully should be
    invoked despite the fact that the shape of the class hasn't changed.
    A new slot won't be allocated because (a) we ensure that our operation classes
    are sing...
    8e68ac22