SRFI 140, Immutable Strings: 150 days
Arthur A. Gleckler
(09 Dec 2016 00:04 UTC)
|
Re: SRFI 140, Immutable Strings: 150 days
Per Bothner
(09 Dec 2016 00:30 UTC)
|
Re: SRFI 140, Immutable Strings: 150 days
Arthur A. Gleckler
(09 Dec 2016 00:42 UTC)
|
Re: SRFI 140, Immutable Strings: 150 days
Arthur A. Gleckler
(08 Jan 2017 01:56 UTC)
|
Re: SRFI 140, Immutable Strings: 150 days Per Bothner (08 Jan 2017 02:20 UTC)
|
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/