- Interrupt handlers really installed and documented.
- File locking fixed to use proc objects instead of pids, and bugs in code and documentation fixed.
This commit is contained in:
parent
52cd685e9a
commit
7e66a68afa
9
NEWS
9
NEWS
|
@ -2,6 +2,15 @@
|
|||
|
||||
Recent changes to the Scheme Shell.
|
||||
|
||||
??/??/?? (version 0.4.5 presumably)
|
||||
lock-region record now stores the *proc object* of the locking
|
||||
process, not the integer pid. A bug in unlock-region was fixed,
|
||||
and the documentation was fixed up.
|
||||
Did we say we had signal handlers installed in the last release?
|
||||
Now we do. Really. Installed & documented.
|
||||
Hopefully, bdc will change this line to say the static heap
|
||||
linker is documented.
|
||||
|
||||
11/03/96 (version 0.4.4)
|
||||
minor fixes for SunOS, Solaris, AIX, NeXTStep, 686 systems
|
||||
minor static heap linker fixes
|
||||
|
|
9
RELEASE
9
RELEASE
|
@ -137,14 +137,14 @@ We even have one of those URL things:
|
|||
=====================
|
||||
|
||||
** Signal handlers
|
||||
We finally have signal handlers; with this Scsh now has all of Posix.
|
||||
We finally have signal handlers. Go wild.
|
||||
|
||||
** Static heap linker
|
||||
The static heap linker converts a Scheme 48 bytecode image as
|
||||
embodied in a .image file to a C representation. This C
|
||||
code is then compiled and linked in with a virtual machine. One
|
||||
pleasant side effect of this is reduced startup times. Another
|
||||
good thing is that immutable parts of the image can be shared
|
||||
pleasant side effect of this is reduced startup times and heap sizes.
|
||||
Another good thing is that immutable parts of the image can be shared
|
||||
between processes. see the script scsh/static.scm
|
||||
|
||||
** Last few bits of Posix
|
||||
|
@ -166,7 +166,8 @@ We even have one of those URL things:
|
|||
switch and with the (DUMP-SCSH-PROGRAM <file-name> <entry-point>)
|
||||
are now equivalent in that both pass a list of command-line arguments
|
||||
that includes the program name. The two start-up methods were not
|
||||
the same in the previous release.
|
||||
the same in the previous release. NOTE: THIS IS A BACKWARDS-INCOMPATIBLE
|
||||
CHANGE IN DUMP-SCSH-PROGRAM FROM THE PREVIOUS RELEASE.
|
||||
|
||||
** Etc.
|
||||
Solaris 2 on i386 support, AIX 4 support, HP-UX now uses dld for
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
Scsh cheat sheet
|
||||
Olin Shivers
|
||||
November 1994
|
||||
November 1996
|
||||
|
||||
This cheat sheet is intentionally kept brief and minimalist.
|
||||
It is intended to function as an ASCII-format reminder for the
|
||||
full manual, not as the definition. It can be read using GNU Emacs's
|
||||
outline mode.
|
||||
|
||||
It is also not entirely up-to-date. I'd appreciate getting updates from users.
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
* High-level forms
|
||||
|
@ -174,6 +176,27 @@ Open flags:
|
|||
(write-string/partial string [fd/port start end]) -> nwritten
|
||||
(force-output [fd/port])
|
||||
|
||||
** File locking
|
||||
(define-record lock-region
|
||||
exclusive? ; write or read lock?
|
||||
start ; integer: start, end & whence
|
||||
end ; integer: define the region being locked.
|
||||
whence ; The value of SEEK/SET, SEEK/DELTA, or SEEK/END.
|
||||
proc) ; A proc object for the process locking the region.
|
||||
|
||||
(make-lock-region exclusive? start len [whence]) -> lock-region
|
||||
WHENCE defaults to the value of SEEK/SET.
|
||||
|
||||
(lock-region fdes lock)
|
||||
(lock-region/no-block fdes lock)
|
||||
|
||||
(get-lock-region fdes lock) -> lock-region or #f
|
||||
|
||||
(unlock-region fdes lock)
|
||||
|
||||
(with-region-lock* fdes lock thunk)
|
||||
(with-region-lock fdes lock body ...) Syntax
|
||||
|
||||
** File system
|
||||
(create-directory fname [perms override?])
|
||||
(create-fifo fname [perms override?])
|
||||
|
@ -364,6 +387,67 @@ command-line-arguments
|
|||
(pause-until-interrupt)
|
||||
(sleep secs)
|
||||
|
||||
Non-signal S48 interrupts
|
||||
-------------------------
|
||||
interrupt/memory-shortage
|
||||
|
||||
Posix signals with S48 interrupts
|
||||
------------------------------
|
||||
signal/alrm interrupt/alrm (aka interrupt/alarm)
|
||||
signal/int interrupt/int (aka interrupt/int)
|
||||
signal/chld interrupt/chld
|
||||
signal/cont interrupt/cont
|
||||
signal/hup interrupt/hup
|
||||
signal/quit interrupt/quit
|
||||
signal/term interrupt/term
|
||||
signal/tstp interrupt/tstp
|
||||
signal/usr1 interrupt/usr1
|
||||
signal/usr2 interrupt/usr2
|
||||
|
||||
signal/info interrupt/info Non-Posix
|
||||
signal/io interrupt/io Non-Posix
|
||||
signal/poll interrupt/poll Non-Posix
|
||||
signal/prof interrupt/prof Non-Posix
|
||||
signal/pwr interrupt/pwr Non-Posix
|
||||
signal/urg interrupt/urg Non-Posix
|
||||
signal/vtalrm interrupt/vtalrm Non-Posix
|
||||
signal/winch interrupt/winch Non-Posix
|
||||
signal/xcpu interrupt/xcpu Non-Posix
|
||||
signal/xfsz interrupt/xfsz Non-Posix
|
||||
|
||||
Synchronous and uncatchable signals
|
||||
-----------------------------------
|
||||
signal/stop Uncatchable Posix
|
||||
signal/kill Uncatchable Posix
|
||||
|
||||
signal/abrt Synchronous Posix
|
||||
signal/fpe Synchronous Posix
|
||||
signal/ill Synchronous Posix
|
||||
signal/pipe Synchronous Posix
|
||||
signal/segv Synchronous Posix
|
||||
signal/ttin Synchronous Posix
|
||||
signal/ttou Synchronous Posix
|
||||
|
||||
signal/bus Synchronous BSD + SVR4
|
||||
signal/emt Synchronous BSD + SVR4
|
||||
signal/iot Synchronous BSD + SVR4
|
||||
signal/sys Synchronous BSD + SVR4
|
||||
signal/trap Synchronous BSD + SVR4
|
||||
|
||||
** Interrupt handlers
|
||||
(signal->interrupt sig) -> interrupt
|
||||
(interrupt-set integer1 ...) -> integer
|
||||
|
||||
(enabled-interrupts) -> integer
|
||||
(set-enabled-interrupts! integer) -> integer
|
||||
|
||||
(with-enabled-interrupts interrupt-set body ...) Syntax
|
||||
(with-enabled-interrupts* interrupt-set thunk)
|
||||
|
||||
(set-interrupt-handler! interrupt handler) -> old-handler
|
||||
(interrupt-handler interrupt) -> handler
|
||||
HANDLER is #f (ignored), #t (default), or (lambda (enabled-ints) ...) proc.
|
||||
|
||||
** Time
|
||||
|
||||
(define-record date
|
||||
|
|
|
@ -162,7 +162,8 @@
|
|||
lock-region:whence
|
||||
lock-region:start
|
||||
lock-region:len
|
||||
lock-region:pid
|
||||
lock-region:pid ; Deprecated proc.
|
||||
lock-region:proc
|
||||
make-lock-region
|
||||
|
||||
lock-region
|
||||
|
@ -986,10 +987,36 @@
|
|||
(define-interface signal-handler-interface
|
||||
(export signal->interrupt
|
||||
interrupt-set
|
||||
|
||||
(with-enabled-interrupts :syntax)
|
||||
with-enabled-interrupts*
|
||||
set-signal-handler!
|
||||
signal-handler
|
||||
enabled-interrupts
|
||||
set-enabled-interrupts!
|
||||
|
||||
set-interrupt-handler!
|
||||
interrupt-handler
|
||||
|
||||
%set-unix-signal-handler!
|
||||
%unix-signal-handler
|
||||
))
|
||||
|
||||
interrupt/alrm interrupt/alarm
|
||||
interrupt/int interrupt/keyboard
|
||||
interrupt/memory-shortage
|
||||
interrupt/chld
|
||||
interrupt/cont
|
||||
interrupt/hup
|
||||
interrupt/quit
|
||||
interrupt/term
|
||||
interrupt/tstp
|
||||
interrupt/usr1
|
||||
interrupt/usr2
|
||||
interrupt/info
|
||||
interrupt/io
|
||||
interrupt/poll
|
||||
interrupt/prof
|
||||
interrupt/pwr
|
||||
interrupt/urg
|
||||
interrupt/vtalrm
|
||||
interrupt/winch
|
||||
interrupt/xcpu
|
||||
interrupt/xfsz))
|
||||
|
|
Loading…
Reference in New Issue