Hello, I dont know if this is related to the common lisp or the ecl,
but imagine code like this, compiled into function:

(LAMBDA ()
  (LET ((CORE::P *PACKAGE*) (CORE:THIS #<a GAME:CUBE>))
    (IN-PACKAGE ANCA)
    (HANDLER-CASE
     (UNWIND-PROTECT
         (PROGN
          (PROGN
           (DEFMACRO ANCA::RUNNABLE (&BODY ANCA::BODY)
             (SI:QUASIQUOTE (LAMBDA () (SI:UNQUOTE-SPLICE ANCA::BODY))))
           ((ANCA::RUNNABLE (PRINT "Ahoj")))))
       (SETF *PACKAGE* CORE::P))
     (T (CORE::X)
      (FUNCALL
       #<bytecompiled-closure #<bytecompiled-function 00000000032387d0>>
       #<a GAME:CUBE>
       CORE::X)))
    T))

which will work fine, until it will be run, where it will crash with

;;; Loading #P"/usr/lib/ecl-12.12.1/cmp.fas"
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; Error:
;;;   * (ANCA::RUNNABLE (PRINT "Ahoj")) is not a legal function name.The
variable C::GAZONK is unbound.

I have no idea what C::GAZONK is, but I imagine that it is not recognizing
macro made with the defmacro before?

The problem is, that I need to save this into lambda so it is evaluated
later, not right now (and definitely not in this thread).

-- 
Bc. Peter Vaňušanik
http://www.bishojo.tk
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Ecls-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ecls-list

Reply via email to