Discussion:
[Larceny-users] Any sort of -O0 flag to speed up compiles?
Ryan Newton
2008-05-02 17:27:22 UTC
Permalink
I've ported my application to R6RS and am running it with Ikarus/
Larceny. The compile times with Larceny are causing some pain, is
there any way to switch off all but the essential compilation tasks?
I didn't see any documented command line options to do so...

As a side note on R6RS support, I currently get errors where I try to
use "cons*":

Syntax violation: invalid reference

No binding available for cons* in library (ws passes static_elaborate
static-elaborate)

Form: cons*

Is there some problem with cons* not being exported by (rnrs)?

-Ryan
William D Clinger
2008-05-03 17:50:15 UTC
Permalink
Post by Ryan Newton
The compile times with Larceny are causing some pain, is
there any way to switch off all but the essential compilation tasks?
For information:

(help 'compiler-switches)
(compiler-switches)

Although (compiler-switches 'slow) will disable all
optimizations, you probably don't want to do anything
that drastic. The following will disable the most
time-consuming optimizations:

(global-optimization #f)

We'd be interested to know how much difference that
makes. As of v0.96, those optimizations are supposed
to detect when they're taking too long and shut down
(or widen) when that happens.

I presume you know about the compile-stale script.
To disable global optimizations, you can change that
script to

(import (larceny compiler) (primitives global-optimization))

(global-optimization #f)

(compile-stale-libraries)

That script recompiles everything in the current
directory and everything imported, transitively.
With 80 KLOC, I can see how that would take a long
time. Intelligent recompilation would save a lot
of that time, but we haven't implemented it yet.
Post by Ryan Newton
Is there some problem with cons* not being exported by (rnrs)?
Yes. It wasn't being exported by (rnrs lists) either.
Thanks for the bug reports!

Will

Continue reading on narkive:
Loading...