* _scm.h: if HAVE_RESTARTS is defined then don't use a SYSCALL
loop.
* posix.c (scm_uname): interpret only negative values as an error.
Solaris normally returns a positive value.
* script.c (scm_compile_shell_switches): if we are not going into
an interactive repl, set scm_mask_ints to zero so that asyncs can
run.
* simpos.c (scm_system): don't ignore/unignore signals around
the "system" call.
* posix.c (scm_open_pipe): don't ignore/unignore signals around
the "popen" call.
* init.c (scm_boot_guile_1): don't call scm_init_signals, it's
done in boot-9.scm instead.
* scmsigs.c, async.c: Major rewriting of signal handling code.
(scm_sigaction): new procedure.
(scm_sleep): don't wrap sleep in SCM_SYSCALL, it would mess up the
timing.
(scm_raise): return unspecified, throw error on failure.
* boot-9.scm: signal-handler, alarm-thunk: removed.
don't define ticks-interrupt etc.
top-repl: install signal handlers for SIGINT, SIGFPE, SIGSEGV, SIGBUS
during call to scm-style-repl.
* acconfig.h: mention HAVE_RESTARTS.
* configure.in: check for sigaction and restartable system calls.
sure how this was supposed to work.
(scm_async_click): don't send SCM_TICK_SIGNAL.
(scm_init_async): don't initialize %tick-thunk.
* the following change doesn't affect the Scheme interface:
gc-thunk is called at the end of garbage collection. however it's
no longer implemented by pretending it's a signal.
* gc.c (scm_gc_end): don't call scm_take_signal. instead mark the
system async corresponding to scm_gc_thunk.
* async.h: declare scm_gc_async.
* async.c (scm_sys_gc_async_thunk): apply the thunk named by
gc-thunk directly, instead of going through a signal handler.
(scm_gc_async): new variable, points to the GC system-async.
(scm_init_async): save the GC async as scm_gc_async instead
of using system_signal_asyncs.
(scm_gc_vcell): new variable, stores the gc-thunk vcell.