This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
>>>>> "Mikael" == Mikael Djurfeldt <mdj@nada.kth.se> writes: Mikael> We seem to be in a quite paradoxical situation: On one Mikael> hand, the current Guile is a very good Scheme interpreter. Mikael> It is stable and reasonably free of bugs. It has a lot of Mikael> functionality and is easy to integrate in application Mikael> programs. Mikael> And my guess is that it is one of the very few fastest Mikael> Scheme interpreters that currently exist. (My guess is Mikael> still that it is the second fastest after SCM.) Mikael> But we have two problems which make Guile look really Mikael> lousy: Mikael> 1. Documentation is not completed. Mikael> Even though functionality and solutions to most problems Mikael> exist, few know how to use it. Mikael> 2. Guile startup time is ridiculously long. Mikael> In the recent scripting benchmarks in comp.lang.scheme, Mikael> Guile gets lousy figures, probably because of the startup Mikael> time. Mikael> I don't have time to work on this, but here are two Mikael> suggested remedies: Mikael> 1. Is it possible to give more people write access to the Mikael> module guile-doc? I understand why it is important to Mikael> restrict write access to the code sources, but I think it Mikael> would be OK to let a wider range of people access the Mikael> manual. Mikael> 2. One quick fix which would have a large impact on Mikael> loading time would be to implement the module-eval-closure Mikael> (see boot-9.scm) as a primitive procedure which could be Mikael> used in the "standard" case. Mikael> If anyone is interested in improving Guile startup Mikael> time, he can have a look in boot-9.scm how these work, Mikael> simplify the algorithm (since the current one is too Mikael> general), and implement it in C code (which should be put Mikael> in modules.c). Mikael> If this is done correctly, I promise to put it into the Mikael> Guile sources immediately. Mikael> BTW, is it possible to let Guile dump a boot image on Mikael> systems which support that? I have a vague memory that it Mikael> interfered with dynamic linking..., but it would really Mikael> improve things a lot. Yes, at least on several popular platforms (Solarix, Linux, HPPA...). Should be extensible to evey platform supporting emacs, as the unexec code used is borrowed from there. How to do it: 1) get guile-hobbit-1.3.2 and install it. This will install in BINDIR an executable tguile. 2) Now do (absolute path is important): $BINDIR/tguile --dump fast-guile /dev/null An executable fast-guile is created, which starts... fast !!! Warning: you can dyn-load code in fast-guile, as in the normal guile. You can also replace /dev/null with a real file containing Scheme code (as done in guile-stklos), but this code must not dyn-load anything ! -- B. Urban