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

Lucid Walker can't walk labels



The version of PCL dated "4/29/87 prime  April 29, 1987" can't walk
labels forms in Lucid lisp.  Here is my test file that illustrates
this:

(in-package :user)
(use-package :pcl)
(defclass tree () ()
  (:accessor-prefix nil))

(defmethod baz ((self tree))
  (with-slots (self)
	(labels ((rec-print-tree (node) 4)))))

and here's what happens:

> (compile-file "~/test/foo.lisp" :messages nil)
>>Interrupt: segmentation violation

MACROEXPAND-1:
   Required arg 0 (FORM): (LABELS ((REC-PRINT-TREE # 4))
(WALKER::MAKE-LEXICAL-ENVIRONMENT-2))
   Optional arg 1 (ENV): -37339120

:A    Abort to Lisp Top Level
-> :n
EVALHOOK:
   Required arg 0 (FORM): (LABELS ((REC-PRINT-TREE # 4))
(WALKER::MAKE-LEXICAL-ENVIRONMENT-2))
   Required arg 1 (EVALHOOKFN): WALKER::MAKE-LEXICAL-ENVIRONMENT-1
   Required arg 2 (APPLYHOOKFN): NIL
   Optional arg 3 (ENV): ((#S(LUCID::%VARIABLE NIL SELF NIL NIL NIL NIL
NIL NIL NIL 0 NIL NIL) #S(LUCID::%ANODE NIL LAMBDA NIL NIL NIL NIL NIL
NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL #...)) (NIL
#S(LUCID::%ANODE NIL LAMBDA NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL
NIL NIL NIL NIL NIL NIL #...)) (#S(LUCID::%BLOCK NIL BAZ NIL NIL NIL NIL
NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL)) NIL NIL (#S(LUCID::%DECL NIL
CALL-NEXT-METHOD NIL LUCID::MVAR NIL #) #S(LUCID::%DECL NIL WITH-SLOTS
NIL LUCID::MVAR N
IL #)) NIL LUCID::%ALPHALEX)
-> :n
unnamed function:
   Required arg 0 (G1771): 62913901
-> :n
WALKER::WALK-FLET/LABELS:
   Required arg 0 (FORM): (LABELS ((REC-PRINT-TREE # 4)))
   Required arg 1 (CONTEXT): :EVAL

The rest of the backtrace looks fairly reasonable.  Does anyone know
how to fix this?