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

[no subject]



This one is slightly silly, but:

On CADR-8, running System 21.7, microcode 604, and on CADR-1 and
CADR-2, also running 21.7:

The function si:closure-variables is broken. It returns only the
first of the closure's variables. Looking at the source code, on
LISPM2; CLASS 68, one is unsure why it even does that, as there is
a misplaced paren in a do-loop:

;RETURNS LIST OF VARIABLES CLOSED BY A ENTITY
(DEFUN CLOSURE-VARIABLES (CLOSURE)
   (CHECK-ARG CLOSURE (OR (ENTITYP CLOSURE) (CLOSUREP CLOSURE)) "an entity or a closure")
   (DO ((L (CDR (%MAKE-POINTER DTP-LIST CLOSURE)) (CDDR L))
        (ANS NIL (CONS (%MAKE-POINTER-OFFSET DTP-SYMBOL (CAR L) -1)) ANS))
       ((NULL L) ANS)))

Fifth line should be:

        (ANS NIL (CONS (%MAKE-POINTER-OFFSET DTP-SYMBOL (CAR L) -1) ANS)))