On May 7, 2005, at 3:50 PM, ben@fuhok.net wrote:
Anyway, attached is a patch against the version of char-set-lib.scm in the web directory you set up.
Char-set-invert[!] and predicate->char-set[!] were removed from the srfi during the discussion phase (at my suggestion ;-), but I hadn't yet renamed/re-implementd that new procedures. Fixed, thanks.
About cursors: I added a couple of checks to the cursor routines.
I noticed that you followed the suggested implementation and had cursors go down from 255 to 0, the same as the implementation for char-set-filter[!]. Yet the documentation talks about "No lazy implementations of char-set-filter because of side effects" etc. Well, if we think side effects are important, should we either ensure that cursors go from 0 up rather than from 255 down? And the same for char-set-filter[!]? Or at least document that these things go down rather than up?
Please check my changes.
One thing I noticed that kind of sucked was that my laptop, which has 512 megs, can't compile "srfis.scm" in safe mode without running out of memory. It's not clear to me why (declare (safe)) causes Gambit to suck up more memory, but apparently it does.
The .i file for srfis.scm is 1.9MB when (declare (safe)), that's pretty big. I think our ultimate goal should be to add enough explicit checks that the libraries can be compiled with all unsafe optimizations on.
In your gambit.h file define ___OPTIMIZE_SPACE just before the tests for ___OPTIMIZE_SPACE and ___OPTIMIZE_TIME. That should help a lot.
How about deleting the trailing whitespace from those files when you get the chance?
Done.
Brad