[Ecls-list] Re: EVAL-WHEN gets out of control
Juan Jose Garcia Ripoll
worm at arrakis.es
Sun Oct 21 06:34:02 UTC 2001
[This message is being forwarded to the ecls list, since it may be of interest
for other people]
> Unfortunately it seems that I can't build ECLS anymore. I can't
> say for sure whether these latest changes did it since my previous
> version was from time before the documentation string/help file
> generation and Symbolics LOOP changes. I'm doing default
> "./configure && make" build. Anyway, what happens is that I get
> ecls_min built but then:
> [...]
> /home/azure/projects/software/3rdparty/ecls-compiled/src/lsp/defmacro.lsp
> make[1]: *** [ecls] Error 139
I have solved the problem, which was due to a missing source file
(helpfile.lsp). Nevertheless, since anybody playing with the ECLS source may
find a similar type of errors let me explain what happened.
The build of ECLS consists on two steps. The first step builds the
interpreter and the core library, with the minimal functions to support a
lisp environment.
The second step is what I call the bootstrap process and consists on
compiling the lisp source files using this minimal environment. In order to
do so, all lisp files are loaded into the interpreter and then the compiler
is used to build the final "ecls" executable.
When ECLS stops during the boot process, without error messages, it means
that there is some error in the lisp source files. Since "conditions.lsp" can
only be loaded at the end, ECLS does not know what to do with the error
message and enters an endless loop which in some platforms leads to memory
exhaustion. This can only happen during boot process.
A way to detect the precise error is to enter GDB with 'gdb ecls_min' and do
a 'source .gdbinit'. These two steps set up a minimal set of breakpoints to
debug the interpreter. Next run the program as usual and type '(load
"compile.lsp")' when the lisp propmt appears. Typically, "ecls_min" will
begin to load the source files and at some point it will stop in the
FEerror() or error() functions, from which you can inspect the error
messages.
Juanjo
--
http://www.arrakis.es/~worm
More information about the ecl-devel
mailing list