* stack overflow @ 2008-02-13 8:22 Rainer Tammer 2008-02-13 9:05 ` Ludovic Courtès 0 siblings, 1 reply; 20+ messages in thread From: Rainer Tammer @ 2008-02-13 8:22 UTC (permalink / raw) To: bug-guile; +Cc: ludovic.courtes Hello, I tried to build GUILE 1.8.3 on AIX 6.1 with the IBM XL C/C++ 9.0 compiler. During the build I get the following error: ./guile_filter_doc_snarfage --filter-snarfage) > regex-posix.doc || { rm regex-posix.doc; false; } cat alist.doc arbiters.doc async.doc backtrace.doc boolean.doc chars.doc continuations.doc debug.doc \ deprecation.doc deprecated.doc discouraged.doc dynl.doc dynwind.doc environments.doc eq.doc \ error.doc eval.doc evalext.doc extensions.doc feature.doc fluids.doc fports.doc futures.doc \ gc.doc goops.doc gsubr.doc gc-mark.doc gc-segment.doc gc-malloc.doc gc-card.doc guardians.doc hash.doc \ hashtab.doc hooks.doc i18n.doc init.doc ioext.doc keywords.doc lang.doc list.doc load.doc macros.doc \ mallocs.doc modules.doc numbers.doc objects.doc objprop.doc options.doc pairs.doc ports.doc print.doc \ procprop.doc procs.doc properties.doc random.doc rdelim.doc read.doc root.doc rw.doc scmsigs.doc \ script.doc simpos.doc smob.doc sort.doc srcprop.doc stackchk.doc stacks.doc stime.doc strings.doc \ srfi-4.doc srfi-13.doc srfi-14.doc strorder.doc strports.doc struct.doc symbols.doc threads.doc \ throw.doc values.doc variable.doc vectors.doc version.doc vports.doc weaks.doc ramap.doc unif.doc \ dynl.doc filesys.doc posix.doc net_db.doc socket.doc regex-posix.doc \ | GUILE="/daten/source/test/guile-1.8.3/pre-inst-guile" \ ../scripts/snarf-check-and-output-texi > \ guile-procedures.texi || { rm guile-procedures.texi; \ false; } ERROR: Stack overflow gmake[3]: *** [guile-procedures.texi] Error 1 the stack overflow is caused by the "pre-inst-guile" # ./pre-inst-guile Backtrace: In unknown file: ?: 65* [#<procedure #f ()>] ?: 66* (let* ((file #)) (cond (# => #) (# => #))) ?: 67 [#<procedure #f (full)> "/daten/source/test/guile-1.8.3/ice-9/null.scm"] ?: 68 [with-fluid* #<fluid 7> #f #<procedure #f ()>] ?: 69* [#<procedure #f ()>] ?: 70* [load-file #<primitive-procedure primitive-load> ...] ?: 71* [save-module-excursion #<procedure #f ()>] ?: 72 (let (# #) (dynamic-wind # thunk #)) ?: 73 [dynamic-wind #<procedure #f ()> #<procedure #f ()> #<procedure #f ()>] ?: 74* [#<procedure #f ()>] ?: 75* [primitive-load "/daten/source/test/guile-1.8.3/ice-9/null.scm"] In /daten/source/test/guile-1.8.3/ice-9/null.scm: 20: 76* (define-module (ice-9 null) :use-module ...) In unknown file: ?: 77* [copy-tree ... ?: 78* [apply #<procedure #f args> ((ice-9 null) :use-module (ice-9 syncase) ...)] ?: 79 [#<procedure #f args> (ice-9 null) :use-module ...] ?: 80 (quasiquote (eval-case (# #) (else #))) ?: 81* [compile-define-module-args ((ice-9 null) :use-module (ice-9 syncase) ...)] ?: 82 ((letrec ((loop #)) loop) (quasiquote ((quote #))) (cdr args)) ?: 83* (letrec ((loop (lambda # #))) loop) ?: 84* (lambda (compiled-args args) (cond (# #) (# #) (# #) ...)) <unnamed port>: In expression (lambda (compiled-args args) (cond # # ...)): <unnamed port>: Stack overflow Bye Rainer ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow 2008-02-13 8:22 stack overflow Rainer Tammer @ 2008-02-13 9:05 ` Ludovic Courtès 2008-02-13 9:15 ` Ludovic Courtès 0 siblings, 1 reply; 20+ messages in thread From: Ludovic Courtès @ 2008-02-13 9:05 UTC (permalink / raw) To: bug-guile Hi Rainer, Rainer Tammer <tammer@tammer.net> writes: > I tried to build GUILE 1.8.3 on AIX 6.1 with the IBM XL C/C++ 9.0 compiler. > During the build I get the following error: > > > ./guile_filter_doc_snarfage --filter-snarfage) > regex-posix.doc || { [...] > In /daten/source/test/guile-1.8.3/ice-9/null.scm: > 20: 76* (define-module (ice-9 null) :use-module ...) > In unknown file: > ?: 77* [copy-tree ... > ?: 78* [apply #<procedure #f args> ((ice-9 null) :use-module (ice-9 > syncase) ...)] > ?: 79 [#<procedure #f args> (ice-9 null) :use-module ...] > ?: 80 (quasiquote (eval-case (# #) (else #))) > ?: 81* [compile-define-module-args ((ice-9 null) :use-module (ice-9 > syncase) ...)] > ?: 82 ((letrec ((loop #)) loop) (quasiquote ((quote #))) (cdr args)) > ?: 83* (letrec ((loop (lambda # #))) loop) > ?: 84* (lambda (compiled-args args) (cond (# #) (# #) (# #) ...)) > > <unnamed port>: In expression (lambda (compiled-args args) (cond # # ...)): > <unnamed port>: Stack overflow A couple of ideas: 1. What `CFLAGS' are you using? In particular, are optimizations enabled? With GCC, compiling without optimizations usually yields a Guile that stack-overflows because the evaluator would use so much stack space that the default stack limit is quickly hit. You could have the same problem with IBM's xlc, so make sure to enable optimizations. Actually, `configure' only adds `-O2' when GCC is being used, so I'm pretty sure it's up to you to pass `configure' or `make' the right CFLAGS, e.g., CFLAGS="-the-option-that-enables-optimizations" ./configure If that fixes the problem, then we can change `configure' to use, e.g., `AX_COMPILER_VENDOR' [0] to automatically add optimization options that correspond to the compiler being used. 2. Is it a 64-bit platform? If so, it may be the case that the default stack limit (see `debug-options') is about two times smaller than what you need. Thanks, Ludovic. [0] http://autoconf-archive.cryp.to/ax_compiler_vendor.html ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow 2008-02-13 9:05 ` Ludovic Courtès @ 2008-02-13 9:15 ` Ludovic Courtès 2008-02-13 11:46 ` Rainer Tammer 0 siblings, 1 reply; 20+ messages in thread From: Ludovic Courtès @ 2008-02-13 9:15 UTC (permalink / raw) To: bug-guile Hi, ludo@gnu.org (Ludovic Courtès) writes: > CFLAGS="-the-option-that-enables-optimizations" ./configure It seems that `-qtune=auto' would make it. Best of all, we could directly use `AX_CC_MAXOPT' to solve this: http://autoconf-archive.cryp.to/ax_cc_maxopt.html Thanks, Ludovic. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow 2008-02-13 9:15 ` Ludovic Courtès @ 2008-02-13 11:46 ` Rainer Tammer 2008-02-13 12:49 ` Ludovic Courtès 0 siblings, 1 reply; 20+ messages in thread From: Rainer Tammer @ 2008-02-13 11:46 UTC (permalink / raw) To: Ludovic Courtès; +Cc: bug-guile Hello, Ludovic Courtès wrote: > Hi, > > ludo@gnu.org (Ludovic Courtès) writes: > > >> CFLAGS="-the-option-that-enables-optimizations" ./configure >> > > It seems that `-qtune=auto' would make it. > > I added -qtune=auto but this did not solve the problem... I will try other optimization settings... > Best of all, we could directly use `AX_CC_MAXOPT' to solve this: > > http://autoconf-archive.cryp.to/ax_cc_maxopt.html > > Thanks, > Ludovic. > > > > Bye Rainer ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow 2008-02-13 11:46 ` Rainer Tammer @ 2008-02-13 12:49 ` Ludovic Courtès 2008-02-14 7:36 ` stack overflow / partial success Rainer Tammer [not found] ` <87wsp83807.fsf@ossau.uklinux.net> 0 siblings, 2 replies; 20+ messages in thread From: Ludovic Courtès @ 2008-02-13 12:49 UTC (permalink / raw) To: Rainer Tammer; +Cc: bug-guile Hi, Rainer Tammer <tammer@tammer.net> writes: > I added -qtune=auto but this did not solve the problem... > I will try other optimization settings... You did "make clean all" after reconfiguring with your `CFLAGS', right? Also, do the actual compilation command lines show that your `CFLAGS' settings were taken into account? Besides, you can try adding "(debug-set! stack 40000)" to your `~/.guile' and see if that makes a difference, and increase it until it works, just to get an idea. Thanks, Ludovic. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow / partial success 2008-02-13 12:49 ` Ludovic Courtès @ 2008-02-14 7:36 ` Rainer Tammer 2008-02-14 8:38 ` Ludovic Courtès [not found] ` <87wsp83807.fsf@ossau.uklinux.net> 1 sibling, 1 reply; 20+ messages in thread From: Rainer Tammer @ 2008-02-14 7:36 UTC (permalink / raw) To: bug-guile [-- Attachment #1: Type: text/plain, Size: 6470 bytes --] Hello, I managed to compile GUILE 1.8.3+ fixes on AIX 6.1 with IBM XL C/C++ 9.0. Compiler settings: export CONFIG_SHELL=/usr/bin/bash export CONFIG_ENV_ARGS=/usr/bin/bash export CC=cc_r export CXX=xlC_r export PATH=/opt/freeware/bin:$PATH export LDFLAGS="-Wl,-brtl -L/opt/freeware/lib" export CFLAGS="-D_USE_IRS -Dinline=__inline__ -qtune=auto -O2 -I/opt/freeware/include" ./configure --enable-dynamic-linking --prefix=/opt/freeware --enable-shared --disable-static .guile (debug-set! stack 40000) Test results: gmake check-TESTS gmake[4]: Entering directory `/daten/source/test/guile-1.8.3/test-suite/standalone' PASS: test-system-cmds PASS: test-require-extension PASS: test-num2integral PASS: test-round PASS: test-gh PASS: test-asmobs PASS: test-list PASS: test-unwind PASS: test-conversion PASS: test-use-srfi =================== All 10 tests passed =================== Testing /daten/source/test/guile-1.8.3/pre-inst-guile ... with GUILE_LOAD_PATH=/daten/source/test/guile-1.8.3/test-suite Running alist.test Running and-let-star.test Running arbiters.test Running bit-operations.test Running c-api.test Running chars.test Running common-list.test Running continuations.test Running elisp.test Running environments.test UNRESOLVED: environments.test: leaf-environments: observe-weak: weak observer gets collected UNRESOLVED: environments.test: leaf-environment based eval-environments: observe-weak: weak observer gets collected Running eval.test ;;; (foo-pws) UNRESOLVED: eval.test: promises: basic promise behaviour: a forced promise does not reference its environment Running exceptions.test Running filesys.test Running format.test Running fractions.test Running ftw.test Running gc.test Running getopt-long.test Running goops.test Running guardians.test UNRESOLVED: guardians.test: standard guardian functionality: guarding independent objects: re-guarding non-immediates UNRESOLVED: guardians.test: standard guardian functionality: guarding weakly referenced objects: guarded weak vector element gets returned from guardian UNRESOLVED: guardians.test: standard guardian functionality: guarding weakly referenced objects: guarded element of weak vector gets eventually removed from weak vector UNRESOLVED: guardians.test: standard guardian functionality: guarding weak containers: element of guarded weak vector gets collected Running hash.test Running hooks.test Running import.test Running interp.test Running list.test Running load.test Running modules.test Running numbers.test Running optargs.test Running options.test Running poe.test Running popen.test Running ports.test UNRESOLVED: ports.test: port-for-each: passing freed cell Running posix.test Running q.test Running r4rs.test Running r5rs_pitfall.test Running ramap.test Running reader.test Running receive.test Running regexp.test Running socket.test Running alist.test Running and-let-star.test Running arbiters.test Running bit-operations.test Running c-api.test Running chars.test Running common-list.test Running continuations.test Running elisp.test Running environments.test UNRESOLVED: environments.test: leaf-environments: observe-weak: weak observer gets collected UNRESOLVED: environments.test: leaf-environment based eval-environments: observe-weak: weak observer gets collected Running eval.test ;;; (foo-pws) UNRESOLVED: eval.test: promises: basic promise behaviour: a forced promise does not reference its environment Running exceptions.test Running filesys.test Running format.test Running fractions.test Running ftw.test Running gc.test Running getopt-long.test Running goops.test Running guardians.test UNRESOLVED: guardians.test: standard guardian functionality: guarding independent objects: re-guarding non-immediates UNRESOLVED: guardians.test: standard guardian functionality: guarding weakly referenced objects: guarded weak vector element gets returned from guardian UNRESOLVED: guardians.test: standard guardian functionality: guarding weakly referenced objects: guarded element of weak vector gets eventually removed from weak vector UNRESOLVED: guardians.test: standard guardian functionality: guarding weak containers: element of guarded weak vector gets collected Running hash.test Running hooks.test Running import.test Running interp.test Running list.test Running load.test Running modules.test Running numbers.test Running optargs.test Running options.test Running poe.test Running popen.test Running ports.test UNRESOLVED: ports.test: port-for-each: passing freed cell Running posix.test Running q.test Running r4rs.test Running r5rs_pitfall.test Running ramap.test Running reader.test Running receive.test Running regexp.test Running socket.test Running srcprop.test Running srfi-1.test Running srfi-10.test Running srfi-11.test Running srfi-13.test Running srfi-14.test UNRESOLVED: srfi-14.test: Latin-1 (8-bit charset): char-set:letter (membership) UNRESOLVED: srfi-14.test: Latin-1 (8-bit charset): char-set:letter (size) UNRESOLVED: srfi-14.test: Latin-1 (8-bit charset): char-set:lower-case (size) UNRESOLVED: srfi-14.test: Latin-1 (8-bit charset): char-set:upper-case (size) UNRESOLVED: srfi-14.test: Latin-1 (8-bit charset): char-set:punctuation (membership) Running srfi-19.test Running srfi-26.test Running srfi-31.test Running srfi-34.test Running srfi-35.test Running srfi-37.test Running srfi-39.test Running srfi-4.test Running srfi-6.test Running srfi-60.test Running srfi-9.test Running strings.test Running structs.test Running symbols.test Running syncase.test Running syntax.test UNRESOLVED: syntax.test: while: in empty environment: empty body UNRESOLVED: syntax.test: while: in empty environment: initially false UNRESOLVED: syntax.test: while: in empty environment: iterating Running threads.test Running time.test FAIL: time.test: strftime: C99 %z format: GMT FAIL: time.test: strftime: C99 %z format: EST+5 Running unif.test Running version.test Running weaks.test Totals for this test run: passes: 11856 failures: 2 unexpected passes: 0 expected failures: 25 unresolved test cases: 16 untested test cases: 0 unsupported test cases: 11 errors: 0 FAIL: check-guile ================================== 1 of 1 tests failed Please report to bug-guile@gnu.org ================================== The detailed logs are attached. Do you like me to prepare a diff of my current source tree against the 1.8.3 release tree ?? > Thanks, > Ludovic. > > > Bye Rainer [-- Attachment #2: logs.tar.gz --] [-- Type: application/x-gzip, Size: 99512 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow / partial success 2008-02-14 7:36 ` stack overflow / partial success Rainer Tammer @ 2008-02-14 8:38 ` Ludovic Courtès 2008-02-18 6:11 ` Rainer Tammer 0 siblings, 1 reply; 20+ messages in thread From: Ludovic Courtès @ 2008-02-14 8:38 UTC (permalink / raw) To: bug-guile Hi Rainer, Rainer Tammer <tammer@tammer.net> writes: > I managed to compile GUILE 1.8.3+ fixes on AIX 6.1 with IBM XL C/C++ 9.0. Good news! > export LDFLAGS="-Wl,-brtl -L/opt/freeware/lib" > export CFLAGS="-D_USE_IRS -Dinline=__inline__ -qtune=auto -O2 > -I/opt/freeware/include" Isn't it the `inline' thing that made it work? You did not include `config.log' and `config.h': normally, these should already define `inline' as `__inline__'. And isn't `-O2' ignored by xlc? Besides, can you explain what `_USE_IRS' is about and whether it's needed? Same for `-brtl'. > FAIL: time.test: strftime: C99 %z format: GMT > FAIL: time.test: strftime: C99 %z format: EST+5 These are the only two failures! ;-) Can you show the result of the following Scheme expressions in Guile: 1. (strftime "%z" (gmtime 0)) 2. (begin (putenv "TZ=GMT+0") (tzset) (let ((tm (localtime 86400))) (strftime "%z" tm))) 3. (begin (putenv "TZ=EST+5") (tzset) (let ((tm (localtime 86400))) (strftime "%z" tm))) Thanks a lot for your help and perseverance! Ludo'. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow / partial success 2008-02-14 8:38 ` Ludovic Courtès @ 2008-02-18 6:11 ` Rainer Tammer 2008-02-18 8:33 ` Ludovic Courtès 0 siblings, 1 reply; 20+ messages in thread From: Rainer Tammer @ 2008-02-18 6:11 UTC (permalink / raw) To: Ludovic Courtès; +Cc: bug-guile Hello, Ludovic Courtès wrote: > Hi Rainer, > > Rainer Tammer <tammer@tammer.net> writes: > > >> I managed to compile GUILE 1.8.3+ fixes on AIX 6.1 with IBM XL C/C++ 9.0. >> > > Good news! > > >> export LDFLAGS="-Wl,-brtl -L/opt/freeware/lib" >> export CFLAGS="-D_USE_IRS -Dinline=__inline__ -qtune=auto -O2 >> -I/opt/freeware/include" >> > > Isn't it the `inline' thing that made it work? You did not include > `config.log' and `config.h': normally, these should already define > `inline' as `__inline__'. > > the inline to __inline__ mapping is needed for IBM XL C/C++. It is not needed with gcc 4.2.2. > And isn't `-O2' ignored by xlc? > > It is used if I specify it. I will try if configure finds this by itself. > Besides, can you explain what `_USE_IRS' is about and whether it's > needed? Same for `-brtl'. > -brtl is for runtime linking of the executable. This is from netdb.h AIX 6.1: void freehostent(struct hostent *); /* RFC 2553 */ #ifdef _USE_IRS void herror(const char *); const char * hstrerror(int); #endif /* _USE_IRS */ struct hostent *gethostbyname2(const char *, int); So if I need herror() / hsterror() I need to define _USE_IRS ... > >> FAIL: time.test: strftime: C99 %z format: GMT >> FAIL: time.test: strftime: C99 %z format: EST+5 >> > > These are the only two failures! ;-) > > Can you show the result of the following Scheme expressions in Guile: > > 1. (strftime "%z" (gmtime 0)) > > guile> "GMT" > 2. (begin > (putenv "TZ=GMT+0") > (tzset) > (let ((tm (localtime 86400))) > (strftime "%z" tm))) > > guile> "GMT" > 3. (begin > (putenv "TZ=EST+5") > (tzset) > (let ((tm (localtime 86400))) > (strftime "%z" tm))) > > guile> "EST" and this is TZ: # echo $TZ NFT-1DFT,M3.5.0/2:00:00,M10.5.0/3:00:00 > Thanks a lot for your help and perseverance! > > Ludo'. > > > > Bye Rainer > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow / partial success 2008-02-18 6:11 ` Rainer Tammer @ 2008-02-18 8:33 ` Ludovic Courtès 2008-02-18 9:56 ` Rainer Tammer 0 siblings, 1 reply; 20+ messages in thread From: Ludovic Courtès @ 2008-02-18 8:33 UTC (permalink / raw) To: bug-guile Hi, Rainer Tammer <tammer@tammer.net> writes: > Ludovic Courtès wrote: >> Isn't it the `inline' thing that made it work? You did not include >> `config.log' and `config.h': normally, these should already define >> `inline' as `__inline__'. >> > the inline to __inline__ mapping is needed for IBM XL C/C++. It is > not needed with gcc 4.2.2. Right, but doesn't `configure' detect this? The output of "grep inline config.log" should show it. >> And isn't `-O2' ignored by xlc? >> > It is used if I specify it. I will try if configure finds this by itself. But what's its meaning then? I thought `-qtune=auto' was roughly equivalent to GCC's `-O2'. > -brtl is for runtime linking of the executable. So what does it do precisely? :-) > So if I need herror() / hsterror() I need to define _USE_IRS ... There's only one place where `hstrerror ()' is used, and it's enclosed in `#if HAVE_STRERROR'. Thus, if Guile is compiled without `_USE_IRS', the offending bit will be compiled out and no compilation error will occur I suppose. IOW, you should be able to compile Guile without `_USE_IRS', right? >> 1. (strftime "%z" (gmtime 0)) >> > guile> "GMT" The results you show here are vastly different from what we expect, which shows that AIX' `strftime' is not C99-compliant in its treatment of `%z' [0]. (Actually, it doesn't seem to be documented at all [1].) We'll have to update `have-strftime-%z' accordingly in `time.test'. Thanks, Ludovic. [0] http://www.opengroup.org/onlinepubs/009695399/functions/strftime.html [1] http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.basetechref/doc/basetrf2/strftime.htm ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow / partial success 2008-02-18 8:33 ` Ludovic Courtès @ 2008-02-18 9:56 ` Rainer Tammer 2008-02-18 10:37 ` Ludovic Courtès 0 siblings, 1 reply; 20+ messages in thread From: Rainer Tammer @ 2008-02-18 9:56 UTC (permalink / raw) To: Ludovic Courtès; +Cc: bug-guile Hello, Ludovic Courtès wrote: > Hi, > [...] > >>> Isn't it the `inline' thing that made it work? You did not include >>> `config.log' and `config.h': normally, these should already define >>> `inline' as `__inline__'. >>> >>> >> the inline to __inline__ mapping is needed for IBM XL C/C++. It is >> not needed with gcc 4.2.2. >> > > Right, but doesn't `configure' detect this? The output of > "grep inline config.log" should show it. > > Unfortunately no ... >>> And isn't `-O2' ignored by xlc? >>> >>> >> It is used if I specify it. I will try if configure finds this by itself. >> > > But what's its meaning then? I thought `-qtune=auto' was roughly > equivalent to GCC's `-O2'. > > Not really: -qtune=<option> Specifies the architecture system for which the executable program is optimized. Possible values: 403, 604, auto, balanced, ppc970, pwr3, pwr4, pwr5, pwr6, rs64a, rs64b, rs64c auto is: Object code optimized for the hardware platform on which the program is compiled. So this option only specifies the platform. -O<level> specifies the optimizations used: 0 = quick 2 = Performs optimizations that the compiler developers considered the best combination for compilation speed and runtime performance. 3... 5 are potentially dangerous as the have the potential to change the semantics of the program >> -brtl is for runtime linking of the executable. >> > So what does it do precisely? :-) > OK, you want to know: The -brtl dos the following: Enables run-time linking for the output file. This option implies the rtllib and symbolic options. When dynamic mode is in effect, the rtl option allows input files specified with the -l flag to end in .so as well as in .a. All input files that are shared objects are listed as dependents of your program in the output files loader section. The shared objects are listed in the same order as they were specified on the command line. If you like more information I can send you a couple documents with detailed explanations. >> So if I need herror() / hsterror() I need to define _USE_IRS ... >> > > There's only one place where `hstrerror ()' is used, and it's enclosed > in `#if HAVE_STRERROR'. Unfortunately HAVE_STRERROR is defined to 1 ... > Thus, if Guile is compiled without `_USE_IRS', the offending bit will be compiled out and no compilation error will > occur I suppose. IOW, you should be able to compile Guile without `_USE_IRS', right? > > No, because HAVE_STRERROR gets defined. The easiest solution wold be to define _USE_IRS if HAVE_STRERROR and AIX is defined. >>> 1. (strftime "%z" (gmtime 0)) >>> >>> >> guile> "GMT" >> > > The results you show here are vastly different from what we expect, > which shows that AIX' `strftime' is not C99-compliant in its treatment > of `%z' [0]. (Actually, it doesn't seem to be documented at all [1].) > > We'll have to update `have-strftime-%z' accordingly in `time.test'. > > OK > Thanks, > Ludovic. > > [0] http://www.opengroup.org/onlinepubs/009695399/functions/strftime.html > [1] http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.basetechref/doc/basetrf2/strftime.htm > > > > Bye Rainer ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow / partial success 2008-02-18 9:56 ` Rainer Tammer @ 2008-02-18 10:37 ` Ludovic Courtès 2008-02-18 14:00 ` Rainer Tammer 0 siblings, 1 reply; 20+ messages in thread From: Ludovic Courtès @ 2008-02-18 10:37 UTC (permalink / raw) To: bug-guile Rainer Tammer <tammer@tammer.net> writes: > Ludovic Courtès wrote: >> Right, but doesn't `configure' detect this? The output of >> "grep inline config.log" should show it. >> > Unfortunately no ... So what does "grep inline config.log" show?! > Not really: > > -qtune=<option> Specifies the architecture system for which the > executable program is optimized. > Possible values: 403, 604, auto, balanced, ppc970, pwr3, pwr4, pwr5, > pwr6, rs64a, rs64b, rs64c > > auto is: Object code optimized for the hardware platform on which the > program is compiled. > So this option only specifies the platform. > > -O<level> specifies the optimizations used: OK. > The -brtl dos the following: OK, that's something Guile's `configure' should not worry about, I guess. >> There's only one place where `hstrerror ()' is used, and it's enclosed >> in `#if HAVE_STRERROR'. > Unfortunately HAVE_STRERROR is defined to 1 ... Sorry, I really meant `HAVE_HSTRERROR' (with `H'), which must be undefined on AIX, right? Thanks, Ludovic. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow / partial success 2008-02-18 10:37 ` Ludovic Courtès @ 2008-02-18 14:00 ` Rainer Tammer 2008-02-18 14:11 ` Ludovic Courtès 0 siblings, 1 reply; 20+ messages in thread From: Rainer Tammer @ 2008-02-18 14:00 UTC (permalink / raw) To: Ludovic Courtès; +Cc: bug-guile Hello, Ludovic Courtès wrote: > Rainer Tammer <tammer@tammer.net> writes: > [...] > >> Unfortunately no ... >> > > So what does "grep inline config.log" show?! > > There is a "inline" but this version is not compatible... The "inline" produces the following error: "strings.c", line 132.10: 1506-780 (S) Reference to "scm_double_cell" with internal linkage is not allowed within inline definition of "scm_i_take_stringbufn". The inline keyword is only recognized under compilation with c99 or with the -qlanglvl=stdc99 or -qlanglvl=extc99 options (or equivalent pragmas) or -qkeyword=inline. Note that the latter option is enabled by default for xlc in the configuration file that is shipped with the compiler. The __inline__ keyword is recognized at all language levels. > >> The -brtl dos the following: >> > > OK, that's something Guile's `configure' should not worry about, I > guess. > > Yes, the setting a "export LDFLAGS=-Wl,-brtl" before you call configure is sufficient (and documented in the latest libtool 1.5.26 readme). >>> There's only one place where `hstrerror ()' is used, and it's enclosed >>> in `#if HAVE_STRERROR'. >>> >> Unfortunately HAVE_STRERROR is defined to 1 ... >> > > Sorry, I really meant `HAVE_HSTRERROR' (with `H'), which must be > undefined on AIX, right? > > /* Define to 1 if you have the `hstrerror' function. */ #define HAVE_HSTRERROR 1 No, this is defined... > Thanks, > Ludovic. > > Bye Rainer > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow / partial success 2008-02-18 14:00 ` Rainer Tammer @ 2008-02-18 14:11 ` Ludovic Courtès 2008-02-19 7:15 ` Rainer Tammer 0 siblings, 1 reply; 20+ messages in thread From: Ludovic Courtès @ 2008-02-18 14:11 UTC (permalink / raw) To: bug-guile Hi, Rainer Tammer <tammer@tammer.net> writes: > Ludovic Courtès wrote: >> So what does "grep inline config.log" show?! >> > There is a "inline" but this version is not compatible... Note that this does not answer my question. :-) > The "inline" produces the following error: > > "strings.c", line 132.10: 1506-780 (S) Reference to "scm_double_cell" > with internal linkage is not allowed within inline definition of > "scm_i_take_stringbufn". Yes, this is fixed in the forthcoming 1.8.4 (hopefully released later today). > /* Define to 1 if you have the `hstrerror' function. */ > #define HAVE_HSTRERROR 1 Then you should only get a warning at compilation-time about `hstrerror ()' being undeclared, but the build process should continue and Guile should link fine. I'm reluctant to adding a `#define _USE_IRS' without any compelling reason, since (i) the leading underscore makes it look like an internal macro, and (ii) I don't know what it's really supposed to do. Thanks, Ludovic. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow / partial success 2008-02-18 14:11 ` Ludovic Courtès @ 2008-02-19 7:15 ` Rainer Tammer 2008-02-19 21:53 ` Ludovic Courtès 0 siblings, 1 reply; 20+ messages in thread From: Rainer Tammer @ 2008-02-19 7:15 UTC (permalink / raw) To: Ludovic Courtès; +Cc: bug-guile Hello, Ludovic Courtès wrote: > Hi, > [...] > > >>> So what does "grep inline config.log" show?! >>> >>> >> There is a "inline" but this version is not compatible... >> > > Note that this does not answer my question. :-) > > I know... >> The "inline" produces the following error: >> >> "strings.c", line 132.10: 1506-780 (S) Reference to "scm_double_cell" >> with internal linkage is not allowed within inline definition of >> "scm_i_take_stringbufn". >> > > Yes, this is fixed in the forthcoming 1.8.4 (hopefully released later > today). > > This sounds great, then it should work without the __inline__ hack. >> /* Define to 1 if you have the `hstrerror' function. */ >> #define HAVE_HSTRERROR 1 >> > > Then you should only get a warning at compilation-time about > `hstrerror ()' being undeclared, but the build process should continue > and Guile should link fine. > > I'm reluctant to adding a `#define _USE_IRS' without any compelling > reason, since (i) the leading underscore makes it look like an internal > macro, and (ii) I don't know what it's really supposed to do. > > Yes and no, IBM XL C/C++ continues but gcc 4.2.2 stops due to the -Wall switch... gmake[3]: Entering directory `/daten/source/guile-1.8.3/libguile' /usr/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -fno-strict-aliasing -Wall -Wmissing-prototypes -Werror -MT net_db.lo -MD -MP -MF .deps/net_db.Tpo -c -o net_db.lo net_db.c gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -fno-strict-aliasing -Wall -Wmissing-prototypes -Werror -MT net_db.lo -MD -MP -MF .deps/net_db.Tpo -c net_db.c -DPIC -o .libs/net_db.o cc1: warnings being treated as errors net_db.c: In function 'scm_resolv_error': net_db.c:112: warning: implicit declaration of function 'hstrerror' The easiest solution wold be an AIX note in the INSTALL: n.1. AIX with IBM Compiler ... n.2. AIX with gcc 4.x ... and the setting for the extended stack "(debug-set! stack 80000)" should also be mention. > Thanks, > Ludovic. > > > Bye Rainer ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow / partial success 2008-02-19 7:15 ` Rainer Tammer @ 2008-02-19 21:53 ` Ludovic Courtès 2008-02-20 8:18 ` Rainer Tammer ` (2 more replies) 0 siblings, 3 replies; 20+ messages in thread From: Ludovic Courtès @ 2008-02-19 21:53 UTC (permalink / raw) To: bug-guile Hi Rainer, Rainer Tammer <tammer@tammer.net> writes: > Ludovic Courtès wrote: >> Then you should only get a warning at compilation-time about >> `hstrerror ()' being undeclared, but the build process should continue >> and Guile should link fine. >> >> I'm reluctant to adding a `#define _USE_IRS' without any compelling >> reason, since (i) the leading underscore makes it look like an internal >> macro, and (ii) I don't know what it's really supposed to do. >> > Yes and no, > IBM XL C/C++ continues but gcc 4.2.2 stops due to the -Wall switch... I know for GCC but you said you were using xlc, right? :-) When compiling with GCC, you'd have to run `configure' with `--disable-error-on-warning' to avoid this problem---I'm wondering whether we should make it the default. > and the setting for the extended stack "(debug-set! stack 80000)" > should also be mention. Ah, so setting it fixed some problem? BTW, hopefully some of your problems are addressed by the newly-released 1.8.4. We'll look into the others (e.g., `strftime') for the next release. Thanks for your report! Ludovic. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow / partial success 2008-02-19 21:53 ` Ludovic Courtès @ 2008-02-20 8:18 ` Rainer Tammer 2008-02-20 9:28 ` Rainer Tammer 2008-02-20 14:40 ` GUILE 1.8.4 on AIX 6.1 Rainer Tammer 2 siblings, 0 replies; 20+ messages in thread From: Rainer Tammer @ 2008-02-20 8:18 UTC (permalink / raw) To: Ludovic Courtès; +Cc: bug-guile Hello, Ludovic Courtès wrote: > Hi Rainer, > [...} > >> Yes and no, >> IBM XL C/C++ continues but gcc 4.2.2 stops due to the -Wall switch... >> > > I know for GCC but you said you were using xlc, right? :-) > I have tested the build with both compilers gcc 4.2.2 and IBM XL C/C++ 9.0 on AIX 6.1. I am planing to release a rpm package of GUILE for AIX so I have to test the build with different compilers to decide which produces the best result :-)) > When compiling with GCC, you'd have to run `configure' with > `--disable-error-on-warning' to avoid this problem---I'm wondering > whether we should make it the default. > > This could avoid some warnings but ... with the warning on the code tends to be cleaner. >> and the setting for the extended stack "(debug-set! stack 80000)" >> should also be mention. >> > > Ah, so setting it fixed some problem? > > BTW, hopefully some of your problems are addressed by the newly-released > 1.8.4. We'll look into the others (e.g., `strftime') for the next > release. > > I will test the new 1.8.4 release and I will make detailed notes about all (still ?) needed changes for AIX 6.1. When I have finished this I will try this on AIX 5.3. I also can provide build notes for the AIX platform. > Thanks for your report! > > Ludovic. > > > Bye Rainer ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow / partial success 2008-02-19 21:53 ` Ludovic Courtès 2008-02-20 8:18 ` Rainer Tammer @ 2008-02-20 9:28 ` Rainer Tammer 2008-02-20 14:40 ` GUILE 1.8.4 on AIX 6.1 Rainer Tammer 2 siblings, 0 replies; 20+ messages in thread From: Rainer Tammer @ 2008-02-20 9:28 UTC (permalink / raw) To: Ludovic Courtès; +Cc: bug-guile [-- Attachment #1: Type: text/plain, Size: 1851 bytes --] Hello Ludovic, Ludovic Courtès wrote: > Hi Rainer, > [...] > > BTW, hopefully some of your problems are addressed by the newly-released > 1.8.4. We'll look into the others (e.g., `strftime') for the next > release. > > The 1.8.4 release looks good but I had to tweak two little things: 1. guile-readline ./guile-readline/config.guess -> this file was not refreshed ... ./guile-readline/config.sub -> this file was not refreshed ... I solved this by copying the two files from the ./guile-1.8.4 base dir to guile-libreadline 2. gc_os_dep.c *** gc_os_dep.c 2008-02-20 09:42:18.000000000 +0100 --- /daten/source/guile-1.8.4/libguile/gc_os_dep.c 2008-02-16 19:50:24.000000000 +0100 *************** *** 1159,1165 **** # endif # endif ! # if defined(IA64) && !defined(RS6000) # define MACH_TYPE "IA64" # define ALIGN_DOUBLE /* Requires 16 byte alignment for malloc */ --- 1159,1165 ---- # endif # endif ! # ifdef IA64 # define MACH_TYPE "IA64" # define ALIGN_DOUBLE /* Requires 16 byte alignment for malloc */ This avoids some redefinitions (MACH_TYPE, ..). I have used the following compiler settings with IBM XL C/C++: .guile (debug-set! stack 160000) configure.aix #!/usr/bin/bash export CONFIG_SHELL=/usr/bin/bash export CONFIG_ENV_ARGS=/usr/bin/bash export CC=cc_r export CXX=xlC_r export PATH=/opt/freeware/bin:$PATH export LDFLAGS="-Wl,-brtl -L/opt/freeware/lib" export CFLAGS="-D_USE_IRS -Dinline=__inline__ -qtune=auto -O2 -I/opt/freeware/include" ./configure --enable-dynamic-linking --prefix=/opt/freeware --enable-shared --disable-static gmake > make.log gmake check > check.log I have attached the check results to this post. > Thanks for your report! > > Ludovic. > > > Bye Rainer [-- Attachment #2: check-log-aix-1.8.4.zip --] [-- Type: application/zip, Size: 99981 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* GUILE 1.8.4 on AIX 6.1 2008-02-19 21:53 ` Ludovic Courtès 2008-02-20 8:18 ` Rainer Tammer 2008-02-20 9:28 ` Rainer Tammer @ 2008-02-20 14:40 ` Rainer Tammer 2 siblings, 0 replies; 20+ messages in thread From: Rainer Tammer @ 2008-02-20 14:40 UTC (permalink / raw) To: Ludovic Courtès; +Cc: bug-guile Hello, one small addition... The "-Dinline=__inline__" is no longer needed with IBM XL C/C++ 9.0. I forgot to delete this from the configure script. The -qarch=auto is needed. Without it the make check fails with a segfault. PASS: test-conversion ./test-use-srfi[22]: 323820 Segmentation fault(coredump) guile --use-srfi=1,10 fails to run The gcc 4.2.2 build is working too. The is the gcc 4.2.2 config for AIX 6.1: #!/usr/bin/bash export CONFIG_SHELL=/usr/bin/bash export CONFIG_ENV_ARGS=/usr/bin/bash export CC=gcc export CXX=g++ export PATH=/opt/freeware/bin:$PATH export LDFLAGS="-Wl,-brtl -L/opt/freeware/lib" export CFLAGS="-D_USE_IRS -O2 -I/opt/freeware/include" ./configure --enable-dynamic-linking \ --disable-error-on-warning \ --prefix=/opt/freeware --enable-shared --disable-static gmake Bye Rainer ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <87wsp83807.fsf@ossau.uklinux.net>]
[parent not found: <871w7fore8.fsf@gnu.org>]
[parent not found: <66e540fe0802140226k3cd96c46x286ac753bbb2b8b7@mail.gmail.com>]
[parent not found: <87ejbfg4pr.fsf@gnu.org>]
[parent not found: <66e540fe0802140339n2121e1d9y85fcc9f019d8be0f@mail.gmail.com>]
* Re: stack overflow [not found] ` <66e540fe0802140339n2121e1d9y85fcc9f019d8be0f@mail.gmail.com> @ 2008-02-25 21:52 ` Neil Jerram 2008-07-16 12:34 ` Ludovic Courtès 0 siblings, 1 reply; 20+ messages in thread From: Neil Jerram @ 2008-02-25 21:52 UTC (permalink / raw) To: Guile Bugs; +Cc: Ludovic Courtès, guile-devel [-- Attachment #1: Type: text/plain, Size: 924 bytes --] "Mikael Djurfeldt" <mikael@djurfeldt.com> writes: > I was thinking about inserting code which actually *measures* the size > of frames during startup. This could be done, for example, by > introducing a primitive which uses the internal stack measuring > functions. One could use this primitive to measure how much stack > space some code sample uses. By our knowledge of how many evaluator > stack frames this code sample uses, we can compute a reliable estimate > for the running instance of Guile. Below is a proposed patch to do this. When and if this gets deployed, the third arg to %calibrate-stack-depth would be removed, so that it doesn't generate any output. But for now it's interesting to see what results people on various OSs get. Could people who've being getting "Stack overflow" errors try this out, and also report (for interest) the ";; Stack calibration" line that they get? Thanks, Neil [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: new-stack-overflow.patch --] [-- Type: text/x-diff, Size: 5003 bytes --] Index: ice-9/boot-9.scm =================================================================== RCS file: /cvsroot/guile/guile/guile-core/ice-9/boot-9.scm,v retrieving revision 1.356.2.10 diff -u -r1.356.2.10 boot-9.scm --- ice-9/boot-9.scm 1 Sep 2007 17:11:00 -0000 1.356.2.10 +++ ice-9/boot-9.scm 25 Feb 2008 21:45:44 -0000 @@ -2289,6 +2289,14 @@ (print-options print-enable print-disable) (print-set!))) +;;; Stack depth calibration, for the 'stack debug option. + +(let ((x (%get-stack-depth))) + (let loop ((count 10)) + (if (zero? count) + (%calibrate-stack-depth x (%get-stack-depth) 'report) + (cons count (loop (- count 1)))))) + \f ;;; {Running Repls} Index: libguile/debug.h =================================================================== RCS file: /cvsroot/guile/guile/guile-core/libguile/debug.h,v retrieving revision 1.58 diff -u -r1.58 debug.h --- libguile/debug.h 4 Nov 2005 21:20:24 -0000 1.58 +++ libguile/debug.h 25 Feb 2008 21:45:44 -0000 @@ -75,6 +75,7 @@ && scm_is_true (SCM_EXIT_FRAME_HDLR);\ scm_debug_mode_p = SCM_DEVAL_P\ || scm_check_entry_p || scm_check_apply_p || scm_check_exit_p;\ + scm_calculate_stack_limit ();\ } while (0) /* {Evaluator} Index: libguile/stackchk.c =================================================================== RCS file: /cvsroot/guile/guile/guile-core/libguile/stackchk.c,v retrieving revision 1.28.2.1 diff -u -r1.28.2.1 stackchk.c --- libguile/stackchk.c 12 Feb 2006 13:42:51 -0000 1.28.2.1 +++ libguile/stackchk.c 25 Feb 2008 21:45:44 -0000 @@ -30,6 +30,13 @@ #ifdef STACK_CHECKING int scm_stack_checking_enabled_p; +int scm_stack_limit; + +/* As in y = mx + c. These numbers define a linear transformation + from the stack depth specified as the 'stack debug option, to the + actual max stack depth that we allow. */ +static double calibrated_m = 1; +static double calibrated_c = 0; SCM_SYMBOL (scm_stack_overflow_key, "stack-overflow"); @@ -44,6 +51,58 @@ SCM_BOOL_F); } +/* Stack depth calibration. */ + +SCM_DEFINE (scm_sys_get_stack_depth, "%get-stack-depth", 0, 0, 0, + (), + "Return current stack depth.") +#define FUNC_NAME s_scm_sys_get_stack_depth +{ + SCM_STACKITEM stack; + return scm_from_int (SCM_STACK_DEPTH (&stack)); +} +#undef FUNC_NAME + +SCM_DEFINE (scm_sys_calibrate_stack_depth, "%calibrate-stack-depth", 2, 1, 0, + (SCM d1, SCM d2, SCM debugp), + "Calibrate linear transformation for stack depth limit checking.") +#define FUNC_NAME s_scm_sys_calibrate_stack_depth +{ + /* x1 and x2 are the stack depth values that we get on a Debian + GNU/Linux ia32 system - which we take as our canonical system. + y1 and y2 are the values measured on the system where Guile is + currently running. */ + int x1 = 170, x2 = 690, y1, y2; + + SCM_VALIDATE_INT_COPY (1, d1, y1); + SCM_VALIDATE_INT_COPY (2, d2, y2); + + calibrated_m = ((double) (y2 - y1)) / (x2 - x1); + calibrated_c = ((double) y2) - calibrated_m * x2; + + if (scm_is_true (debugp) && !SCM_UNBNDP (debugp)) + { + scm_puts (";; Stack calibration: (x1 x2 y1 y2 m c) = ", + scm_current_output_port ()); + scm_write (scm_list_n (scm_from_int (x1), scm_from_int (x2), + d1, d2, + scm_from_double (calibrated_m), + scm_from_double (calibrated_c), + SCM_UNDEFINED), + SCM_UNDEFINED); + scm_newline (SCM_UNDEFINED); + } + + return SCM_UNSPECIFIED; +} +#undef FUNC_NAME + +void +scm_calculate_stack_limit () +{ + scm_stack_limit = (int) (calibrated_m * SCM_STACK_LIMIT + calibrated_c); +} + #endif long Index: libguile/stackchk.h =================================================================== RCS file: /cvsroot/guile/guile/guile-core/libguile/stackchk.h,v retrieving revision 1.20.2.1 diff -u -r1.20.2.1 stackchk.h --- libguile/stackchk.h 12 Feb 2006 13:42:51 -0000 1.20.2.1 +++ libguile/stackchk.h 25 Feb 2008 21:45:44 -0000 @@ -35,14 +35,11 @@ #ifdef STACK_CHECKING # if SCM_STACK_GROWS_UP -# define SCM_STACK_OVERFLOW_P(s)\ - (SCM_STACK_PTR (s) \ - > (SCM_I_CURRENT_THREAD->base + SCM_STACK_LIMIT)) +# define SCM_STACK_DEPTH(s) (SCM_STACK_PTR (s) - SCM_I_CURRENT_THREAD->base) # else -# define SCM_STACK_OVERFLOW_P(s)\ - (SCM_STACK_PTR (s) \ - < (SCM_I_CURRENT_THREAD->base - SCM_STACK_LIMIT)) +# define SCM_STACK_DEPTH(s) (SCM_I_CURRENT_THREAD->base - SCM_STACK_PTR (s)) # endif +# define SCM_STACK_OVERFLOW_P(s) (SCM_STACK_DEPTH (s) > scm_stack_limit) # define SCM_CHECK_STACK\ {\ SCM_STACKITEM stack;\ @@ -54,10 +51,14 @@ #endif /* STACK_CHECKING */ SCM_API int scm_stack_checking_enabled_p; +SCM_API int scm_stack_limit; \f SCM_API void scm_report_stack_overflow (void); +SCM_API SCM scm_sys_get_stack_depth (void); +SCM_API SCM scm_sys_calibrate_stack_depth (SCM d1, SCM d2, SCM debugp); +SCM_API void scm_calculate_stack_limit (void); SCM_API long scm_stack_size (SCM_STACKITEM *start); SCM_API void scm_stack_report (void); SCM_API void scm_init_stackchk (void); ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: stack overflow 2008-02-25 21:52 ` stack overflow Neil Jerram @ 2008-07-16 12:34 ` Ludovic Courtès 0 siblings, 0 replies; 20+ messages in thread From: Ludovic Courtès @ 2008-07-16 12:34 UTC (permalink / raw) To: guile-devel; +Cc: bug-guile Hi, Neil Jerram <neil@ossau.uklinux.net> writes: > Below is a proposed patch to do this. When and if this gets deployed, > the third arg to %calibrate-stack-depth would be removed, so that it > doesn't generate any output. But for now it's interesting to see what > results people on various OSs get. > > Could people who've being getting "Stack overflow" errors try this > out, and also report (for interest) the ";; Stack calibration" line > that they get? I think time has come to integrate this patch as it's proved to fix things for various people. I tried it on several platforms, always compiling with the default flags, i.e., `-O2'. Here's what I got[*]: * i686-pc-linux-gnu, GCC 4.2.4 ;; Stack calibration: (x1 x2 y1 y2 m c) = (170 690 170 690 1.0 0.0) * x86_64-unknown-linux-gnu, GCC 4.1.2 ;; Stack calibration: (x1 x2 y1 y2 m c) = (170 690 41 181 0.269230769230769 -4.76923076923077) * sparc64-unknown-linux-gnu, GCC 4.1.3 ;; Stack calibration: (x1 x2 y1 y2 m c) = (170 690 178 498 0.615384615384615 73.3846153846154) * hppa2.0w-hp-hpux11.11, HP92453-01 B.11.X.36086-36089-36092.GP HP C Compiler (cc) ;; Stack calibration: (x1 x2 y1 y2 m c) = (170 690 352 1472 2.15384615384615 -14.1538461538462) * ia64-unknown-linux-gnu (itanium2), GCC 4.1.2 ;; Stack calibration: (x1 x2 y1 y2 m c) = (170 690 10 50 0.0769230769230769 -3.07692307692308) * i386-unknown-freebsd6.2, GCC 3.4.6 ;; Stack calibration: (x1 x2 y1 y2 m c) = (170 690 114 394 0.538461538461538 22.4615384615385) `pre-inst-guile' reaches the REPL in all cases, except on IA64 where it stack-overflows (further investigation needed). I'll comment the patch itself later on. Thanks, Ludovic. [*] I really need to find a way to automate this. If anyone knows of existing tools that would facilitate it (connecting to each machine, running `configure', `make', etc.), please let me know. Otherwise, I guess it wouldn't be too hard to write a script to do that. ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2008-07-16 12:34 UTC | newest] Thread overview: 20+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-02-13 8:22 stack overflow Rainer Tammer 2008-02-13 9:05 ` Ludovic Courtès 2008-02-13 9:15 ` Ludovic Courtès 2008-02-13 11:46 ` Rainer Tammer 2008-02-13 12:49 ` Ludovic Courtès 2008-02-14 7:36 ` stack overflow / partial success Rainer Tammer 2008-02-14 8:38 ` Ludovic Courtès 2008-02-18 6:11 ` Rainer Tammer 2008-02-18 8:33 ` Ludovic Courtès 2008-02-18 9:56 ` Rainer Tammer 2008-02-18 10:37 ` Ludovic Courtès 2008-02-18 14:00 ` Rainer Tammer 2008-02-18 14:11 ` Ludovic Courtès 2008-02-19 7:15 ` Rainer Tammer 2008-02-19 21:53 ` Ludovic Courtès 2008-02-20 8:18 ` Rainer Tammer 2008-02-20 9:28 ` Rainer Tammer 2008-02-20 14:40 ` GUILE 1.8.4 on AIX 6.1 Rainer Tammer [not found] ` <87wsp83807.fsf@ossau.uklinux.net> [not found] ` <871w7fore8.fsf@gnu.org> [not found] ` <66e540fe0802140226k3cd96c46x286ac753bbb2b8b7@mail.gmail.com> [not found] ` <87ejbfg4pr.fsf@gnu.org> [not found] ` <66e540fe0802140339n2121e1d9y85fcc9f019d8be0f@mail.gmail.com> 2008-02-25 21:52 ` stack overflow Neil Jerram 2008-07-16 12:34 ` Ludovic Courtès
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).