* module/ice-9/debugger.scm:
* module/ice-9/debugger/command-loop.scm:
* module/ice-9/debugger/commands.scm:
* module/ice-9/debugger/state.scm:
* module/ice-9/debugger/trc.scm:
* module/ice-9/debugger/utils.scm:
* module/ice-9/debugging/breakpoints.scm:
* module/ice-9/debugging/example-fns.scm:
* module/ice-9/debugging/ice-9-debugger-extensions.scm:
* module/ice-9/debugging/load-hooks.scm:
* module/ice-9/debugging/steps.scm:
* module/ice-9/debugging/trace.scm:
* module/ice-9/debugging/traps.scm:
* module/ice-9/debugging/trc.scm: Remove these files, as we will favor
the REPL's implementation of a debugger, and (system vm traps) and
(system vm trap-state). But these old files will continue to inspire
the rest of the new debugger interface.
* module/ice-9/boot-9.scm (make-root-module, make-scm-module): Remove
these functions; they are only called once, so we inline them at their
call sites.
(the-root-module, the-scm-module): The aforementioned call sites.
* libguile/load.c (compiled_is_fresh): Rename `res' to
`compiled_is_newer'. Use `get_stat_mtime' to compare with nano-second
resolution when available.
* module/ice-9/boot-9.scm (load)[fresh-compiled-file-name]: Likewise,
using `stat:mtimensec'.
* module/ice-9/session.scm (submodules): replace implementation to
use `module-submodules' instead of `module-obarray' (the latter
doesn't include submodules anymore).
* test-suite/tests/session.test: new test suite for session, checking
the exported procedures that use `submodules'.
Signed-off-by: Jose A. Ortega Ruiz <jao@gnu.org>
* module/ice-9/boot-9.scm (module-ref-submodule)
(module-define-submodule!): Pull deprecated shims here, as we need
them before loading (ice-9 deprecated). Also bugfix to only define the
module if there is no local variable, even if it is unbound.
* module/ice-9/deprecated.scm: Remove from here.
* am/guilec (install-data-hook): Remove.
(guile_install_go_files): New variable.
($(guile_install_go_files)): New dependency.
* libguile/load.c (compiled_is_fresh): Check for ordering of STAT_SOURCE
and STAT_COMPILED, not equality.
* module/ice-9/boot-9.scm (load): Ditto.
* module/system/base/compile.scm (call-with-output-file/atomic): Don't
set the timestamp of TEMPLATE.
* module/ice-9/debug.scm: Gut, though we keep the module around for code
Out There that uses it.
* module/ice-9/top-repl.scm (top-repl): Don't import (ice-9 debug)
* module/ice-9/debugger/commands.scm:
* module/ice-9/debugging/trace.scm:
* module/ice-9/emacs.scm: Remove ice-9 debug includes.
* module/ice-9/buffered-input.scm (make-buffered-input-port): Instead of
always returning EOF once EOF is seen once, call the producer again.
Allows Ctrl-D to cause one EOF at the REPL, returning once from a
recursive edit, but input continues normally. Thanks to Andrew
Bagdanov for a clue that led to the fix.
* module/system/repl/repl.scm (run-repl): Run the thunk in a stack in a
prompt, similar to the default prompt. Gives proper backtraces.
* module/system/repl/error-handling.scm (call-with-error-handling):
Narrow one more outer frame, for the %start-stack thunk invocation.
* module/ice-9/boot-9.scm (%start-stack): Reindent.
* module/ice-9/psyntax.scm (lookup): Reflow comment.
(chi-top, syntax): Add comments about mod for lookup.
(set!): Lookup the identifier in the module attached to its syntax
object. In the (set! MACRO foo) case, after expanding the macro, chi
the resulting expression with the empty wrap, as syntax-type
does. Seems to fix the case where the expansion references
lexically-bound variables.
* module/ice-9/psyntax-pp.scm: Regenerated.
* test-suite/tests/syncase.test: Add a bunch of tests.
* module/ice-9/boot-9.scm (*repl-stack*): Instead of repl-level, have a
stack.
(batch-mode?): Change to poke the stack.
* module/ice-9/deprecated.scm (set-batch-mode?!): Update deprecation
method.
* module/system/repl/common.scm (repl-prompt): Update to poke
*repl-stack* to get the level.
* module/system/repl/repl.scm (start-repl): Bind *repl-stack*
appropriately.
* module/ice-9/boot-9.scm (exit-hook): Move up with the other hooks.
(top-repl): Don't install handlers for SIGFPE, SIGILL, SIGSEGV, or
SIGBUS, as they will have no effect.
* module/ice-9/psyntax.scm (underscore?): New helper, like ellipsis?.
(syntax-case): Treat the _ pattern as a matches-all pattern,
disallowing it from the keyword list. Another well-thought part of the
R6RS.
($sc-dispatch): Dispatch _ patterns.
* module/ice-9/psyntax-pp.scm: Regenerated.
* test-suite/tests/syncase.test ("_ is a placeholder"): Add a test.
* module/ice-9/boot-9.scm (export!): New syntax, as export is to
module-export!, export! is to module-replace!. I thought that taking
up the name `replace' would be presumptuous, hence the name mismatch.
* module/ice-9/r6rs-libraries.scm (library): Calculate not only
re-exports, but replacements as well.
* module/ice-9/boot-9.scm (ensure-batch-mode!): Remove comment about
restoring signals, and that behavior, as it was making popen.test
hang. I should investigate further, but instead I'm just going to hope
that this fixes it.
* module/ice-9/r6rs-libraries.scm (resolve-r6rs-interface): To avoid having to
create alias libraries for all the SRFIs, we simply ignore the name
components, so (srfi :n foo bar) will resolve to (srfi :n).
* module/ice-9/psyntax.scm (build-lexical-assignment)
(build-global-assignment): Maybe name the RHS.
* module/ice-9/psyntax-pp.scm: Regenerated.
* module/ice-9/boot-9.scm (catch, with-throw-handler, throw): Rework to
use set! instead of define! so that we get names.
* libguile/backtrace.h (scm_the_last_stack_fluid_var)
* libguile/backtrace.c (scm_init_backtrace): No more
scm_the_last_stack_fluid_var. The replacement is to resolve
`the-last-stack' in (ice-9 stack-catch).
(scm_backtrace_with_highlights): Accordingly, instead of backtracing
the last stack, backtrace the current stack.
* libguile/throw.h:
* libguile/throw.c:
* libguile/deprecated.h:
* libguile/deprecated.c (scm_internal_stack_catch): Deprecate this
function.
* module/ice-9/save-stack.scm (the-last-stack): Move here from boot-9.
* module/ice-9/debug.scm:
* module/ice-9/debugger.scm: Use (ice-9 save-stack) for the-last-stack.
* module/ice-9/deprecated.scm (the-last-stack): Add deprecated shim.
* module/ice-9/boot-9.scm (false-if-exception): Use syntax-rules. Don't
muck with the-last-stack, it is going away. Remove a later comment
about the-last-stack.
* module/ice-9/psyntax.scm (set!): Handle variable transformers; though,
they cannot produce definitions.
(make-variable-transformer): New procedure.
(identifier-syntax): Allow the R6RS form that makes variable
transformers.
* module/ice-9/psyntax-pp.scm: Regenerated.
* doc/ref/r6rs.texi (R6RS Incompatibilities): Remove letrec* item, and
add set! restriction.
* module/ice-9/boot-9.scm:
* module/ice-9/scm-style-repl.scm (handle-system-error): Move here from
boot-9.
* module/ice-9/deprecated.scm (handle-system-error): Keep a deprecated
wrapper in the root environment.