- Switching scsh over to the SRE regexp system.
- Upgraded string & character handling
- Switching code over to list-lib SRFI names. Some switchover to
probably new string-lib SRFI names, though that SRFI hasn't happened,
so it's probably a waste of time at the moment to stress out about it.
- General switching from "reduce-" lexeme to "fold-" lexeme.
-Olin
A per-file breakdown of changes:
ccp.scm New
char-set.scm New features
stringlib.scm New
stringpack.scm New
awk.scm SRE
filemtch.scm SRE string-lib
fname.scm string-lib
fr.scm SRE string-lib
glob.scm SRE
procobj.scm list-lib
rdelim.scm SRE
re.c SRE killed
re.scm SRE killed
re1.c SRE moved to rx/ dir
re1.h SRE moved to rx/ dir
rx/... SRE General fitting-it-in to the upgraded scsh.
scsh-interfaces.scm
scsh-package.scm
scsh.scm type-check loophole added; string-lib; list-lib
reduce-port -> foldl-port
syscalls.scm string-lib; diked out unused MATCH-FILES code
syscalls.c
utilities.scm string-lib; {any?,every?} -> {any,every}
procobj list-lib
case of DEFINE-ERRNO-SYSCALL. However, this change causes simple errno
syscalls to return 0 values, which blows up I/O methods used in S48's
extensible port system, so I had to hack three or four of those methods
to return a random value (#F).
we do a zombie-reap and then retry the fork. This way, if the fork fails
because the process table filled up, you can clean up and win.
It's not the right answer, but the right answer depends on handling SIGCHLD
interrupts, so we can't implement it now.
2. Hacked the optional arg handling to use the new LET-OPT machinery.
files. These files mostly mediate between the C source (export) and
the corresponding C stub files (import) generated by the Scheme files
calling the C routines.
This provided much better argument type checking that before; lots of
small bugs were caught.
Also added const keywords wherever I could find a reasonable place
to improve error detection and efficiency.
Tuned up the makefile to reflect all of this structure. Its dependencies
were pretty out-of-date as it was. It could probably use further work.
improve the quality of the error messages.
- Fixed file-match so that if a filter procedure raises an error condition,
it is caught and treated as a match failure (as if the procedure returned
#f). This means you no longer get blown out of the water by
(file-match "." #f file-directory?)
if the cwd contains a dangling symlink, for example.
- Added set-file-times (utime).
- Caught a bug in an unused arm of the define-errno-syscall macros (rest arg
case).
- Perhaps one or two other minor tweaks.