1. 02 Nov, 2009 2 commits
  2. 06 Nov, 2008 1 commit
    • 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.)
  3. 23 Feb, 2008 1 commit
  4. 28 Dec, 2006 1 commit
  5. 27 Dec, 2006 1 commit
  6. 30 Nov, 2006 1 commit
  7. 26 Aug, 2006 1 commit
    • Pascal Costanza's avatar
      Checked against sbcl 0.9.16 - several changes. · 7a1791a4
      Pascal Costanza authored
      SBCL 0.9.16 now passes all MOP Feature Tests.
      This makes several changes necessary in the Closer to MOP support for SBCL, again. Therefore, support for SBCL 0.9.15 is dropped. The darcs repository has been tagged with '0.33' in case you need a version that works with SBCL 0.9.15.
  8. 29 Jul, 2006 4 commits
  9. 20 Jul, 2006 1 commit
    • 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))
      This is captured in the new utility function ensure-finalized.
  10. 01 Feb, 2006 1 commit
  11. 27 Jan, 2006 2 commits
    • Pascal Costanza's avatar
      Added a utility function required-args. · 72da63ab
      Pascal Costanza authored
    • Pascal Costanza's avatar
      Replaced programmatic implementation of ensure-method in CMUCL and SBCL. · 40f5f703
      Pascal Costanza authored
      In CMUCL and SBCL, ensure-method was implemented as proposed in AMOP. However in some cases, this seems to lead to problems with method combination. For the time being, I have replaced the implementation by using a generated defmethod form instead, like in some of the other CL implementations. (In SBCL, this isn't as straightforward because SBCL doesn't accept class metaobjects as specializers.)
  12. 30 Nov, 2005 1 commit
  13. 17 Nov, 2005 1 commit
  14. 29 Oct, 2005 1 commit
  15. 10 Sep, 2005 1 commit
  16. 16 Aug, 2005 1 commit
    • Pascal Costanza's avatar
      Class initialization patches. · fbfe9405
      Pascal Costanza authored
      The correction of lists of direct superclasses was done at the wrong place (in :around methods on initialize-instance and reinitialize-instance). The MOP specification doesn't allow to define primary methods for initialize-instance and reinitialize-instance, but these are the only places where those lists can be corrected in a reasonable way. This affects LispWorks and MCL.
      Further changes:
      - The typep implementation for MCL was incorrect.
      - reinitialize-instance for standard-class could be simplified.
      - reinitialize-instance for standard-generic-function could be simplified.
  17. 02 Aug, 2005 1 commit