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

Re: [Scheme-reports] Gauche joins the ranks of the R7RS implementations

John Cowan <cowan@x> writes:

> Gauche <http://practical-scheme.net/gauche> has released its R7RS-small
> implementation.  This adds it to Chibi, Chicken (not yet complete),
> Foment, and Sagittarius.
> [...]
> If anyone else has a working R7RS, let me know.

Guile has an r7rs branch that's pretty far but incomplete.

> On the bad news front, the implementation of R7RS for Gambit has been
> abandoned, at least for now.  (More accurately, the implementer of the
> R7RS package has abandoned Gambit.)

That's bad news for me, because I was hoping to test my bytestructures
library on Gambit-C, hoping it can optimize usages of immutable records.

If anyone knows an R7RS implementation that optimizes the access of
statically apparent immutable records, please let me know.

Example: module A exports an immutable record my-foo that has its field
foo-x containing the value x, and module B imports it and the foo-x
accessor, and has the expression (foo-x my-foo) somewhere (where the
'foo-x' and 'my-foo' bindings aren't shadowed), then that expression
should be optimized to the constant value x during static analysis.
(This is possible with R6RS-like module systems where exported bindings
are immutable as well as imported ones; or otherwise when the module
exporting 'my-foo' has been analyzed prior to determine that it does not
in fact mutate the 'my-foo' binding.)

I'm a little disappointed that near to no Scheme compilers do such an
optimization.  It's crucial to the efficiency of my bytestructures
proposal, which is procedural and highly dynamic in nature.


Scheme-reports mailing list