* module/ice-9/psyntax.scm: Fix bug in which the whole syntax object was
being recorded as the name of the operator in a lexical call, instead
of just the symbolic name.
* module/ice-9/psyntax-pp.scm: Regenerated.
* module/language/tree-il/primitives.scm
(*interesting-primitive-names*, *effect-free-primitives*): Recognize
make-prompt-tag as interesting and effect-free.
* module/language/tree-il/inline.scm (boolean-value, inline!): Add a
case for inlining conditional expressions.
* test-suite/tests/tree-il.test: Fix conditional tests to have a
non-inlinable condition.
* module/ice-9/boot-9.scm (resolve-interface): Pass #:ensure #f to
resolve-module, so that in the case of module-not-found we don't leave
behind an empty module without an interface.
* module/ice-9/boot-9.scm:
* module/ice-9/deprecated.scm (get-option, for-next-option)
(display-usage-report, transform-usage-lambda): Deprecate these
option-parsing utils. We can revive them in a non-deprecated module if
there is interest, but I suspect there will be no interest.
* module/ice-9/boot-9.scm:
* module/ice-9/scm-style-repl.scm (bad-throw): Move here. This function
was never documented, but has been around since guile-ii. It's not
used with current code though.
* module/ice-9/deprecated.scm: Provide bad-throw in default env.
* module/ice-9/debugger/commands.scm: Import bad-throw from
scm-style-repl.
* module/Makefile.am:
* module/ice-9/scm-style-repl.scm: New file, to hold the old
scm-style-repl.
* module/ice-9/deprecated.scm: Provide scm-style-repl and
error-catching-loop and error-catching-repl in the default env, but
with deprecation warnings.
* module/ice-9/boot-9.scm (resolve-module): Add #:ensure kwarg,
defaulting to true. If true we make an empty module if none was found
(the old behavior). Otherwise we return false.
* test-suite/tests/modules.test ("resolve-module"): Add tests for old
and new behavior.
* libguile/numbers.c (scm_integer_expt): Validate the first arg as a
number.
(scm_expt): Delegate to scm_integer_expt iff x is exact. Fixes
fractions.test, which I broke recently
* test-suite/tests/numbers.test ("integer-expt"): Add test for
(integer-expt #t 0).
* module/ice-9/boot-9.scm (top-repl): This use of @ is not safe, because
it will cause (system repl repl) to be loaded at expand time, which
will eventually cause (srfi srfi-1) to be loaded, which won't work
with a fresh build tree because the helper lib isn't compiled. Gross.
(load): Add a note about why this use of @ is safe.
* module/system/repl/repl.scm (start-repl): If the debugging ports are
unbound, bind them to the current i/o ports. Allows errors within
with-output-to-foo / with-input-from-foo to be sensibly debugged.
* module/system/repl/repl.scm (prompting-meta-read): Use
call-with-error-handling.
* module/system/vm/debug.scm (call-with-error-handling): Add case for
#:on-error 'pass. Have the catch handler return the unspecified value.
* module/system/repl/repl.scm (prompting-meta-read): Catch and print
read errors here, returning unspecified in that case.
(start-repl): Don't enable the debugger while reading expressions.
Adapt with-backtrace to with-error-handling.
* module/system/vm/debug.scm (run-debugger, debugger-repl): No need to
take a stack, the frames vector is sufficient.
(call-with-error-handling, with-error-handling): New public utilities.
Notably they do not poke the-last-stack.
* module/ice-9/boot-9.scm (find-versioned-module): Perform a stable sort on
version numbers of matched libraries; eliminate extra path separator in
library file path.
* libguile/hashtab.c: Re-arrange functions to avoid the need for
pre-declaring character arrays with no length. Fixes compilation on
Compaq C V6.3-025. Thanks to Jay Krell for the report.
* module/ice-9/boot-9.scm (module-filename, set-module-filename!): Add a
new field to modules, the filename that is associated with the module.
For debugging purposes.
(process-define-module): Parse out a #:filename argument.
(make-module, make-autoload-interface): Adapt to module-constructor
change.
(define-module): Init module-filename from (current-source-location).
* module/ice-9/format.scm (format:parse-float): Accept a number, and
when stringifying the number, first convert to inexact.
* test-suite/tests/format.test ("~f fixed-point"): Add exact rational
test.
* module/ice-9/psyntax.scm (chi-install-global, chi-macro)
(eval-local-transformer): Now that we handle module hygiene through
syntax objects, there is no more need to record the current module
when installing syntax transformers.
* module/ice-9/psyntax-pp.scm: Regenerated (trickily).
* libguile/_scm.h: Bump objcode version for macro representation change.
* libguile/macros.c (scm_macro_transformer): Adapt to change in macro
representation.