mainzelm
6a8b7f6145
When closing an output port, capture any errors while flushing the
...
port and try to close the port immediately instead.
2003-01-08 09:26:58 +00:00
mainzelm
804362834b
Extend with-errno to capture all I/O exceptions of the VM:
...
+ 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
2003-01-08 09:16:47 +00:00
mainzelm
5da13e0f55
Merged definition of byte-vector from S48 1.0.
2003-01-07 10:30:37 +00:00
sperber
e2557c7200
Add forgotten OPEN clause for SIGNALS in READING-FORMS.
2002-12-19 10:02:31 +00:00
mainzelm
2fcc149269
Added forgotten export of srfi-13: string-concatenate-reverse/shared
2002-12-17 15:49:54 +00:00
sperber
69a2031350
Replace half-assed DYNAMIC-WIND protection of input port by the one
...
Richard Kelsey suggested for Scheme 48.
2002-12-17 13:50:14 +00:00
sperber
4c90a345ec
In READ-FORMS, open/close input port in DYNAMIC-WIND before/after
...
thunks.
2002-12-16 11:00:11 +00:00
sperber
3a1439a16e
Remove warning message "Warning: dropping ignored channel i/o result"
...
because it can be legitimately triggered by WAIT-FOR-CHANNELS.
2002-12-11 12:40:29 +00:00
sperber
6fc80dfb4b
Fix typo: remove double application of MAKE-I/O-COMPLETION-HANDLER.
2002-11-12 13:13:02 +00:00
mainzelm
a1e9e54bbc
Add lookup-external from recent S48 (it's already described in the manual).
2002-11-07 09:43:29 +00:00
mainzelm
17b1a55c8b
+ Factor out pending interrupts into a separate package.
...
+ Let vm-channel-abort clear the pending-i/o interrupt if the queue became empty
2002-09-27 12:44:43 +00:00
sperber
5b47488938
Include half-assed implementation of ADD-PENDING-CHANNEL.
2002-09-19 07:08:16 +00:00
sperber
d14e638e10
Replace hacked-up VM-CHANNEL-ABORT by a version that's simpler and
...
closer to the original.
2002-09-19 07:07:40 +00:00
mainzelm
9950aa7205
Wrap an additional (lambda a ...) around the application of (terminate-current-thread) in terminate-thread! as the continuation may provide any number of values
2002-09-18 19:16:23 +00:00
sperber
d21334de83
Keep separate queues for input and output channels, so the VM doesn't
...
get confused handling events/interrupts.
I despise myself.
2002-09-18 14:56:31 +00:00
mainzelm
5cb76fd27b
Replace call to channel-has-waiter? by channel-check-waiter.
2002-09-17 21:22:41 +00:00
mainzelm
3c07ebb50f
PROTECT-PORT-OP saves the return value of CLOSE so better return (if #f #f) than (values).
2002-09-11 14:38:56 +00:00
mainzelm
024d938e39
Added SRFI 25, 26, 27, 28, 30.
2002-09-11 14:34:58 +00:00
mainzelm
cd9907c68f
Fixed bug in the reference implementation reported by Vladimir Tsichevski on c.l.s..
2002-09-09 08:03:59 +00:00
sperber
e3d6f985fc
Put back an accidentally elided ELSE branch in PLACEHOLDER-SET!
2002-09-06 14:11:36 +00:00
mainzelm
854f9d18e1
Removed duplicate definition of S48_ENTER/EXTRACT_BOOLEAN.
2002-09-06 11:57:53 +00:00
mainzelm
1599136ffa
Added map, for-each, member, assoc to srfi-1-interface
2002-09-04 08:23:47 +00:00
sperber
33c14d7901
First stab at implementing SELECT/SELECT!:
...
- extend the VM interrupts to distinguish between read and write
events
- add new ADD-PENDING-CHANNEL instruction to the VM
- add WAIT-FOR-CHANNELS procedure to the run-time system
- implement SELECT and SELECT! on top of that in newports.scm
This runs some basic tests, but in general should be considered
largely untested.
Moreover, SELECT/SELECT! never detect any exceptional conditions---the
returned vectors are always empty. This is because the VM doesn't
really track those, and it's unclear whether it would be worth the
effort.
2002-08-20 14:03:01 +00:00
sperber
ac343ba970
Replace Martin's implementation of selective blocking by the one in
...
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.
2002-08-16 14:11:50 +00:00
mainzelm
8f1dfb6935
Ensure that newspace is the space in front when dumping an image the
...
prevent relocation on startup.
2002-08-15 16:35:26 +00:00
mainzelm
4e5b87209d
Added ignore-port-locks? flag to output-port-forcers and use it in
...
flush-all-ports-no-threads.
2002-06-26 11:25:33 +00:00
mainzelm
bbfd094bbd
Queue os-signal events.
2002-06-10 08:46:08 +00:00
mainzelm
aed248d24b
First version of libscsh.
2002-05-16 14:50:46 +00:00
sperber
1d35626709
Redo the forking-without-the-threads fix in a way not involving
...
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.
2002-05-03 13:42:36 +00:00
sperber
2a302178e6
Provide names for housekeeping threads for better debugging.
2002-05-03 13:36:15 +00:00
sperber
104ed36666
Export PRESERVE-THREAD-FLUIDS from THREAD-FLUIDS.
2002-04-12 14:29:25 +00:00
mainzelm
fe5c9a3783
Cells for thread-env's fluid-cell-{ref,set!}.
2002-04-04 08:45:28 +00:00
mainzelm
ea31d95dbc
All the SRFIs from S48 0.57.
2002-04-04 08:44:49 +00:00
mainzelm
66a5384a98
alt/ from S48 0.57.
2002-04-04 08:36:20 +00:00
mainzelm
ffa5461a39
Added fluid-cell-ref and fluid-cell-set!.
2002-04-04 08:22:20 +00:00
mainzelm
06b68b7c5e
Cells as stob (from S48 0.57).
2002-04-04 08:13:53 +00:00
mainzelm
6f083d7205
Small renamer for clarity.
2002-04-04 08:09:15 +00:00
mainzelm
5aee745efb
New module language from S48 0.57.
2002-04-03 12:17:19 +00:00
sperber
b4312d028c
Be even more thorough about releasing port locks after exceptions.
2002-02-28 08:29:04 +00:00
sperber
f5d853712b
Remove STEAL-CHANNEL-PORT! which has been unused for a while now and
...
uncomfortably shared code with STEAL-PORT!
2002-02-28 08:28:32 +00:00
sperber
12ced00589
Make sure port locks get released after I/O errors.
2002-02-26 14:40:21 +00:00
mainzelm
150031d918
Revive these wonderful debugging tools.
2002-02-12 07:54:22 +00:00
sperber
baf1dbbf76
Pass optional arguments from FORK-THREAD to SPAWN.
2002-02-04 11:34:17 +00:00
mainzelm
2b1d8a3d01
Let s48-do-gc return 0 so the PreScheme compiler will emit the correct
...
signature of the function.
2002-02-01 10:25:50 +00:00
sperber
7c026ff0b4
Fix external-call-from-callback problem leading to spurious
...
gc-protection-mismatch exceptions.
2002-01-27 20:20:53 +00:00
mainzelm
284d89fe12
Added hook to align cwd and umask for the S48 system.
2001-12-19 09:14:15 +00:00
mainzelm
8bba3a13e1
Adjust top of stack as well.
2001-12-04 13:06:12 +00:00
sperber
136e313af7
New implementation of (no-inheritance) thread-local cells and thread
...
fluids.
New implementation of syslog.
Both are to be compatible with what's actually probably going into
Scheme 48.
2001-12-03 15:21:46 +00:00
sperber
b5180b35af
Make naming consistent with current Scheme 48:
...
argtype -> argument_type
argnumber -> argument_number
2001-12-03 15:19:48 +00:00
mainzelm
1ed75d8531
Let thread-uid->thread invoke the GC if it encounters multiple threads with the same uid.
2001-11-08 10:24:41 +00:00