guile-devel
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]