Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
Source project has a limited visibility.
  • pw's avatar
    20f73982
    DEFAULT-STRUCTURE-PRINT was puking on certain cases of structures that · 20f73982
    pw authored
    included other defstructs. An example of a failing case is:
    
    (defstruct a1 s1)
    (defstruct (a2 (:include a1)(:conc-name a1-)) s2)
    
    as seen in Hemlock source. The problem was that the dsd-accessor slot
    is documented to sometimes contain NIL but default-structure-print
    blindly called fdefinition on the sometimes NIL value. The fix here
    is to compute the slot accessor name from the conc-name and slot-name.
    
    NOTE: There is code in ir1tran that also blindly calls fdefinition
    on the contents of dsd-accessor. Don't know if this is a latent bug.
    20f73982
    History
    DEFAULT-STRUCTURE-PRINT was puking on certain cases of structures that
    pw authored
    included other defstructs. An example of a failing case is:
    
    (defstruct a1 s1)
    (defstruct (a2 (:include a1)(:conc-name a1-)) s2)
    
    as seen in Hemlock source. The problem was that the dsd-accessor slot
    is documented to sometimes contain NIL but default-structure-print
    blindly called fdefinition on the sometimes NIL value. The fix here
    is to compute the slot accessor name from the conc-name and slot-name.
    
    NOTE: There is code in ir1tran that also blindly calls fdefinition
    on the contents of dsd-accessor. Don't know if this is a latent bug.