Package: guile-2.0 / 2.0.13+1-5.1


Package Version Patches format
guile-2.0 2.0.13+1-5.1 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
0001 Mark mutex with owner not retained threads test as u.patch | (download)

test-suite/tests/threads.test | 6 4 + 2 - 0 !
1 file changed, 4 insertions(+), 2 deletions(-)

 mark "mutex with owner not retained" threads test as unresolved.

As per discussion with upstream, mark this test as unresolved since it
may produce false negatives, depending on the behavior/timing of the
garbage collector.

0002 Look for guile procedures.txt in pkglibdir.patch | (download)

module/ice-9/documentation.scm | 5 4 + 1 - 0 !
1 file changed, 4 insertions(+), 1 deletion(-)

 look for guile-procedures.txt in pkglibdir

Look for guile-procedures.txt in %guile-build-info's pkglibdir first
since the content is not architecture independent.


0003 tests Avoid race condition in REPL server test.patch | (download)

test-suite/tests/00-repl-server.test | 10 8 + 2 - 0 !
1 file changed, 8 insertions(+), 2 deletions(-)

 tests: avoid race condition in repl server test.

Fixes <>.
Reported by Rob Browning <>.

* test-suite/tests/00-repl-server.test ("simple expression"): Add call
to 'select' before 'display'.

0004 ia64 Fix crash in thread context switch.patch | (download)

libguile/threads.c | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 ia64: fix crash in thread context switch.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fixes <> and <>.

Backtrace looks like that:

  Program terminated with signal SIGSEGV, Segmentation fault.
  #0  0x200000000014a5c0 in scm_ia64_longjmp (JB=0x6000000000817020, VAL=1) at continuations.c:372
  372                   t->pending_rbs_continuation->backing_store,
  [Current thread is 1 (Thread 0x2000000000049340 (LWP 8190))]
  (gdb) bt
  #0  0x200000000014a5c0 in scm_ia64_longjmp (JB=0x6000000000817020, VAL=1) at continuations.c:372
  #1  0x2000000000148e00 in scm_c_abort (vm=0x60000000000edea0, tag=0x6000000000795ba0, n=0, argv=0x60000fffff7f0ce0, cookie=-1) at control.c:239
  #2  0x2000000000149070 in scm_at_abort (tag=0x6000000000795ba0, args=0x304) at control.c:258
  (gdb) print t
  $2 = (scm_i_thread *) 0x6000000000068000
  (gdb) print t->pending_rbs_continuation
  $3 = (scm_t_contregs *) 0xffeb

The problem here is the value of 't->pending_rbs_continuation' pointer.
It's supposed to poin to a register stack pointer or be NULL if not yet
backed up.

The problem is it is never initialized to NULL at creation time and
contained garbage on stack. Sometimes people are lucky and have zeros
on stack and guile works. But sometimes there is something and guile

The fix is trivial: initialize 'pending_rbs_continuation = NULL'
at thread registration time (the same way other threads are registered).

Reported-by: Matt Turner

* libguile/threads.c (guilify_self_1): Initialize pending_rbs_continuation
to avoid crash on ia64.

Signed-off-by: Sergei Trofimovich <>
Signed-off-by: Ludovic Court├Ęs <>

0005 fix french locale test.patch | (download)

test-suite/tests/i18n.test | 12 6 + 6 - 0 !
1 file changed, 6 insertions(+), 6 deletions(-)

 fix french locale test
 In i18n tests, some test fail because of non-breaking spaces not being
 matched. The tests convert values to strings in fr_FR.iso88591 which insert a
 "locale-thousands-separator" which, in this locale, is a non-breaking space.
 This string is compared to the hardcoded expected result which contains a
 standard space (UTF8 hex. 20). As the file is UTF8, this patch replaces the bad
 space with the UTF8 non-breaking space equivalent (hex. C2 A0).