- scheme/sort/* added by hand (for some reason it wasn't merged in)
- currently, some READ-PARAGRAPH tests don't pass: apparently,
due to some problems with the regexp library.
Note that this change doesn't represent any sort of design suggestion
or decision: It merely represents an attempt to codify the
dependencies between the parts of the code base. There's still lots
of work to be done to actually make user-accessible modules.
+ add errno as first argument to raise-exception os-error in prim-io.scm
+ capture os-error in with-errno-handler* and adjust exception
arguments to fit errno-handlers
overwritten
+ introduce structure scheme-with-scsh which exports the compound
interface of scheme and scsh. Instead of the fragile (open scsh
scheme) you can now use (open scheme-with-scsh).
+ removed superfluous partial-s48-ports
Scheme 48 1.0.1.
Namely, instead of associating a list of queues with every thread, we
associate a single cell, holding the thread. That cell is stored in
thread queues, and once a thread is made runnable again, the cell is
set to #f. The thread-queue accessors ignore cells containing #f.
Implement an experimental OBTAIN-LOCK-MULTIPLE to test the whole
thing.
command levels (as there *are* no command levels for things like scsh
-c):
There's now a new asynchronous event, similar to SPAWN, called NARROW.
It spawns off a new scheduler with just one thread (which runs the
thunk provided as an argument to NARROW) and blocks the current one
until the narrowed scheduler finishes.
For this to work, two schedulers need to be in place: the root
scheduler which performs the housekeeping, and another one inside that
which is the one the program uses---otherwise it's the root scheduler
that's blocked, and that means no housekeeping gets done. This is
trivially the case for interactive mode, as the command-levels all
have their own schedulers, but we also need to make sure scsh's entry
point fires up its own initial scheduler.