[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