* * boot-9.scm (top-repl): Use (ice-9 debug) (ice-9 debugger) (ice-9
session) (ice-9 threads) (ice-9 regex) from guile-user only if
top-repl is called. This makes startup time for scripts 30% of
what it was before... Removed redundant code for loading of
readline.
readline is used by the repl run by this thread.
(handle-system-error): Print "Backtrace:" before backtrace since
this is no longer done by display-backtrace.
with the configuration date of ice-9. This test yields too many
false positives to be helpful. For example, if you build Guile
for several architectures but have them all share a "share"
directory (which is supposed to work), then all but one
architecture's Guile will complain that the configuration dates
don't match. Which is true, but indicates nothing wrong.
* boot-9.scm: Delete code which compares ice-9-config-stamp with
libguile-config-stamp.
* version.scm.in: Delete.
* Makefile.am (ice9_generated): Delete.
(subpkgdata_DATA): Remove ice9_generated.
(EXTRA_DIST): Remove version.scm.in.
* Makefile.in: Regenerate.
session) (ice-9 threads) (ice-9 regex) from guile-user only if
top-repl is called. This makes startup time for scripts 30% of
what it was before... Removed redundant code for loading of
readline.
* boot-9.scm (read-path-list-notation,
read-path-list-notation-warning): Deleted.
Don't register read-path-list-notation-warning as a reader for
objects starting with '#/'.
system. Here's a simple version for the old module system:
* boot-9.scm (module-observers, module-weak-observers,
module-observer-id, set-module-observers!,
set-module-observer-id!): New accessors.
(module-type): Added slots `observers', `weak-observers' and
`observer-id'.
(module-observe, module-observe-weak, module-unobserve,
module-modified!): New procedures.
(module-make-local-var!, module-add!, module-remove!,
module-clear!, module-define!, module-use!): Call module-modified!.
(error-catching-loop): likewise.
* boot-9.scm (scm-style-repl): -read: don't call
consume-trailing-whitespace if val is eof object. Allows
exiting repl with single control-D.
* boot-9.scm (error-catching-loop): don't force output within
error catching loop after quit received.
(top-repl): flush all ports when the repl terminates.
* boot-9.scm (error-catching-loop): flush all ports before
primitive exit if non-interactive.
force-output on current-error-port if interactive.
* boot-9.scm (reopen-file): deleted.
* popen.scm (open-output-pipe, open-input-pipe): moved from
boot-9.scm.
* popen.scm: new file.
resolve-module.
(resolve-module): Bugfix: Make it possible for a module at a
deeper level (x y z) to depend on a module on a higher (x y).
Use try-load-module.
status of a module.;
Mark `the-root-module' and `the-scm-module' as system modules.
(process-define-module): Add new keyword :no-backtrace.
* boot-9.scm (environment-module): Bugfixed.
(set-module-eval-closure!): Add a pointer back from the eval
closure to the module.
:autoload MODULENAME BINDINGS to the define-module form.
The autoload specifier tells the module system to load the module
MODULENAME at the first occasion that any variable with its name
among BINDINGS is referenced.
(make-autoload-interface): New procedure: Constructs a stand-in
for the public interface for the module to be autoloaded.
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.