[Ecls-list] Endless loop of compiler errors

Hannu Koivisto azure at iki.fi
Wed Feb 13 07:30:15 UTC 2002


Greetings,

Command "ecl -compile foo.lisp"

with foo.lisp containing...

(defmacro invoke-alien-type-method (method type &rest args)
  (let ((slot (method-slot method)))
    (once-only ((type type))
      `(funcall (do ((class (alien-type-class-or-lose (alien-type-class ,type))
                            (alien-type-class-include class)))
                    ((null class)
                     (error "Method ~S not defined for ~S"
                            ',method (alien-type-class ,type)))
                  (let ((fn (,slot class)))
                    (when fn
                      (return fn))))
                ,type , at args))))

...results to an endless loop of the following error message:

;;; You are recommended to compile again.
;;; The form (DEFMACRO INVOKE-ALIEN-TYPE-METHOD (METHOD TYPE &REST
ARGS) (LET ((SLOT (METHOD-SLOT METHOD))) (ONCE-ONLY ((TYPE
TYPE)) (LIST* 'FUNCALL (LIST 'DO (LIST (LIST 'CLASS (LIST
'ALIEN-TYPE-CLASS-OR-LOSE (LIST 'ALIEN-TYPE-CLASS TYPE))
'(ALIEN-TYPE-CLASS-INCLUDE CLASS))) (LIST '(NULL CLASS) (LIST
'ERROR "Method ~S not defined for ~S" (LIST 'QUOTE METHOD)
(LIST 'ALIEN-TYPE-CLASS TYPE))) (LIST 'LET (LIST (LIST 'FN
(LIST SLOT 'CLASS))) '(WHEN FN (RETURN FN)))) TYPE ARGS)))) was
not evaluated successfully.

I would expect messages about method-slot and once-only not being
defined or something like that.

-- 
Hannu
Please don't send copies of list mail




More information about the ecl-devel mailing list