mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-07-07 01:50:32 +02:00
* libguile/gc.c (scm_oom_fn, scm_init_gc): Install an out-of-memory handler that raises an unwind-only out-of-memory exception. (scm_gc_warn_proc, scm_init_gc): Install a warning proc that tries to print to the current warning port, if the current warning port is a file port. (scm_gc_after_nonlocal_exit): New interface. Should be called after a nonlocal return to potentially collect memory; otherwise allocations could try to expand again when they should collect. * libguile/continuations.c (scm_i_make_continuation): * libguile/eval.c (eval): * libguile/throw.c (catch): * libguile/vm.c (scm_call_n): Call scm_gc_after_nonlocal_exit after nonlocal returns. * libguile/throw.c (abort_to_prompt, throw_without_pre_unwind): Rework to avoid allocating memory. (scm_report_out_of_memory): New interface. (scm_init_throw): Pre-allocate the arguments for stack-overflow and out-of-memory errors. * module/ice-9/boot-9.scm: Add an out-of-memory exception printer. * module/system/repl/error-handling.scm (call-with-error-handling): Add out-of-memory to the report-keys set. * libguile/gc-malloc.c (scm_realloc): Call scm_report_out_of_memory if realloc fails. * libguile/error.h: * libguile/error.c: * libguile/deprecated.h: * libguile/deprecated.c (scm_memory_error): Deprecate. * test-suite/standalone/Makefile.am: * test-suite/standalone/test-out-of-memory: New test case. |
||
---|---|---|
.. | ||
peg | ||
and-let-star.scm | ||
arrays.scm | ||
binary-ports.scm | ||
boot-9.scm | ||
buffered-input.scm | ||
calling.scm | ||
ChangeLog-2008 | ||
channel.scm | ||
command-line.scm | ||
common-list.scm | ||
compile-psyntax.scm | ||
control.scm | ||
curried-definitions.scm | ||
debug.scm | ||
deprecated.scm | ||
documentation.scm | ||
eval-string.scm | ||
eval.scm | ||
expect.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 | ||
mapping.scm | ||
match.scm | ||
match.upstream.scm | ||
networking.scm | ||
null.scm | ||
occam-channel.scm | ||
optargs.scm | ||
peg.scm | ||
poe.scm | ||
poll.scm | ||
popen.scm | ||
posix.scm | ||
pretty-print.scm | ||
psyntax-pp.scm | ||
psyntax.scm | ||
q.scm | ||
quasisyntax.scm | ||
r5rs.scm | ||
r6rs-libraries.scm | ||
rdelim.scm | ||
README | ||
receive.scm | ||
regex.scm | ||
runq.scm | ||
rw.scm | ||
safe-r5rs.scm | ||
safe.scm | ||
save-stack.scm | ||
scm-style-repl.scm | ||
serialize.scm | ||
session.scm | ||
slib.scm | ||
stack-catch.scm | ||
streams.scm | ||
string-fun.scm | ||
syncase.scm | ||
test.scm | ||
threads.scm | ||
time.scm | ||
top-repl.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