1. 02 Nov, 2009 5 commits
  2. 29 Sep, 2009 1 commit
  3. 16 Sep, 2009 1 commit
  4. 31 Aug, 2009 1 commit
  5. 18 Aug, 2009 1 commit
  6. 01 Aug, 2009 1 commit
  7. 05 Jun, 2009 1 commit
  8. 01 May, 2009 1 commit
  9. 12 Apr, 2009 4 commits
  10. 03 Apr, 2009 1 commit
  11. 14 Mar, 2009 1 commit
  12. 01 Mar, 2009 1 commit
  13. 12 Feb, 2009 1 commit
  14. 07 Feb, 2009 2 commits
  15. 01 Jan, 2009 1 commit
  16. 01 Dec, 2008 1 commit
  17. 29 Nov, 2008 1 commit
  18. 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
  19. 05 Nov, 2008 1 commit
  20. 31 Oct, 2008 1 commit
  21. 25 Oct, 2008 1 commit
  22. 11 Oct, 2008 1 commit
  23. 20 Sep, 2008 1 commit
  24. 03 Sep, 2008 1 commit
  25. 05 Aug, 2008 1 commit
  26. 02 Jul, 2008 2 commits
  27. 01 Jul, 2008 1 commit
  28. 30 Jun, 2008 1 commit
  29. 15 Jun, 2008 1 commit
  30. 01 Jun, 2008 1 commit
  31. 29 May, 2008 1 commit