diff options
author | Neil Jerram <neil@ossau.uklinux.net> | 2008-10-17 21:43:36 +0100 |
---|---|---|
committer | Neil Jerram <neil@ossau.uklinux.net> | 2008-10-17 22:05:54 +0100 |
commit | d8b6e19181ffaf2df29431166cc4ca64c1390fc8 (patch) | |
tree | 8c17122cf89b00bf9c93e47be4d22c22827f5d1d /libguile/stackchk.c | |
parent | 88cefbc7de86e0061b0cc4fb5417de78f7afba15 (diff) |
Avoid `Stack overflow' errors when running `make check'
For explanation, see comments and text in the new file
libguile/measure-hwm.scm.
* .gitignore: Add libguile/stack-limit-calibration.scm.
* check-guile.in: Load libguile/stack-limit-calibration.scm.
* configure.in: Add AC_CONFIG_FILES to generate test-use-srfi from
test-use-srfi.in.
* libguile/Makefile.am (TESTS, TESTS_ENVIRONMENT,
stack-limit-calibration.scm): New targets, so that `make check'
calibrates the stack limit before running the Guile test suite.
* libguile/measure-hwm.scm: New file, calibrates stack limit for `make
check'.
* libguile/stackchk.c (scm_sys_get_stack_size): New primitive.
* libguile/stackchk.h (scm_sys_get_stack_size): New primitive
(declaration).
* test-suite/standalone/test-use-srfi: Renamed test-use-srfi.in, so
that ./configure can fill in variables in it.
* test-suite/standalone/test-use-srfi.in: Load
libguile/stack-limit-calibration.scm.
Diffstat (limited to 'libguile/stackchk.c')
-rw-r--r-- | libguile/stackchk.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libguile/stackchk.c b/libguile/stackchk.c index 391ce21e9..a53e67629 100644 --- a/libguile/stackchk.c +++ b/libguile/stackchk.c @@ -24,6 +24,7 @@ #include "libguile/_scm.h" #include "libguile/ports.h" #include "libguile/root.h" +#include "libguile/threads.h" #include "libguile/stackchk.h" @@ -78,6 +79,17 @@ scm_stack_report () scm_puts ("\n", port); } + +SCM_DEFINE (scm_sys_get_stack_size, "%get-stack-size", 0, 0, 0, + (), + "Return the current thread's C stack size (in Scheme objects).") +#define FUNC_NAME s_scm_sys_get_stack_size +{ + return scm_from_long (scm_stack_size (SCM_I_CURRENT_THREAD->base)); +} +#undef FUNC_NAME + + void scm_init_stackchk () { |