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.)
      
      darcs-hash:1577003438ad08385a1e4f7cf24254fce79ea359
      a641d0f0
  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.
      
      darcs-hash:4bfdc272ae29918f08b54d0bdc14fed29b443814
      7a1791a4
  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))
      class
      
      This is captured in the new utility function ensure-finalized.
      
      darcs-hash:7d147f9c086e13bd2b83e670953ac124ec7dcb27
      347d934e
  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
      darcs-hash:a6d51c1d634b093f9403635cb3ec6230bba703b1
      72da63ab
    • 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.)
      
      darcs-hash:a9161a505f3d6fc1376d2e9d065da70c59ec99e2
      40f5f703
  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.
      
      darcs-hash:c8e542ff6d11161f8c50c8595710590711c6732b
      fbfe9405
  17. 02 Aug, 2005 1 commit