Hi, On the "wingo" branch in the main repository, you will find the following patches:
The following changes since commit 0fe95f9c4ce063781e79a15bc123c57c33ef9755: Ludovic Courtès (1): Improve wording in `libguile/Makefile.am' regarding stack calibration. are available in the git repository at: git.sv.gnu.org:/srv/git/guile.git wingo Andy Wingo (7): allow building against uninstalled guile; move some things to meta/ add getrlimit and setrlimit wrappers getrlimit-based stack limits rely on getrlimit to DTRT, don't make stack calibration file fix check for guile-tools running uninstalled fix "linking" of guile-config fix distcheck hopefully, by cleaning the vm-i-*.i files .gitignore | 1 - Makefile.am | 9 +- README | 20 ++- am/guilec | 4 +- am/pre-inst-guile | 2 +- check-guile.in | 5 +- configure.in | 16 +- doc/ref/Makefile.am | 4 +- gc-benchmarks/run-benchmark.scm | 2 +- libguile/Makefile.am | 25 +--- libguile/debug.c | 36 ++++ libguile/measure-hwm.scm | 136 --------------- libguile/posix.c | 174 ++++++++++++++++++++ libguile/posix.h | 2 + {guile-config => meta}/ChangeLog-2008 | 0 {guile-config => meta}/Makefile.am | 25 +-- .../gdb-uninstalled-guile.in | 10 +- meta/guile-1.8-uninstalled.pc.in | 8 + guile-1.8.pc.in => meta/guile-1.8.pc.in | 0 {guile-config => meta}/guile-config.in | 7 +- guile-tools.in => meta/guile-tools.in | 2 +- pre-inst-guile.in => meta/guile.in | 6 +- {guile-config => meta}/guile.m4 | 0 pre-inst-guile-env.in => meta/uninstalled-env.in | 17 ++- test-suite/standalone/Makefile.am | 2 +- test-suite/standalone/README | 2 +- test-suite/standalone/test-fast-slot-ref.in | 2 +- test-suite/standalone/test-use-srfi.in | 6 +- testsuite/Makefile.am | 2 +- 29 files changed, 299 insertions(+), 226 deletions(-) delete mode 100644 libguile/measure-hwm.scm rename {guile-config => meta}/ChangeLog-2008 (100%) rename {guile-config => meta}/Makefile.am (59%) rename gdb-pre-inst-guile.in => meta/gdb-uninstalled-guile.in (79%) create mode 100644 meta/guile-1.8-uninstalled.pc.in rename guile-1.8.pc.in => meta/guile-1.8.pc.in (100%) rename {guile-config => meta}/guile-config.in (98%) rename guile-tools.in => meta/guile-tools.in (98%) rename pre-inst-guile.in => meta/guile.in (93%) rename {guile-config => meta}/guile.m4 (100%) rename pre-inst-guile-env.in => meta/uninstalled-env.in (87%) The patches fix distcheck again, but the interesting one is ec900eacb71bbf66b85a5605f67f83b43f2c6ca8, which does this in debug.c: @@ -513,11 +518,42 @@ SCM_DEFINE (scm_debug_hang, "debug-hang", 0, 1, 0, #undef FUNC_NAME #endif +static void +init_stack_limit (void) +{ +#ifdef HAVE_GETRLIMIT + struct rlimit lim; + if (getrlimit (RLIMIT_STACK, &lim) == 0) + { + int bytes = lim.rlim_cur, words; + + /* set our internal stack limit to 1 MB or 80% of the rlimit, whichever + is lower. */ + if (bytes == RLIM_INFINITY) + bytes = lim.rlim_max; + + if (bytes == RLIM_INFINITY) + words = 1024 * 1024 / sizeof (scm_t_bits); + else + { + bytes = bytes * 8 / 10; + if (bytes > 1024 * 1024) + bytes = 1024 * 1024; + words = bytes / sizeof (scm_t_bits); + } + + SCM_STACK_LIMIT = words; + } + errno = 0; +#endif +} + void scm_init_debug () { + init_stack_limit (); scm_init_opts (scm_debug_options, scm_debug_opts); [...] Comments? OK to merge to master? Andy -- http://wingolog.org/