#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.

Reply via email to