mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-05 03:30:24 +02:00
The builtin primitive procedure `error` takes an optional message and a list of arguments to include into the error message. These args are formatted with `~S` and appended to the error message, so that an example call of `(error "Wrong argument: " 42)` results in the output "Wrong argument: 42" If format strings occur in the message itself, however, they are escaped. Thus a call like `(error "Wrong argument: ~a" 42)` is rendered as "Wrong argument: ~a 42" Some callers did not take this behavior into account, leading to confusing error messages. Changing the behavior of `error` to be both backwards-compatible and accept also format strings inside messages is not straightforward, because it would have to handle escaped `~` characters as well. Therefore, fix `error` call sites using format strings to use `format` before calling out to `error`. The following files are affected: * module/ice-9/format.scm (format) * module/ice-9/r6rs-libraries.scm (resolve-r6rs-interface) * module/oop/goops.scm (make) * module/srfi/srfi-37.scm (Comment at the beginning of file) * module/system/base/compile.scm (call-once) * module/system/repl/command.scm (break, tracepoint) * module/system/repl/common.scm (repl-default-options) * module/system/vm/traps.scm (arg-check, trap-at-source-location) There are a couple of further call sites that were left unchanged, either because they are using their own `error` procedure: * module/ice-9/read.scm * module/ice-9/command-line.scm or are not referenced from other modules: * module/system/base/lalr.upstream.scm: * module/sxml/upstream/assert.scm: * module/sxml/sxml-match.ss: Signed-off-by: Ludovic Courtès <ludo@gnu.org> |
||
---|---|---|
.. | ||
peg | ||
and-let-star.scm | ||
arrays.scm | ||
atomic.scm | ||
binary-ports.scm | ||
boot-9.scm | ||
buffered-input.scm | ||
calling.scm | ||
ChangeLog-2008 | ||
command-line.scm | ||
common-list.scm | ||
compile-psyntax.scm | ||
control.scm | ||
copy-tree.scm | ||
curried-definitions.scm | ||
custom-ports.scm | ||
deprecated.scm | ||
documentation.scm | ||
eval-string.scm | ||
eval.scm | ||
exceptions.scm | ||
expect.scm | ||
fdes-finalizers.scm | ||
format.scm | ||
ftw.scm | ||
futures.scm | ||
gap-buffer.scm | ||
getopt-long.scm | ||
hash-table.scm | ||
hcons.scm | ||
history.scm | ||
i18n.scm | ||
iconv.scm | ||
lineio.scm | ||
list.scm | ||
local-eval.scm | ||
ls.scm | ||
match.scm | ||
match.upstream.scm | ||
networking.scm | ||
null.scm | ||
occam-channel.scm | ||
optargs.scm | ||
peg.scm | ||
poe.scm | ||
poll.scm | ||
popen.scm | ||
ports.scm | ||
posix.scm | ||
pretty-print.scm | ||
psyntax-pp.scm | ||
psyntax.scm | ||
q.scm | ||
quasisyntax.scm | ||
r5rs.scm | ||
r6rs-libraries.scm | ||
r7rs-libraries.scm | ||
rdelim.scm | ||
read.scm | ||
README | ||
receive.scm | ||
regex.scm | ||
runq.scm | ||
rw.scm | ||
safe-r5rs.scm | ||
safe.scm | ||
sandbox.scm | ||
save-stack.scm | ||
scm-style-repl.scm | ||
serialize.scm | ||
session.scm | ||
slib.scm | ||
soft-ports.scm | ||
stack-catch.scm | ||
streams.scm | ||
string-fun.scm | ||
suspendable-ports.scm | ||
test.scm | ||
textual-ports.scm | ||
threads.scm | ||
time.scm | ||
top-repl.scm | ||
unicode.scm | ||
vlist.scm | ||
weak-vector.scm |
This directory contains various bits of Guile Scheme code. Most of these are packaged as modules, with foo.scm implementing the module `(ice-9 foo)'. The non-module files are: boot-9.scm -- loaded on guile startup implements module system + lots of other stuff arrays.scm -- loaded by boot-9.scm networking.scm -- loaded by boot-9.scm posix.scm -- loaded by boot-9.scm r4rs.scm -- loaded by boot-9.scm