* ioext.c (scm_primitive_dup2): return the new file descriptor
instead of SCM_UNSPECIFIED, since similarity to scm_primitive_dup
is convenient.
(scm_fdopen): bug fix: don't try to make port unbuffered until its
stream has been set.
(scm_duplicate_port): deleted, there's now an implementation in
boot-9.scm.
(scm_primitive_dup2): do nothing if newfd == oldfd.
* boot-9.scm (dup->port, dup->inport, dup->outport, dup->fdes,
dup, fdes->inport, fdes->outport, port->fdes): new procedures.
(duplicate-port): was a C primitive, now it's here.
(move->fdes): allow the first argument to be a file descriptor.
Return the modified port or file descriptor (was unspecified.)
* boot-9.scm (read-path-list-notation): New function.
(parse-path-symbol): Deleted. Replaced by above.
Plug in read-path-list-notation as the parser for #/ lists,
instead of the anonymous lambda form calling parse-path-symbol.
(Thanks to Maurizio Vitale.)
from the (ice-9 common-list) module; make the `init' argument
optional in the scm module's definition, to match the deleted
definition. Harmony reigneth? (Thanks to Bernard URBAN.)
different version of ice-9. People have been skewing things and
sending in bug reports.
* version.scm.in: New file, which the configure script munges to
produce version.scm, which contains the ice-9 config stamp.
* boot-9.scm: Compare the libguile and ice-9 config stamps;
display a warning if the two are different.
* Makefile.am: Install version.scm, but don't distribute it.
Distribute version.scm.in, but don't install it.
* Makefile.in: Regenerated.
check. Correctly check for struct printer tag.
* boot-9.scm (with-regexp-parts): Comment this out. It has no
users in the core, and relies on mildly hairy details of the old
regexp interface.
* boot-9.scm (ipow-by-squaring, butlast): Fix uses of outdated
function names.
* boot-9.scm (with-excursion-getter-and-setter, q-rear): Doc
fixes.
make-struct-printer, set-struct-printer-in-vtable!): New bindings
to support printing of structures.
(record-type-vtable, make-record-type): Add slot to hold printing
function and initialize it with something appropriate. Removed
commented out printing code.
(record-type-name, record-type-fields): Adjusted slot offsets.
(%print-module): Reduce argument list to "mod" and "port".
* _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.
arithmetic (from Marko.Kohtala@ntc.nokia.com).
* boot-9.scm (open-input-pipe, open-output-pipe): defined here
instead of in libguile.
(tm:sec etc.) new accessors for broken-down time.
(set-tm:sec etc.) new setters for broken-down time.
by getpw, getgr, gethost, getnet, getproto, getserv (e.g.,
passwd:name, where the first component is the name of the C structure
and the second is the unprefixed C member name.)
* * boot-9.scm (setpwent, setgrent, sethostent, setnetent, setprotoent,
setservent): no longer take an argument, it was bogus.
* r4rs.scm: update primitive-load usage.
Don't define read-sharp.
* boot-9.scm: use read-hash-extend to install extra read syntax.
(read-sharp): removed.
Adjust usage of primitive-load-path, read, which no longer take
case_i or read-sharp arguments.
* throw.c (scm_handle_by_message): if a 'quit is caught, use its
args to derive an exit status. Allows (quit) to work from a
script.
(scm_exit_status): new function.
#include "eq.h".
return the quit args.
(scm-style-repl): call -quit, passing return value from
error-catching-repl. Make -quit return its args.
stand-along-repl: comment out, since it seems unused.
(top-repl): convert the value returned by scm-style-repl to
an integer and return it.
(error-catching-loop thunk): discard trailing junk after a (quit).
* r4rs.scm (apply, call-with-current-continuation): Added comment
explaining why apply and call/cc need to be closures.
* boot-9.scm (apply, call-with-current-continuation): Bugfix:
Removed. These definitions are already present in r4rs.scm.
it anyway because 1. it is very useful, and, 2. you can start
making it less premature by complaining to me and by modifying
the source! :-)
(trace): Given one or more procedure objects, trace each one.
Given no arguments, show all traced procedures.
(untrace): Given one or more procedure objects, untrace each one.
Given no arguments, untrace all traced procedures. The tracing in
Guile have an advantage to most other systems: We don't create new
procedure objects, but mark the procedure objects themselves.
This means that also anonymous and internal procedures can be
traced.
* boot-9.scm (error-catching-loop): Added handling of apply-frame
and exit-frame exceptions.
* * boot-9.scm (assert-repl-prompt, the-prompt-string): Removed.
(set-repl-prompt!): Setter for repl prompt.
(scm-style-repl): If prompt is #f, don't prompt; if prompt is a
string, display it; if prompt is a thunk, call it and display its
result; otherwise display "> ".
(Change suggested by Roland Orre <orre@nada.kth.se>.)
recording of source code positions. This was placed there for our
convenience, but it has already sneaked into the distribution
once... so we'd better add this in our local copies instead when
we need it. (These options are normally enabled at the end of
boot-9.scm when loading the debug module.)
(macroexpand-1, macroexpand): Use local-ref instead of defined?
and eval.
* r4rs.scm (%load-verbosely): Use "module-defined?" instead of
"defined?".
* slib.scm (defined?): New function to take the place of the
builtin "defined?". It allways examines the slib module.
* boot-9.scm (split-c-module-name, convert-c-registered-modules,
init-dynamic-module, dynamic-maybe-call,
find-and-link-dynamic-module, link-dynamic-module,
try-module-dynamic-link, registered-modules): New definitions for
dynamic linking of modules.
(resolve-module): Try to dynamically link the requested module
after failing to load it as Scheme code.