`module-ensure-variable!'. Make sure that there really is a local
variable, not just a visible one.
(module-ensure-variable!): See above.
(module-export!): Behave like always when deprecated features are
enabled, but issue a warning when re-exporting a variable. When
deprecated features are disabled, only export local variables,
creating them uninitialized when they don't yet exist.
(module-re-export!): New. Use this for re-exporting imported
variables.
(re-export): New, to go with `module-re-export!'.
(named-module-use!, top-repl): Use resolve-interface
instead of resolve-module to get at the used module.
(module-export!): Use it to ensure that there is a variable to
export. Previously, we would always create a new variable, copy
the value over, and export the new variable. This confused
syncase since it keys important properties on variables.
(compile-interface-spec, compile-define-module-args): New.
(define-module): Use compile-define-module-args to construct
argument for process-define-module.
(use-modules, use-syntax): Use compile-interface-spec to construct
arguments for process-use-modules.
(process-define-module): Expect keywords in argument list.
to feature lists.
(cond-expand): Use feature information associated with modules.
* boot-9.scm (use-srfis): Do not extend the srfi-0 feature list.
(cond-expand-provide): New procedure.
set-current-module.
(define-module): Do it here, in the expansion.
(top-repl): Do not define '(guile-user)' module and conditionally
load `(ice-9 threads)' and/or `(ice-9 regex)' here. Do it on
top-level as the last thing in boot-9.scm instead.
(%load-path): Use `list' instead of `cons' to create a single
element list when adding "." to it.
(process-define-module, process-use-modules, module-export!): Add
dummy definitions prior to booting the mdule system.
(process-define-module): Internal proc `unrecognized'
now accepts arg; update callers.
Reverse order of interfaces added to module to be
consistent with that specified in `define-module' form.
`module-public-interface'.
(resolve-module): Extend to handle selection and renaming in spec.
Arg is now `spec' which can be a simple module name (list of symbols)
or a interface spec.
(symbol-prefix-proc): New proc.
(process-define-module): Use "define-module" in error messages
instead of "defmodule". Factor error into internal proc.
Rewrite `use-module' and `use-syntax' handlers.
Replace some single-arm `if-not' constructs w/ `or'.
(process-use-modules): Arg is now `module-interface-specs',
which is passed through to `resolve-interface' as before; nfc.
(named-module-use!, top-repl): Abstraction maintenance: Use `provided?'.
(call-with-deprecation): Removed.
(id): Use `issue-deprecation-warning' instead of
`call-with-deprecation'. Wrap definition in `begin-deprecated'.
(eval-in-module): Manifest deprecation via `begin-deprecation' and
`issue-deprecation-warning'.
(warn-autoload-deprecation): Deactivated.
`interaction-evironment'.
(define-public, defmacro-public): Use `export' instead of explicit
module magic.
(eval-when): New macro.
(define-module, use-modules, use-syntax, export): Use it to
restrict the use of these forms to the top level.
(define-public, defmacro-public): Only export binding when on
top-level.
(process-define-module): Call `set-current-module' with the
defined module.
(define-module): Simply call `process-define-module' without any
fuss (but only on top-level).
(named-module-use!): New function.
(top-repl): Do not use `define-module'. Use equivalent low-level
means instead.
in C for now.
* rdelim.scm: export the C primitives too.
* documentation.scm: use (ice-9 rdelim).
* filesys.c (scm_link): docstring fix.
* fports.h (scm_setfileno): obsolete declaration removed.
* posix.c: bogus popen declaration removed.
* rdelim.c: new file, split from ioext.c with new proc
scm_init_rdelim.
* rdelim.h: new file.
* Makefile.am: add rdelim.c and related files.
* init.c: call scm_init_rdelim. include rdelim.h.
* ice-9.scm (scm-line-incrementors read-line! read-delimited!
read-delimited read-line): moved to rdelim.scm.
scm-line-incrementors is not exported.
* boot-9.scm: import (ice-9 rdelim) for backwards compatibility,
for now.
* lineio.scm: use module (ice-9 rdelim).
* Makefile.am (ice9_sources): add rdelim.scm.
removed. values and call-with-values are now primitives and
the other two were only exported by accident. don't define
*values-rtd* record type or handle multiple values in
scm-style-repl.
`symbol-append'.
(symbol-append): Map `symbol->string' on
args.
(obarray-symbol-append, obarray-gensym): Simply removed. I don't
think I'll announce this in NEWS even. One of the functions never
even worked... /mdj.
(find-and-link-dynamic-module, keyword->symbol): Use
`symbol->string'.
(try-module-autoload, process-define-module): Rewrote using R5RS
semantics.