[Ecls-list] Huge patches being committed
Juan Jose Garcia-Ripoll
juanjose.garciaripoll at googlemail.com
Mon Jun 8 17:16:39 UTC 2009
I have uploaded a humongous patch (22 commits!) contaning many
improvements by Jean-Claude Beaudoin and which cover mainly the
debugger and inspector, but include aspects such as debugging of C
compiled code and better interaction with the debugger, which now
supports multithreaded environments. An excerpt of the changelog is
given below.
To give you a flavor of what is new, an example session follows also
at the end of this message.
Please note that this may affect the stability of ECL, but I thought
it was worth including this for the next release.
Juanjo
Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
Copyright (C) 1993 Giuseppe Attardi
Copyright (C) 2000 Juan J. Garcia-Ripoll
ECL is free software, and you are welcome to redistribute it
under certain conditions; see file 'Copyright' for details.
Type :h for Help.
Top level.
> (si::system "cat foo.lsp")
(declaim (optimize (debug 3)))
(defun a (x)
(cos x))
0
> (compile-file "foo" :load t)
;;; Compiling foo.
[...]
#P"/Users/jjgarcia/src/ecl/build.def/foo.fas"
NIL
NIL
> (a 'a)
In function COS, the value of argument is
A
which is not of expected type NUMBER
Available restarts:
1. (QUIT-DEBUGGER) Quit debugger level 1.
2. (USE-VALUE) Supply a new value of type NUMBER.
3. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at A.
File: "/Users/jjgarcia/src/ecl/build.def/foo.lsp" (Form #1)
>> :b
Backtrace:
> A
> si:bytecodes [Evaluation of: (a 'a)]
> si:bytecodes [Evaluation of: (si:top-level)]
>> :v
Local variables:
X: A
>> :q
Top level.
- A new configurable option ECL_OPT_THREAD_INTERRUPT_SIGNAL determines
which Unix interrupt type is used to communicate between threads.
- Some functions got new names: ecl_make_cfun, ecl_make_cfun_va,
ecl_make_cclosure_va, ecl_def_c_function, ecl_def_c_function_va.
- Compiled functions now carry information about their source file
(based on patches by Jean-Claude Beaudoin)
- The compiler can now generate some Lisp constants as static C expressions
(based on patches by JCB)
- The debugger is now fit for multithreaded environments (JCB)
- Compiled functions with DEBUG=3 now produce information about their
arguments and variables, that can be inspected in the debugger
(evolved from patches by JCB).
- When performing unoptimized function calls, the interpreter did not save
actual value of the lexical environment, thus preventing the debugger from
inspecting it (fixed by JCB).
--
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