[Top][All Lists]

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

[Gcl-devel] Re: a *very* sad 2.7.0 experience

From: Camm Maguire
Subject: [Gcl-devel] Re: a *very* sad 2.7.0 experience
Date: 12 May 2007 13:19:09 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2


OK, nqthm functionality appears restored, but I am still working on
ways to improve the compile times.  Feel free to try it out or wait as
you may please.

nqthm build issues with auto-proclamation:
1) There are incorrect proclaims being made at the beginning of
compile.lisp, particularly in multiple return values being proclaimed
as returning t.
2) compile and save are in two separate gcl invocations, though the
compile step loads and executes code which must therefore be
certifiably correct between load and execution.  The separate steps
implicitly assume that the compile-file output is final and ready for
loading without further processing, an assumption which is likely
quite common among lisp projects.  Currently GCL does not redo the
original source file when recompiling, leading to two recompiling
steps when loading compile.lisp and save.lisp.

Ideas I'm working on:

1) when autoproclaiming, ignore user proclaims.  I'm less than happy
about this, as I think the user can assit the compiler in this way.
I'm playing with it now to see if I can automatically defer
recompilation "till the end", which may either mean top-level or image
save.  I think I have a better shot at having compiled and loaded code
using default '((*) *) assumptions be correct without recompilation
before execution than code compiled using user proclamation
assumptions.  In fact, the combination of 1) and 2) above has lead to
error breaks during the execution of boot-strap-fn when recompilation
is turned off inside the loading of compile.lisp.  

This is the state of cvs at present -- to reenable user proclaims,
simply edit compiler::put-procls in one obvious line.  Of course one
could take the opposite perspective and foist all incorrect
proclamation problems onto the user.  This is the classic "give me
power" vs. "give me trouble-free operation" debate -- your opinions as
always most welcome here.

2) automatically defer recompilation to top-level or image save.

3) Mark source files in which functions have been recompiled as
   "dirty" and pass them through compile-file during recompilation, if
   they still can be found on the filesystem.  (si::file 'fn) should
   give the source file in which 'fn is first defined, though this may
   need some work.

This is definitely one of the issues I'd like to make sure meets your
and others' satisfaction in the near future.  I'd also like to disuss
the new inlining features at some point.  A first place to look might
be at the inlining comments in the C code output.

Take care,

Robert Boyer <address@hidden> writes:

> In GCL 2.6.7, I can build and save Nqthm in about a
> minute or less.
>     21.673u 2.196s 0:50.31 47.4%      0+0k 0+0io 874pf+0w
> As you can see from
>   wget http://www.cs.utexas.edu/users/boyer/foo.text
> I could not get it done in 9 hours in the latest GCL
> 2.7.0.
> I just gave up around here:
>   30316.818u 2281.846s 9:06:01.46 99.5%       0+0k 0+0io 0pf+0w
> Bob

Camm Maguire                                            address@hidden
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah

reply via email to

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