gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] sys-proclaims.lisp


From: Rupert Swarbrick
Subject: Re: [Gcl-devel] sys-proclaims.lisp
Date: Sun, 29 Jun 2014 23:18:05 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

Camm Maguire <address@hidden> writes:
> Greetings!  Just a followup on my last note:
>
> Raymond Toy <address@hidden> writes:
>
>> Perhaps things have changed, but sys-proclaim isn't supposed to be
>> generated on every build. Or perhaps my memory of how this all works
>> is wrong; I don't build with gcl nearly as often as I used to.
>
> On investigating further, I see that the --enable-sys-proclaim configure
> switch is required to build the sys-proclaims.lisp file automatically.
> We had this turned on in the Debian package build, so I had overlooked
> this previously -- my apologies!  I think the rest of my comments
> regarding maxima's use of this file are still worth discussing.

I made the changes to sys-proclaim generation maybe a year or so ago,
after introducing a subtle bug by changing a function so that it no
longer matched the declaration in sys-proclaim.lisp. The only lisp that
saw the bug was GCL (where SLIME doesn't work and the repl is painful to
use). Very frustrating to track down, so I wanted to make sure that it
doesn't happen again.

We no longer have a sys-proclaim.lisp checked in to the actual
repository, since it's automatically generated. When a user builds with
GCL, we first load src/generate-sys-proclaim.lisp, which builds all of
Maxima and then generates the sys-proclaim.lisp. We then delete the
Maxima we just built and build it again, this time with the declarations
From the sys-proclaim.lisp. For all the gory details, look in
src/Makefile.am.

Obviously, this is a tad slow. If you're doing Maxima development using
GCL for some reason, you can configure with something like

  ./configure --with-gcl --enable-sys-proclaim=no

Your copy of Maxima will then run a few percent slower, but you only
have to build it once.

I think we decided to ship sys-proclaim.lisp in release tarballs because
users that are building Maxima aren't mostly going to be hacking on
function definitions. (That bit wasn't my decision, but it sounds like a
plausible reason: check with Robert(?) for details)


Rupert

Attachment: pgpeKwsaVqbSm.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]