Good day Juanjo and the list,
As it currently stands, asdf:make-build with :type :program produces
an executable which "loads" its constituents during launch.
So, the question is, is it possible to produce an executable image
which already contains the side-effect of these loads, so as to
speed up init?
regards, Samium Gromoff
From: Juan Jose Garcia-Ripoll <juanjose.garciaripoll@go...> - 2009-08-04 21:08:21
On Tue, Aug 4, 2009 at 8:48 PM, Samium
> So, the question is, is it possible to produce an executable image
> which already contains the side-effect of these loads, so as to
> speed up init?
Short answer: as ECL is, right now, it is not possible.
Long answer: what you are asking for is a dumping mechanism that
reconstructs the state of the lisp at a certain point. There is no way
to compile individual files and expect that the combinatino of those
produces the state of the lisp after loading each one individually. It
is not possible because loading has side effects that may change
depending on what was loaded before.
To do image dumping portably, you need a routine that scans all data
roots, producing externalizable representations of all objects,
including functions that are defined in loaded files, interpreting
their pointers. That infrastructure is not yet available (weeell, the
externalization code I wrote it some time ago, and it is in a branch
of ECL, but it is the rest that is difficult).
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)