From: Matthew D S. <ak...@ch...> - 2006-05-24 23:02:30
|
Brian Downing wrote: >On Wed, May 24, 2006 at 04:28:01PM -0500, Matthew D Swank wrote: > > >>The Hyperspec says the following about print-object: >> >>Each implementation is required to provide a method on the class >>standard-object and on the class structure-object. In addition, each >>implementation must provide methods on enough other classes so as to >>ensure that there is always an applicable method. >> >>So, should the humble extender of such methods hold any hope that they >>will be called? >> >> > >IMHO, no, because of this: > >| 11.1.2.1.2 Constraints on the COMMON-LISP Package for Conforming >| Programs >| >| Except where explicitly allowed, the consequences are undefined if any >| of the following actions are performed on an external symbol of the >| COMMON-LISP package: >| >| ... >| >| 19. Defining a method for a standardized generic function which is >| applicable when all of the arguments are direct instances of >| standardized classes. > >Admittedly it would be nice if this weren't the case, but I think it >places a pretty large burdeon on the implementation to support this >(and still go fast). > >-bcd > > > In that case, why does sbcl even allow my method to be defined? What use is a print-object method (my extension, or the standard mandated one) that doesn't hook into the lisp printer? Matt Matt |