unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: szgyg <szgyg@ludens.elte.hu>
To: guile-devel <guile-devel@gnu.org>
Subject: Re: Guile HEAD on Cygwin-1.7
Date: Sat, 27 Jun 2009 15:36:34 +0200	[thread overview]
Message-ID: <4A462061.30101@ludens.elte.hu> (raw)
In-Reply-To: <m3ws776u0h.fsf@pobox.com>

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	other threads:[~2009-06-27 13:36 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-18  7:33 Guile HEAD on Cygwin-1.7 szgyg
2009-06-20 11:10 ` Andy Wingo
2009-06-27 13:36   ` szgyg [this message]
2009-06-28 21:09     ` Andy Wingo
2009-07-07 15:53       ` szgyg
2009-07-23 20:59         ` Andy Wingo
2009-07-25 16:14           ` szgyg
2009-07-26 13:12             ` Merging libguile-i18n with libguile Ludovic Courtès
2009-07-26 19:25               ` Andy Wingo
2009-07-27 22:56               ` Neil Jerram

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A462061.30101@ludens.elte.hu \
    --to=szgyg@ludens.elte.hu \
    --cc=guile-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).