[Ecls-list] ContextL functions with &key args don't work properly in ECL.
Juan Jose Garcia-Ripoll
juanjose.garciaripoll at googlemail.com
Sun Feb 28 21:02:09 UTC 2010
On Sun, Feb 28, 2010 at 9:40 PM, Pascal Costanza <pc at p-cos.net> wrote:
> I have looked further into this issue. The closures associated with methods
> should actually not have names (or their names should not be used for
> debugging). What should be printed is the name of the generic function they
> are contained in. The reason is that methods may be freely moved from one
> generic function to the next.
Right now no Common Lisp that I know fulfills your expectations, and
all of them use named lambdas for obvious (at least for implementors)
reasons: having return-from, optimized creation of the block, ... For
instance with SBCL:
* (bar 3 4)
debugger invoked on a DIVISION-BY-ZERO:
arithmetic error DIVISION-BY-ZERO signalled
Operation was SB-KERNEL::DIVISION, operands (7 0).
Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [ABORT] Exit debugger, returning to top level.
(SB-KERNEL::INTEGER-/-INTEGER 7 0)
0] backtrace
0: (SB-KERNEL::INTEGER-/-INTEGER 7 0)
1: ((SB-PCL::FAST-METHOD FOO (T T))
#<unavailable argument>
#<unavailable argument>
3
4)
2: (SB-INT:SIMPLE-EVAL-IN-LEXENV (BAR 3 4) #<NULL-LEXENV>)
3: (INTERACTIVE-EVAL (BAR 3 4))[:EXTERNAL]
4: (SB-IMPL::REPL-FUN NIL)
5: ((LAMBDA ()))
6: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX #<CLOSURE (LAMBDA #) {1198534D}>)
7: (SB-IMPL::TOPLEVEL-REPL NIL)
8: (SB-IMPL::TOPLEVEL-INIT)
9: ((LABELS SB-IMPL::RESTART-LISP))
--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
More information about the ecl-devel
mailing list