Re: SRFI 140, Immutable Strings: 150 days
Per Bothner 08 Jan 2017 02:20 UTC
On Friday I checked in my first set of big changes.
In anyone wants to test it, clone: https://gitlab.com/kashell/Kawa
and then: git checkout invoke
(The invoke branch will be the basis for Kawa 3.0.)
This included the basic framework in a way I'm happy with:
* String literals are O(1) istrings.
* By default string-append returns an istring.
* (import (kawa base)) is now pretty complete, and matches
the default environment - and imports the istring-returning string-append.
(A lot of the time I've spent recently is re-doing how Kawa sets up the
initial environment using (kawa base).)
* If you (import (scheme base)) *or* you invoke Kawa
with one of the --r5rs/--r6rs/--r7rs flags you get
traditional mutable strings.
* Other functions like substring have not been updated,
but the framework is there to support two different versions.
I'm taking a break to work on some other things (specifically
get a Kawa 2.3 version out, based on the master branch).
Then I think the next steps are something like:
* Re-implement substring (this isn't difficult - it's just figuring
out the right way to do sharing) and related functions like string-take.
* (Re-)Implement the remaining functions. In some case it may
be reasonable to use the srfi-135 reference implementation.
* Implement srfi-135. (That's just a renaming wrapper.)
* Finishing out the actual srfi specification.
* Figuring out what to do for the reference implementation.
I wouldn't object to help with the last two tasks - but I'll get to it.
--
--Per Bothner
xxxxxx@bothner.com http://per.bothner.com/