interface is set to the module itself. In this way we can use
beautify-user-module! to beautify a module prepared for object
code.
(process-define-module): Special case: Try to load object code as
well if a module does :use-module on itself.
* boot-9.scm: Bugfix: Since boot-9.scm is now loaded from
invoke_main_func, we can no longer be sure that all modules have
been registered when boot-9.scm is loaded.
(register-modules): New function: Register and tag modules
registered by scm_register_module_xxx since last call to this
function. Modules are tagged with the dynamic object passed as
argument. (Already linked modules should be tagged with #f.)
(init-dynamic-module, link-dynamic-module): Call register-modules
first to register linked modules.
* boot-9.scm (init-dynamic-module): Remove module from
registered-modules as soon as possible in case we are recursively
invoked; Set public interface before doing the dynamic-call.
* boot-9.scm (map-in-order): Removed (replaced by scm_serial_map).
(abort-hook, before-error-hook, after-error-hook,
before-backtrace-hook, after-backtrace-hook, before-read-hook,
after-read-hook, exit-hook): Make hooks with `make-hook'.
* boot-9.scm: Make hooks first class citizens and make them easier
to use from C:
(make-hook, add-hook!, remove-hook!, run-hooks): Moved to
libguile/feature.c.
* boot-9.scm: Added warnings about bindings used in
libguile/modules.c: the-module, set-current-module,
make-modules-in, beautify-user-module!, module-eval-closure.
entering a read-eval-print loop. Turn code to load (ice-9 emacs)
into...
(load-emacs-interface): New function.
(top-repl): Call it, if use-emacs-interface is defined and true.
At this point, we *do* know we're about to enter a REPL.
available. The dynamic linking facilities in boot-9.scm are
currently dependent upon regular expressions. My change of
1998-07-14 removed (ice-9 regex) from the use-list of the root
module and thereby destroyed dynamic linking.
bindings from a module. `(export name1 name2 ...)' can be used at
the top of a module (after `define-module') to specify which names
should be exported. It can be used as an alternative to
`define-public'. `export-syntax' works equivalently to `export'
but is intended for export of syntactic keywords.
(Thanks to Thien-Thi Nguyen.)
of module `(guile)'. Also make sure that `(guile-repl)' uses
suitable modules. This change improves Guile stability
substantially since bindings will only be copied from the root
module: If the user redefines builtins in `(guile-repl)' it won't
affect the internal operation of Guile itself.
module `(guile)'. Also make sure that `(user)' uses suitable
modules. This change improves Guile stability substantially since
bindings will only be copied from the root module: If the user
redefines builtins in `(user)' it won't affect the internal
operation of Guile itself.
similar in use to `use-modules'.
Example: (use-syntax (ice-9 syncase)) will 1. load the module
(ice-9 syncase), and, 2. install the procedure `syncase' as eval
transformer.
(internal-use-syntax): New procedure.
(process-define-module): Use `internal-use-syntax'.
19971027 and adapt it to the current readline interface.
* boot-9.scm (top-repl): Only enable readline if not using the
Emacs interface; Only use repl prompt when using the readline port
from repl-read. (We don't want to see it when calling `read'.)
* boot-9.scm (remove-hook!): Parenthesis bug.
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.
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!