Skip to content
  1. Feb 17, 2013
  2. Dec 09, 2012
  3. Mar 18, 2012
  4. Jan 23, 2010
  5. Jan 20, 2010
  6. Nov 30, 2009
  7. Nov 21, 2009
    • Pascal Costanza's avatar
      Major reorganization of the code, plus support for generic function invocation... · 489aba97
      Pascal Costanza authored
      Major reorganization of the code, plus support for generic function invocation protocols in Allegro Common Lisp.
      
      Ignore-this: 9be21704dcdc2ab8e47f596e5a82ff3b
      
      A major reorganization of the code became necessary, because the old structure became harder than necessary to maintain. I have now moved code that is similar across many Common Lisp implementations into a shared source code file, and leave only small parts to implementation-dependent source code files. The setup of packages is combined into one file, and all relevant symbols are now exported from the packages, including symbols that may not have any definitions in some Common Lisp implementations. To further simplify things, I have moved source code from subfolders into the main folder, to avoid hierarchy creep.
      
      Finally, Allegro Common Lisp now also supports the full generic function invocation protocols.
      
      darcs-hash:4b756a79272aa1381988469961dd04652b9f712b
      489aba97
  8. Nov 17, 2009
    • Pascal Costanza's avatar
      Separated code strictly into folders per implementation, and cleaned up the code. · 198ec387
      Pascal Costanza authored
      Ignore-this: 8505094d361aee4763045939771f8cfa
      
      Originally, when I started Closer to MOP, I expected implementations that stem from the same original implementations to have similar issues with regard to CLOS MOP compatibility. So specifically, I packaged the code for CMUCL and SBCL into one folder, and that for MCL, OpenMCL and Clozure Common Lisp into one folder. It turned out that the incompatibilites are not at all similar, and that this created more problems than it solved. So I now decided to keep implementations strictly separated, to make my life easier in the future.
      
      darcs-hash:b18e457aea79fad11fed31cb4d2e94af211cc4ef
      198ec387
  9. Nov 04, 2009
  10. Nov 02, 2009
  11. Nov 06, 2008
    • Pascal Costanza's avatar
      Added utility function subclassp. · a641d0f0
      Pascal Costanza authored
      Some CLOS implementations have problems with determining subtype relationships between classes in certain corner cases. For example, clisp doesn't like to determine such relationships for forward referenced classes, and some instances of PCL have problems with anonymous classes under certain circumstances (primarily when doing CLOS MOP programming).
      
      Apparently, subtypep is typically implemented based on the class precedence list, which can only be determined until after a class has been finalized, and this seems to be one of the reasons for these problems. However, the CLOS MOP places restrictions on methods for compute-class-precedence-list such that the subtype relationship actually does _not_ depend on the precedence list, but can be based on a membership test in the unordered set of all direct and indirect superclasses.
      
      I have provided subclassp in Closer to MOP as a utility function that does just that: It walks the superclass hierarchy to determine whether one class is a subclass of another. This implementation is not that efficient, so it should only be used when subtypep fails. (It could probably be made more efficient, but since this is only provided as a replacement for subtypep in hopefully rare corner cases, I haven't put the energy into this to do this yet.)
      
      darcs-hash:1577003438ad08385a1e4f7cf24254fce79ea359
      a641d0f0
  12. Nov 05, 2008
  13. May 29, 2008
  14. Oct 14, 2006
  15. Jul 20, 2006
    • Pascal Costanza's avatar
      Added a new utility function ensure-finalized. · 347d934e
      Pascal Costanza authored
      A pretty common idiom is this:
      
      (unless (class-finalized-p class)
        (finalize-inheritance class))
      class
      
      This is captured in the new utility function ensure-finalized.
      
      darcs-hash:7d147f9c086e13bd2b83e670953ac124ec7dcb27
      347d934e
  16. Jan 27, 2006
  17. Aug 02, 2005