On Thu, Sep 17, 2015 at 2:46 PM, Attila Lendvai <att...@lendvai.name> wrote:
>> It's possible, and some people have done it for SBCL at Google using
>> bazel.io, though they never spent the time making it open source. I
>> could extract bits from it and reproduce the same thing with ASDF, but
>> I'd rather someone else do it, though I can explain what I see in
>> those files.
>
> does it happen
>  a) from a final linking phase linking sbcl's .o files
>  b) or using a vanilla sbcl exe (or executable core) and hacking the
> grovelled .o or .so files into it?
>
a libsbcl.a is produced, that will be linked against to produce a core,
that will itself be used to dump the final image and create a
standalone executable
(or somehow combined with an image produced by another core?
I don't think so, but I haven't read that part of the code.)

>> Or then again, the CL community could adopt bazel (not very likely).
>
> from a strictly engineering perspective, do you think using bazel to
> build cl code would be better than using ASDF? yes/no/hard-to-judge?
>
If you have lots of memory and CPUs, and a Java heart with a Python skin
don't work as a repellant on you, bazel is actually a pretty nice way to build
software in a massive parallel way (though the distributed backend isn't
open source (yet?), only the parallel backend on a single box, AFAIK).
But it's very different from ASDF, and doesn't scale down to smaller machines
(unless you have that distributed backend with a farm of smaller machines).
So it's not going to displace ASDF any time soon.

Stelian had ideas about making a more blaze-like build system for CL;
some ideas of my old XCVB could be resurrected, and I created a TODO
for a hypothetical ASDF 4 that would be mostly backward compatible with ASDF 3,
yet provide the benefits of a modern build system.
However, I'm not convinced there's a large enough public to justify this work,
unless you're going to make a general purpose rival to bazel.

> to me it seems that it's an important ability to customize the build
> system from the .asd (because it's the same language), and that would
> be lost with bazel, no?
>
Bazel has this Skylark extension language (Python subset) that I'm working on.
Not remotely as nice as CL.

On the other hand, CL is the wrong language to restrict side-effects,
as required for a truly deterministic build system.

Haskell Cabal, anyone?

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Pascal is for building pyramids—imposing, breathtaking, static structures built
by armies pushing heavy blocks into place. Lisp is for building organisms…
        – Alan Perlis

Reply via email to