ioext.c (%read-line): Return a cons of the input line and its terminator.
fports.c, genio.c, genio.h, ports.c, ports.h: Change fgets methods
to return the string length as well as its contents.
* configure.in: AC_CHECK_FUNCS: add "system".
* simpos.c (scm_system): always define: use sysmissing if not
available. Check for HAVE_SYSTEM instead of _Windows (does
Windows lack system or does it have an unusable one?).
Check for error conditions -1 and 127. Use SCM_DEFER_INTS.
Let the argument be optional: if not supplied, call system(NULL).
* ports.c (scm_close_port): relax the type check from OPPORTP to
PORTP; closing a closed port is allowed.
out to interact badly with the Emacs support and the Tcl/Tk
support. It's not a high enough priority at the moment to be
worth fixing. I'm leaving the other readline support in, though.
* readline.scm: New module.
* boot-9.scm (repl-reader): New function.
(scm-style-repl): Call repl-reader, instead of doing the reading
ourselves. Remove repl-report-reset; it was never used for
anything.
(top-repl): If we've got the readline primitives, then redefine
repl-reader to use them.
If we've got the readline primitives, import the readline module.
expect-strings to fix the => syntax under the new regex system.
(top): include regex module in define-module statement.
* (error-catching-loop): new local variable "interactive". if
#f, abort terminates the process.
(set-batch-mode?!, batch-mode?): new closures, defined in
error-catching-loop. the names are from scsh.
* boot-9.scm (struct-layout): Use `vtable-index-layout' instead of
`0'.
1997-10-02 Mikael Djurfeldt <mdj@nada.kth.se>
* boot-9.scm (struct-printer, make-struct-printer,
set-struct-printer-in-vtable!, *struct-printer*): Removed.
(record-type-vtable, make-record-type): Don't use make-struct-printer.
(record-type-vtable): User fields "prpr" (printer is no longer a
user field).
(record-type-name, record-type-fields): Decreased slot index by
one; Use `vtable-offset-user'.
* boot-9.scm: Split off modules into separate, autoloadable files.
This reduces startup time from 10.5s to 5.5s (user cpu).
* calling.scm, common-list.scm, ls.scm, q.scm, runq.scm,
string-fun.scm: New files, containing stuff that used to be in
boot-9.scm.
* Makefile.am (ice9_sources): List new files here, for
distribution and installation.
* Makefile.in: Regenerated.
separate-fields-after-char, separate-fields-before-char): Call
continuation function, RET, as advertised: with each separated
field a separate argument.
* Makefile.in: Regenerated with automake 1.2a.
registered.
(try-module-dynamic-link): Removed the first test which
corresponds to a call to `try-module-linked'.
(resolve-module): Resolve modules in this order: 1. Already
registered modules (for example those which have been statically
linked), 2. Try to autoload an .scm-file, 3. Try to dynamically
link a .so-file.
length --> string-length. (Thanks to Aleksandar Bakic.)
(separate-fields-discarding-char, separate-fields-after-char,
separate-fields-before-char): Bugfix from Maciej Stachowiak
<mstachow@mit.edu>. Thanks!
Should be used inside the (ice-9 syncase) module with (use-syntax
syncase) and with the current directory containing the psyntax.ss
source.
Added hack to transfer syntactic information from the builtin
variable `define' to the slib version if module (ice-9 slib) has
been loaded.
* slib.scm: Added hack which transfers syntactic information from
the builtin variable `define' to the slib version if module (ice-9
syncase) has been loaded. This is necessary to get correct
expansion inside the slib module.
* psyntax.ss (build-let, build-named-let): New output
constructors.
(build-lexical-var): Seed gensym with symbolic name.
(self-evaluating?): Add keywords among self-evaluating types.
(let): New core form.
(if): Removed from core language.
(or, and, let, cond): Removed syntactic definitions.
(sc-expand3): New procedure: Expander which takes optional mode
and eval-syntactic-expanders-when arguments.
* syncase.scm (psyncomp): New procedure: Recompiles psyntax.pp.
Should be used inside the (ice-9 syncase) module with (use-syntax
syncase) and with the current directory containing the psyntax.ss
source.
Added hack to transfer syntactic information from the builtin
variable `define' to the slib version if module (ice-9 slib) has
been loaded.
* syncase.scm (putprop, getprop): Modified to use the object
properties of the variable object corresponding to the symbol;
This way we can ride on the mechanisms of the module system.
Changed `builtin-variable' calls to `define-public' calls.
Setup the hooks sc-expand and sc-interface.
* boot-9.scm (sc-interface, sc-expand): New builtin variables.
(set-current-module): Switch to and from sc-expand as
scm:eval-transformer when going into and out of modules using
syncase macros.
(module-use!): Set scm:eval-transformer to sc-expand when adding
the syncase interface.
according to the following priorities:
1. tcl bindings which are present in override-scheme-list
2. bindings from the-scm-module
3. tcl bindings
This way the gtcl module can occur first in the use-list without
disabling the scheme interpreter.
(new-interpreter): New function.
* gwish.scm: Moved initialization code for the-interpreter to
gtcl.scm; Moved name space cleaning code to gtcl.scm and rewrote
it; Call `new-interpreter'; Don't :use-module (guile).