[Ecls-list] cl-launch and ECL

Faré fahree at gmail.com
Sat Oct 14 04:06:55 UTC 2006


Dear ECL hackers,

with my latest release of cl-launch 1.93, I have fixed a lot of bugs,
and fully support 7 implementations (sbcl, cmucl, clisp, gcl, openmcl,
allegro, ecl), except that I still didn't manage to dump images for
ECL for software using systems. Can you help me?

I'm trying to dump a fasl that will have all the software defined in a
simple declaration of (optional file, optional asdf system, optional
forms). As long as I don't declare a system, I can dump things quite
all right. But if I define a system, then I get a segmentation fault
when trying to load it.

I'm trying to build each system as a :library, and building a fasl
from them. I tried very hard, developing my own tweaks to c::builder
so that I may compile systems to .a files and specify these files
explicitly as arguments to builder instead of a symbol that would turn
into a -l flag. This modified version of builder is included in the
cl-launch sources.


If you have some time to try out, you can grab the latest cl-launch sources in
   http://fare.tunes.org/files/cl-launch/
(Just grab the self-contained .sh there, or the .deb if you're using debian.)

You can reproduce the bug and get some tracing output by running this
(in a temporary directory -- it creates junk):
   CL_LAUNCH_VERBOSE=t sh -x ./cl-launch.sh -B redo_test ecl out dump inc system
You may edit cl-launch to uncomment the various (trace ...) calls near
the end of cl-launch and see what ecl does. You may also sprinkle the
code with (DBG :tag expr1 expr2 ... exprn) to see what's going on. You
may also choose to invoke ECL and reproduce the thing in a more
debuggable environment.
/usr/lib/ecl/ecl-original -q -norc -eval
'(progn(set-dispatch-macro-character #\# #\! #'\''(lambda(stream char
arg)(declare(ignore char arg))(values (read-line stream))))(load
"./cl-launch.sh" :verbose nil :print nil) (funcall(intern(string
:run):cl-launch) :paths '\''(#P"./" ) :system :clt-asd :dump
"./clt.image"))

Or at the command-line or slime repl, from the proper directory
ecl
(set-dispatch-macro-character #\# #\! #'\''(lambda(stream char
arg)(declare(ignore char arg))(values (read-line stream))))
(load "./cl-launch.sh" :verbose nil :print nil)
(funcall(intern(string :run):cl-launch) :paths '\''(#P"./" ) :system
:clt-asd :dump "./clt.image" :quit nil)


NB: unrelatedly, ecl doesn't want to macroexpand the cl-meta package,
because it has macros with more than 32 arguments. Thus, I can't test
ecl with exscribe :-(

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
Greenspun's Tenth Rule of Programming: any sufficiently complicated C
or Fortran program contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.


-- 
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]




More information about the ecl-devel mailing list