[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Guile HEAD on Cygwin-1.7
From: |
szgyg |
Subject: |
Re: Guile HEAD on Cygwin-1.7 |
Date: |
Sat, 27 Jun 2009 15:36:34 +0200 |
User-agent: |
Thunderbird 2.0.0.22 (Windows/20090605) |
Andy Wingo wrote:
On Thu 18 Jun 2009 09:33, szgyg writes:
** wrong path when compiling psyntax-pp.scm
First time only
Making all in module
make[2]: Entering directory `/home/szgyg/src/GIT/guile/=build/module'
/home/szgyg/src/GIT/guile/=build/meta/guile --no-autocompile -s
../../module/ice-9/compile-psyntax.scm \
../../module/ice-9/psyntax.scm
../../module/ice-9/psyntax-pp.scm
GUILE_AUTO_COMPILE=0 ../meta/uninstalled-env guile-tools compile -o
"ice-9/psyntax-pp.go" "ice-9/psyntax-pp.scm"
ERROR: In procedure open-file:
ERROR: No such file or directory: "ice-9/psyntax-pp.scm"
make[2]: *** [ice-9/psyntax-pp.go] Error 1
Subsequent makes use the correct path:
Making all in module
make[2]: Entering directory `/home/szgyg/src/GIT/guile/=build/module'
GUILE_AUTO_COMPILE=0 ../meta/uninstalled-env guile-tools compile -o
"ice-9/psyntax-pp.go" "../../module/ice-9/psyntax-pp.scm"
wrote `ice-9/psyntax-pp.go'
I wonder why it's regenerating psyntax-pp.scm. It shouldn't, psyntax.scm
should be newer than psyntax-pp.scm.
Git doesn't preserve timestamps, so either file can be the newer after a
fresh checkout.
make[1]: Entering directory `/home/szgyg/src/GIT/guile/=build'
make check-TESTS
make[2]: Entering directory `/home/szgyg/src/GIT/guile/=build'
Testing /home/szgyg/src/GIT/guile/=build/meta/guile ...
with GUILE_LOAD_PATH=/home/szgyg/src/GIT/guile/test-suite
;;; note: autocompilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-autocompile argument to disable.
;;; compiling /home/szgyg/src/GIT/guile/test-suite/lib.scm
;;; compiled
/home/szgyg/.guile-ccache/1.9//home/szgyg/src/GIT/guile/test-suite/lib.scm.go
ERROR: Stack overflow
Running alist.test
[...]
What revision of the git repo was this?
Sorry, the fact that the testing framework catches other errors, but not
stack overflow, tricked me. The stack overflow was in elisp.test.
--- T.scm ---
(define *old-stack-level* (and=> (memq 'stack (debug-options)) cadr))
(debug-set! stack (* 2 *old-stack-level*))
(display #t)
-------------
$ guile -q --debug -s T.scm
Backtrace:
In ../../module/ice-9/boot-9.scm:
874: 0* [#<program 100d7500 ()>]
In unknown file:
?: 1* [primitive-load "T.scm"]
In ../../module/ice-9/psyntax-pp.scm:
8216: 2* [# #]
ERROR: Stack overflow
in
commit e33779e3b84b4822b4d51562d7c4f1e65408151d
Date: Thu Jun 25 23:24:57 2009 +0100
Revert "* FAQ: New file."
The stack can grow a little, but not so much. Works with the factor 1.3,
but not with 1.4 (*old-stack-level* is 416784).
make[1]: Entering directory `/home/szgyg/src/GIT/guile/=build'
make check-TESTS
make[2]: Entering directory `/home/szgyg/src/GIT/guile/=build'
Testing /home/szgyg/src/GIT/guile/=build/meta/guile ...
with GUILE_LOAD_PATH=/home/szgyg/src/GIT/guile/test-suite
/bin/sh: line 5: 3944 Segmentation fault (core dumped) ${dir}$tst
FAIL: check-guile
To me that looks like a segfault in your shell.
Program received signal SIGSEGV, Segmentation fault.
[Switching to thread 3544.0xc1c]
0x6aac70d9 in scm_read_delimited_x (delims=0x100e6400, str=0x102f90a0,
gobble=0x104, port=0x102bd398, start=0x204, end=0x204)
at ../../libguile/inline.h:307
307 if (scm_fill_input (port) == EOF)
(gdb) set language scheme
Warning: the current language does not match this frame.
(gdb) frame
#0 0x6aac70d9 in scm_read_delimited_x (delims="\x0c",
str="??\x1da??\x1daP},\x10p?+\x10??5\x10?\x00\x00\x00\x80?&\x101?\x1daEy,\x1
0\x88y,\x10AA3\x10\x81\x00\x00\x00??\x1da??\x1daAx,\x10p?+\x10h3\x15\x10i\x00\x0
0\x00c?:\x10\x8c?\x1da?w,\x10\x90w,\x10\x00\x00\x00\x00Q\x00\x00\x00h/\x15\x10",
gobble=#t,
port=#<input: /usr/local/share/guile/1.9/guile-procedures.txt 70>,
start=#<undefined>, end=#<undefined>) at ../../libguile/inline.h:307
307 if (scm_fill_input (port) == EOF)
(gdb) set language c
(gdb) p *((scm_t_port *)((SCM *)0x102bd398)[1])
$1 = {port = 0x102bd398, revealed = 0, stream = 271938816,
file_name = 0x100e64e0, line_number = 0, column_number = 0,
read_buf = 0x103c6300 "This is guile-procedures.txt, produced by
makeinfo vers
ion 4.13 from\nguile-procedures.texi.\n\n\facons\n\n -- Scheme
Procedure: acons
key value alist\n Add a new key-value pair to ALIST. A new pair is
"...,
read_pos = 0x103c6300 "This is guile-procedures.txt, produced by
makeinfo vers
ion 4.13 from\nguile-procedures.texi.\n\n\facons\n\n -- Scheme
Procedure: acons
key value alist\n Add a new key-value pair to ALIST. A new pair is
"...,
read_end = 0x103d6300 "\004\004", read_buf_size = 65536,
saved_read_buf = 0x0, saved_read_pos = 0x0, saved_read_end = 0x0,
saved_read_buf_size = 0, write_buf = 0x10364ca0 "",
write_pos = 0x10364ca0 "", write_end = 0x10364ca1 "", write_buf_size = 1,
shortbuf = 0 '\0', rw_random = 1, rw_active = SCM_PORT_READ,
putback_buf = 0x0, putback_buf_size = 0}
(gdb) p ((((scm_t_bits)(((SCM*)0x102bd398)[0]))>>8)&0x0ff)
$3 = 0
(gdb) p scm_ptobs[((((scm_t_bits)(((SCM*)0x102bd398)[0]))>>8)&0x0ff)]
$5 = {name = 0x6ab1d120 "file", mark = 0, free = 0x6aa9e6c1 <fport_free>,
print = 0x6aa9f181 <fport_print>, equalp = 0,
close = 0x6aa9e5dc <fport_close>, write = 0x6aa9e804 <fport_write>,
flush = 0x6aa9e48e <fport_flush>, end_input = 0x6aa9e3c2
<fport_end_input>,
fill_input = 0x6aa9e928 <fport_fill_input>,
input_waiting = 0x6aa9e2dc <fport_input_waiting>,
seek = 0x6aa9e6d6 <fport_seek_or_seek64>,
truncate = 0x6aa9e38a <fport_truncate>}
I can trigger this through another path, too:
Program received signal SIGSEGV, Segmentation fault.
[Switching to thread 2728.0x708]
0x6aaca212 in flush_ws (port=0x10137360, eoferr=0x0)
at ../../libguile/inline.h:307
307 if (scm_fill_input (port) == EOF)
I don't see any obvious error. Any hint?
Thanks for the report,
Thanks to take care of the report,
s