From: Paul F. D. <di...@dl...> - 2003-02-04 13:19:44
|
I've added more tests to the gcl/ansi-tests suite. Here are some problems in SBCL 0.7.12: ----- I defined a class TAC-1-CLASS with two (disjoint) subclasses, TAC-1A-CLASS and TAC-1B-CLASS. However: Test USER-CLASS-DISJOINTNESS failed Form: (LOOP [...] (CLASSES-ARE-DISJOINT TYPE 'TAC-1-CLASS))) Expected value: NIL Actual value: (((SUBTYPEP '(AND FUNCTION TAC-1-CLASS) NIL) ==> NIL T) ((SUBTYPEP '(AND TAC-1-CLASS FUNCTION) NIL) ==> NIL T) ((SUBTYPEP '(AND STREAM TAC-1-CLASS) NIL) ==> NIL T) ((SUBTYPEP '(AND TAC-1-CLASS STREAM) NIL) ==> NIL T)). Test USER-CLASS-DISJOINTNESS-2 failed Form: (CHECK-DISJOINTNESS 'TAC-1A-CLASS 'TAC-1B-CLASS) Expected value: NIL Actual value: (((SUBTYPEP '(AND TAC-1A-CLASS TAC-1B-CLASS) NIL) ==> NIL T) ((SUBTYPEP '(AND TAC-1B-CLASS TAC-1A-CLASS) NIL) ==> NIL T)). I think SUBTYPEP is returning NIL here because any two standard classes might become non-disjoint in the future. But as I read it, SUBTYPEP has to respect whether they are disjoint *now*. If a class is added that inherits from both TAC-1A-CLASS and TAC-1B-CLASS then the result of those tests should become <true> <true>, but not until then. ----- Test ALL-STANDARD-CLASSES-ARE-SUBTYPES-OF-STANDARD-OBJECT failed [...] Expected value: NIL Actual value: (STANDARD-GENERIC-FUNCTION GENERIC-FUNCTION). There's a requirement that any member of STANDARD-CLASS also be a subtype of STANDARD-OBJECT (section 4.3.1, paragraph 8). Two classes are violating this requirement. ----- Test ALL-STANDARD-GENERIC-FUNCTIONS-ARE-INSTANCES-OF-THAT-CLASS failed [...] Expected value: NIL Actual value: ((CLASS-NAME #<FUNCTION "top level local call SB-XC:CLASS-NAME" {102B43D}>)). CLASS-NAME is listed as a standard generic function, but it is not a generalized instance of STANDARD-GENERIC-FUNCTION or GENERIC-FUNCTION as required (see section 4.3.1, last paragraph.) Paul |