gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gcl-devel] Suspicious code in SUBTYPEP


From: Paul F. Dietz
Subject: [Gcl-devel] Suspicious code in SUBTYPEP
Date: Wed, 26 Feb 2003 21:44:30 -0600
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2) Gecko/20021126

Looking at subtypep in lsp/predlib.lsp, I see the following code
was introduced in version 1.5:

<   (setq type1 (normalize-type type1))
<   (setq type2 (normalize-type type2))
---
>   (setq t1 (normalize-type type1))
>   (setq type1 (if (eq (car t1) 'satisfies) (list type1) t1))
>   (setq t2 (normalize-type type2))
>   (setq type2 (if (eq (car t2) 'satisfies) (list type2) t2))
> ;  (setq type1 (normalize-type type1))
> ;  (setq type2 (normalize-type type2))


This is apparently causing problems on types like GENERIC-FUNCTION:

>(subtypep '(and generic-function generic-function) 'generic-function)


  1> (SUBTYPEP (AND GENERIC-FUNCTION GENERIC-FUNCTION)
         GENERIC-FUNCTION)
    2> (SYSTEM::NORMALIZE-TYPE (AND GENERIC-FUNCTION GENERIC-FUNCTION))
    <2 (SYSTEM::NORMALIZE-TYPE (AND GENERIC-FUNCTION GENERIC-FUNCTION))
    2> (SYSTEM::NORMALIZE-TYPE GENERIC-FUNCTION)
    <2 (SYSTEM::NORMALIZE-TYPE
           (SATISFIES PCL::|TYPE-PREDICATE LISP GENERIC-FUNCTION|))
    2> (SUBTYPEP GENERIC-FUNCTION (GENERIC-FUNCTION))
      3> (SYSTEM::NORMALIZE-TYPE GENERIC-FUNCTION)
      <3 (SYSTEM::NORMALIZE-TYPE
             (SATISFIES PCL::|TYPE-PREDICATE LISP GENERIC-FUNCTION|))
      3> (SYSTEM::NORMALIZE-TYPE (GENERIC-FUNCTION))
      <3 (SYSTEM::NORMALIZE-TYPE
             (SATISFIES PCL::|TYPE-PREDICATE LISP GENERIC-FUNCTION|))
      3> (TYPEP #<Standard-Class CONDITIONS::INTERNAL-TYPE-ERROR 1037623550>
                STANDARD-CLASS)
      <3 (TYPEP T)
      3> (TYPEP CONDITIONS::INTERNAL-TYPE-ERROR CONDITION)
      <3 (TYPEP NIL)
      3> (TYPEP #<Standard-Class CONDITIONS::INTERNAL-TYPE-ERROR 1037623550>
                STANDARD-CLASS)
      <3 (TYPEP T)
      3> (TYPEP #<CONDITIONS::INTERNAL-TYPE-ERROR.8> CONDITION)
      <3 (TYPEP T)
      3> (TYPEP #<CONDITIONS::INTERNAL-TYPE-ERROR.8> NIL)
      <3 (TYPEP NIL)
      3> (TYPEP #<CONDITIONS::INTERNAL-TYPE-ERROR.8> CONDITION)
      <3 (TYPEP T)
      3> (TYPEP #<CONDITIONS::INTERNAL-TYPE-ERROR.8> CONDITION)
      <3 (TYPEP T)
      3> (TYPEP #<CONDITIONS::INTERNAL-TYPE-ERROR.8> CONDITION)
      <3 (TYPEP T)
      3> (TYPEP #<CONDITIONS::INTERNAL-TYPE-ERROR.8> CONDITION)
      <3 (TYPEP T)
Error in SYSTEM::TRACE-CALL [or a callee]: (GENERIC-FUNCTION) is not of type 
STRING.


        Paul





reply via email to

[Prev in Thread] Current Thread [Next in Thread]