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]

Re: regexp profiling hell....



>>>>> "Maciej" == Maciej Stachowiak <mstachow@mit.edu> writes:

    Maciej> I agree with this sentiment overall. Even when the init
    Maciej> files are nicely cleaned up it would probably _still_ be
    Maciej> better to ship them so they install compiled. However, the
    Maciej> Guile-modified version of Hobbit is not necessarily ready
    Maciej> for prime-time yet. Perhaps the freezer or the unexec
    Maciej> stuff could make a livable stopgap measure?

I have more than a year of experience in using compiled or unexeced
boot-9.scm on the following platforms: Linux, Solaris and HP-UX.

1) Compiling boot-9.scm: you are roughly 4x faster at start-up time,
and when you run your other files (even interpreted), you
have in most cases a noticeable speed boost, sometimes 2x faster.

When compiling with hobbit, you build dynamically linkable libraries by
default, but linking statically is also possible for platforms
without dyncall capabilities.

2) Unexecing boot-9.scm: no noticeable startup-time at all !!
But the speed after that is not modified of course. In
guile-hobbit-1.3, there is an extension of unexec for the above 
3 platforms. 

3) Compiling + unexecing.... This works only when boot-9.scm is
compiled statically. I have no first hand experience with this, as the
start-up time of 1) is sufficient for me.

So the least common denominator for all platforms is to compile
statically boot-9.scm and link the resulting library to the core
interpreter.

Nevertheless, current boot-9.scm MUST be modified (eliminating all
non-R4RS and guile's specific syntax constructions) to be compiled by
hobbit. In addition, the debugger will sometimes output strange things when
refering to boot-9.scm definitions.

There is also the problem of the discrepancies between the changing guile
run-time interface and what hobbit expects. So the current
guile-hobbit-1.3 does not work with recent snapshots if you do not
apply some patches. (I hope to catch up with the release of guile-1.3.)

--

B. Urban