2009/11/17 Ludovic Courtès <l...@gnu.org>: > We are pleased to announce GNU Guile release 1.9.5.
Now I'm getting a crash. guile-1.9..5 built with gc-7.1, and running three threads: one thread is sleeping another thread is waiting on select() third crashes with following stack trace: Program received signal SIGPWR, Power fail/restart. #0 0xf7fc6425 in __kernel_vsyscall () #1 0xf7f911c8 in pthread_kill () from /lib/tls/i686/cmov/libpthread.so.0 #2 0xf74652b3 in GC_suspend_all () at pthread_stop_world.c:355 #3 0xf7465312 in GC_stop_world () at pthread_stop_world.c:395 #4 0xf7454b9e in GC_stopped_mark (stop_func=0xf7453fc0 <GC_never_stop_func>) at alloc.c:474 #5 0xf7454e89 in GC_try_to_collect_inner (stop_func=0xf7453fc0 <GC_never_stop_func>) at alloc.c:362 #6 0xf74550ec in GC_collect_or_expand (needed_blocks=1, ignore_off_page=0) at alloc.c:1017 #7 0xf74556d9 in GC_allocobj (gran=2, kind=1) at alloc.c:1064 #8 0xf745a37c in GC_generic_malloc_inner (lb=16, k=1) at malloc.c:119 #9 0xf745a416 in GC_generic_malloc (lb=16, k=1) at malloc.c:159 #10 0xf745a6bd in GC_core_malloc (lb=16) at malloc.c:286 #11 0xf7463a49 in GC_malloc (bytes=16) at thread_local_alloc.c:149 #12 0xf7e2780c in scm_i_make_string (len=9, charsp=0xf550b1b4) at ../libguile/inline.h:161 #13 0xf7e27ca2 in scm_from_stringn (str=0xf550b227 "Kvint.xml", len=9, encoding=0x0, handler=SCM_FAILED_CONVERSION_QUESTION_MARK) at strings.c:1402 #14 0xf7e27e35 in scm_from_locale_stringn (str=0xf550b227 "Kvint.xml", len=9) at strings.c:1487 #15 0xf7e4d9c3 in scm_readdir (port=0x9ecaaa0) at filesys.c:919 #16 0xf7dc3ff7 in deval (x=0x9ec7a00, env=0xa330d60) at eval.i.c:1087 #17 0xf7dc3ec7 in deval (x=0x9ec9ba0, env=0xa330d60) at eval.i.c:608 #18 0xf7dc813a in scm_primitive_eval_x (exp=0x9ecaad0) at eval.c:4010 #19 0xf7e29d88 in inner_eval_string (data=0x9ec99a0) at strports.c:533 #20 0xf7dc9d2e in scm_c_with_fluid (fluid=0x9d4a360, value=0x9d925f0, cproc=0xf7e29d60 <inner_eval_string>, cdata=0x9ec99a0) at fluids.c:382 #21 0xf7de7505 in scm_c_call_with_current_module (module=0x9d925f0, func=0xf7e29d60 <inner_eval_string>, data=0x9ec99a0) at modules.c:114 #22 0xf7e2a179 in scm_eval_string_in_module (string=0x9e2e4c0, module=0x9d925f0) at strports.c:560 #23 0xf7e2a1e5 in scm_eval_string (string=0x9e2e4c0) at strports.c:568 #24 0xf7e2a215 in scm_c_eval_string (expr=0xa331a44 "(suck-in-filenames (opendir input-filedir) '())\n") FWIW, the above is executing the following: (define (suck-in-filenames port lst) (let ((one-file (readdir port))) (if (eof-object? one-file) lst (suck-in-filenames port (cons one-file lst) ) ) ) ) (suck-in-filenames (opendir input-filedir) '()) here, input-filedir is a directory has about 14K filenames in it, many of the filenames contain UTF-8 chars. --linas