#16178: Build maxima fasl without asdf
-------------------------------------------------+-------------------------
Reporter: gagern | Owner:
Type: enhancement | Status: closed
Priority: major | Milestone: sage-6.2
Component: packages: standard | Resolution: fixed
Keywords: maxima ecl | Merged in:
Authors: Martin von Gagern | Reviewers: François
Report Upstream: N/A | Bissey
Branch: | Work issues:
4511b5e13ef8492cf56b3485bea560bbcca3e763 | Commit:
Dependencies: | Stopgaps:
-------------------------------------------------+-------------------------
Comment (by gagern):
Replying to [comment:14 dimpase]:
> asdf is the normal way to build Lisp packages, IMHO. Removing it is akin
to removing makefiles and replacing them with hand-written scripts. Is it
the way to go? asdf is actively developed and maintained. Perhaps one
should ask for help instead?
To clarify in my own words: I'm not removing asdf, but I'm removing the
use of a separate ASDF invocation to build the maxima library. If you look
at the diff for
[http://git.sagemath.org/sage.git/commit/?id=880002dc3e5348bfa37ad722f3c099c1898b6128
880002d], you will see that up to now, there would be several lines of ecl
script in the spkg-install script, which do the asdf calling. As far as I
know, noone has been able to make that work with more recent versions of
ECL so far. Last I tried, I encountered two problems. The minor one was
that apparently a lot of files got compiled twice, which is unneccessary
work at the least. The major problem however is the fact that
[https://github.com/cschwan/sage-on-
gentoo/issues/226#issuecomment-19102909 apparently maxima got initialized
twice], which caused a stack overflow due to recursive copying of a cyclic
data structure.
The reason for this, as I see it, is that maxima is neither designed to be
used as a library, nor to be built with asdf. They directly speak to the
[http://sourceforge.net/p/ecls/ecl/ci/master/tree/src/cmp/cmpmain.lsp ecl
compiler functions], and call `c::build-program`. And the logical
counterpart to `c::build-program` appears to be `c::build-fasl`. So all
I'm doing is building a FASL in what seems closest to what Maxima already
does.
I don't know enough lisp to decide how standard asdf is. But if asdf
really were the (only) way to go, then I'd suggest you file a Maxima bug
and ask them to switch their whole compilation process to asdf. Unless you
are comfortable doing that, I don't see your argument applying to sage
alone. To go with your metaphor: you have an application which is designed
to build using a single hand-written build script, and now have to decide
whether it is easier to patch that build script or to add an extra
makefile to build some additional targets. Both approaches have drawbacks,
neither is really clean, but if one is known to fail with newer releases
of some component, I'd go with the one that still works.
--
Ticket URL: <http://trac.sagemath.org/ticket/16178#comment:16>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.