[armedbear-devel] Funny behavior about flet after compilation.

wl chiu wlclive at live.com
Wed Apr 25 10:47:11 UTC 2012



Hi dear devs,
I encountered some funny behaviour between compiled and interpretedcode with flet. I'm not sure if this is a duplicate bug?
-------- flet-bug.lisp --------------
(defun foo (x)  (print x))
(defun test1 ()  (flet ((foo1 ()           (foo 3)))    (foo1)))
(defun test2 ()  (flet ((foo ()           (foo 3)))    (foo)))
------------------------------------
We compile the following file,
  (compile-file "c:/me/temp/flet-bug.lisp")  ; Compiling C:/me/temp/flet-bug.lisp ...
  ; (DEFUN FOO ...)
  ; (DEFUN TEST1 ...)
  ; (DEFUN TEST2 ...)
  ; Wrote c:/me/temp/flet-bug.abcl (2.62 seconds)

Then either load it interpreted or compiled. Interpreted, everything'sfine:
  > (load "c:/me/temp/flet-bug.lisp")  T  > (test1)  
  3 
  3  > (test2)  
  3 
  3
Compiled, we get an error in test2:
  > (load "c:/me/temp/flet-bug.abcl")  T  > (test1)  
  3 
  3  > (test2)  ; Evaluation aborted on #<PROGRAM-ERROR {797E7B}>.

The stack trace for this is:
    Wrong number of arguments for #<FOO {CCA5B9}>.       [Condition of type PROGRAM-ERROR]        Restarts:     0: [RETRY] Retry SLIME REPL evaluation request.     1: [*ABORT] Return to SLIME's top level.     2: [ABORT] Abort thread.        Backtrace:      0: (#<FUNCTION {490A12}> #<PROGRAM-ERROR {19430CA}> #<FUNCTION {490A12}>)      1: (APPLY #<FUNCTION {490A12}> (#<PROGRAM-ERROR {19430CA}> #<FUNCTION {490A12}>))      2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<PROGRAM-ERROR {19430CA}> #<FUNCTION {490A12}>)      3: (INVOKE-DEBUGGER #<PROGRAM-ERROR {19430CA}>)      4: org.armedbear.lisp.Lisp.error(Lisp.java:381)      5: org.armedbear.lisp.Function.execute(Function.java:312)      6: org.armedbear.lisp.Primitive.execute(Primitive.java:113)      7: (FOO 3)      8: (TEST2)      9: (SYSTEM::%EVAL (TEST2))     10: (EVAL (TEST2))     11: (SWANK::EVAL-REGION "(test2)
         ")     ... etc ...

Thanks for your attention,
Wei-Lun Chiu 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20120425/b3d9a446/attachment.html>


More information about the armedbear-devel mailing list