modifying a superclass raises error on subclass

Bug #1286645 reported by Faré
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
New
Undecided
Unassigned

Bug Description

While trying to upgrade from ASDF 2.32 to ASDF 3.1.0.83, I get this error while trying to redefine ASDF/BUNDLE:BUNDLE-OP:

While computing the class precedence list of the class named ASDF/CONCATENATE-SOURCE:COMPILE-CONCATENATED-SOURCE-OP.
It is not possible to compute the class precedence list because
there is a circularity in the local precedence relations.
This arises because:
  The class named ASDF/LISP-ACTION:BASIC-COMPILE-OP appears in the supers of the class named ASDF/BUNDLE:BUNDLE-OP.
  The class named ASDF/BUNDLE:BUNDLE-OP follows the class named ASDF/LISP-ACTION:BASIC-COMPILE-OP in the supers of the class named ASDF/CONCATENATE-SOURCE:COMPILE-CONCATENATED-SOURCE-OP.

The class hierarchy is changed to make more sense, but this causes issues while hot upgrading the code. Could SBCL provide a mechanism (maybe a restart?) to invalidate methods using the subclass without preventing me from reaching the point where the subclass will be redefined to resolve the circularity?

Revision history for this message
Faré (fahree) wrote :

Not an urgent bug, since unintern provides an acceptable (though frankly quite ugly) workaround, sufficient for my purposes. But that means that all the nice data upgrade protocol (upgrade-instance-for-redefined-class) becomes unavailable, and we have to drop in-memory data and reconstitute it from disk — not nice.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.