[Ecls-list] C:MAKE-BUILD composition and hierarchical ar shrink-wrapping

Juan Jose Garcia-Ripoll jjgarcia at users.sourceforge.net
Sat Mar 29 19:28:52 UTC 2008

2008/3/26 Samium Gromoff <_deepfire at mail.ru>:
>  Hmm, when I feed :TYPE :FASL to ASDF:MAKE-BUILD, it does build fine, but
>  the nastiness appears when I try to CL:LOAD the resulting fas file.
>  And looking at the log of what ECL does, it appears that it still shrink-wraps
>  things using ar...

Hi Samium, I have redone ASDF:MAKE-BUILD from scratch. Michael's high
level interface is still there, but now ECL works differently. It
first builds a list of all COMPILE-OP and LOAD-OP that a normal call
to ASDF would do and then uses this information to build the FASL,
static library or shared library you need.

The behavior depends strongly on the argument :MONOLITHIC, which
previously defaulted to T and now doesn't. A monolithic fasl or
library is one that contains all object files from the current system
and the ones it depends on. :MONOLITHIC T works with all targets, let
it be :FASL, :DLL, :LIB, :PROGRAM, etc. :MONOLITHIC NIL only works
with :FASL and with :LIB, but I am working the next version which will
support creating a shared library only for a system.

The idea is that :MONOLITHIC T is intended for building a self
contained package, while :MONOLITHIC NIL will be used by a new
operation (I still do not have a name for it) that replaces LOAD-OP
using a single binary file for each ASDF system.

The new code is available in CVS. But if you do not want to upgrade,
it can still be downloaded from

Following your test case, if you want to build a static library for
the system C including A and B you would type
If you want a single library for each module and you will take care of
the initialization order yourself,
If you want to build everything into a single FASL file
(LOAD "c-mono.fas")
If you want to build and load each module separately
(LOAD "a.fas")
(LOAD "b.fas")
(LOAD "c.fas")

Notice the suffix "-mono" that gets appended to the monolithic
versions. This permits both versions to coexist.


Facultad de Fisicas, Universidad Complutense,
Ciudad Universitaria s/n Madrid 28040 (Spain)

More information about the ecl-devel mailing list