Subject: bug#72407: Guile 3.0.10 fails to run tests

From: Ludovic Courtès <[email-masked]>
Date: Sun, 01 Sep 2024 16:34:59 +0200

Hi,

Tommi Höynälänmaa <[email-masked]> skribis:

> Running tests for package theme-d
> (http://deb.debian.org/debian/pool/main/t/theme-d/theme-d_5.1.2.orig.tar.xz)
> fails with guile 3.0.10 but works with 3.0.8. See also
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1074756.

The ‘theme-d’ build log therein shows this:

> In language/tree-il/peval.scm:
>   1558:45  6 (loop _ _ _ value)
> In srfi/srfi-1.scm:
>    586:29  5 (map1 (#<tree-il (const 0)> #<tree-il (const 2)> #<tree-il (primcall list (call (toplevel make-tvar-object) (const 0)) (call (toplevel make-tvar-object) (const 1)))> #<tree-il (call (lambda () (lambda-case (((&&&%result~2389 &&&%handler~2390) #f #f () () (_u_2_3_&&&%result~2389 _u_2_4_&&&%handler~2390)) (call (toplevel _i_make-procedure-type) (call (toplevel _i_get-pair-class-general) (primcall list (toplevel _b_<object>) (call (toplevel _i_get-pair-class-general) (primcall li…>))
>    586:29  4 (map1 (#<tree-il (const 2)> #<tree-il (primcall list (call (toplevel make-tvar-object) (const 0)) (call (toplevel make-tvar-object) (const 1)))> #<tree-il (call (lambda () (lambda-case (((&&&%result~2389 &&&%handler~2390) #f #f () () (_u_2_3_&&&%result~2389 _u_2_4_&&&%handler~2390)) (call (toplevel _i_make-procedure-type) (call (toplevel _i_get-pair-class-general) (primcall list (toplevel _b_<object>) (call (toplevel _i_get-pair-class-general) (primcall list (call (toplevel _i…>))
>    586:29  3 (map1 (#<tree-il (primcall list (call (toplevel make-tvar-object) (const 0)) (call (toplevel make-tvar-object) (const 1)))> #<tree-il (call (lambda () (lambda-case (((&&&%result~2389 &&&%handler~2390) #f #f () () (_u_2_3_&&&%result~2389 _u_2_4_&&&%handler~2390)) (call (toplevel _i_make-procedure-type) (call (toplevel _i_get-pair-class-general) (primcall list (toplevel _b_<object>) (call (toplevel _i_get-pair-class-general) (primcall list (call (toplevel _i_make-procedure-type)…>))
>    586:17  2 (map1 (#<tree-il (call (lambda () (lambda-case (((&&&%result~2389 &&&%handler~2390) #f #f () () (_u_2_3_&&&%result~2389 _u_2_4_&&&%handler~2390)) (call (toplevel _i_make-procedure-type) (call (toplevel _i_get-pair-class-general) (primcall list (toplevel _b_<object>) (call (toplevel _i_get-pair-class-general) (primcall list (call (toplevel _i_make-procedure-type) (toplevel _b_<null>) (lexical &&&%result~2389 _u_2_3_&&&%result~2389) (const #t) (const #f) (const #f) (const #f) (co…>))
> In language/tree-il/peval.scm:
>   1816:33  1 (loop _ _ _ _)
> In ice-9/boot-9.scm:
>   1676:22  0 (raise-exception _ #:continuable? _)
> 
> ice-9/boot-9.scm:1676:22: In procedure raise-exception:
> Throw to key `match-error' with args `("match" "no matching pattern" ())'.
> Final compilation of the program failed.
> ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
> ;;;       or pass the --no-auto-compile argument to disable.
> ;;; compiling /<<PKGBUILDDIR>>/test-suite/../theme-d/translator/theme-d-link.scm
> ;;; compiled /<<PKGBUILDDIR>>/debian/.debhelper/generated/_source/home/.cache/guile/ccache/3.0-LE-8-4.7/<<PKGBUILDDIR>>/theme-d/translator/theme-d-link.scm.go
> make[4]: *** [Makefile:858: package-tests/test1.go] Error 1
> rm package-tests/test1.tcp
> make[4]: Leaving directory '/<<PKGBUILDDIR>>/test-suite'

Looks like a compiler bug.

I tried to reproduce it but building from
<http://deb.debian.org/debian/pool/main/t/theme-d/theme-d_5.1.2.orig.tar.xz>
fails much earlier for me:

--8<---------------cut here---------------start------------->8---
make[1]: Entering directory '/tmp/theme-d-5.1.2/libthemedsupport'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\"Theme-D\" -DPACKAGE_TARNAME=\"theme-d\" -DPACKAGE_VERSION=\"5.1.2\" -DPACKAGE_STRING=\"Theme-D\ 5.1.2\" -DPACKAGE_BUGREPORT=\"tommi.hoynalanmaa\ at\ iki.fi\" -DPACKAGE_URL=\"http://www.iki.fi/tohoyn/theme-d/\" -DPACKAGE=\"theme-d\" -DVERSION=\"5.1.2\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.  -I/gnu/store/rg8yrfvfdnp5n2m2vb5ranhdy653aj4y-guile-3.0.99-git/include/guile/3.0 -DSTANDARD_MATH=1 -DPOSIX_MATH=1   -g -O2 -MT libthemedsupport_la-theme_d_support.lo -MD -MP -MF .deps/libthemedsupport_la-theme_d_support.Tpo -c -o libthemedsupport_la-theme_d_support.lo `test -f 'theme_d_support.c' || echo './'`theme_d_support.c
libtool: compile:  gcc -DPACKAGE_NAME=\"Theme-D\" -DPACKAGE_TARNAME=\"theme-d\" -DPACKAGE_VERSION=\"5.1.2\" "-DPACKAGE_STRING=\"Theme-D 5.1.2\"" "-DPACKAGE_BUGREPORT=\"tommi.hoynalanmaa at iki.fi\"" -DPACKAGE_URL=\"http://www.iki.fi/tohoyn/theme-d/\" -DPACKAGE=\"theme-d\" -DVERSION=\"5.1.2\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -I/gnu/store/rg8yrfvfdnp5n2m2vb5ranhdy653aj4y-guile-3.0.99-git/include/guile/3.0 -DSTANDARD_MATH=1 -DPOSIX_MATH=1 -g -O2 -MT libthemedsupport_la-theme_d_support.lo -MD -MP -MF .deps/libthemedsupport_la-theme_d_support.Tpo -c theme_d_support.c  -fPIC -DPIC -o .libs/libthemedsupport_la-theme_d_support.o
theme_d_support.c: In function 'finalize_bignum':
theme_d_support.c:46:3: warning: implicit declaration of function 'mpz_clear' [-Wimplicit-function-declaration]
   46 |   mpz_clear (SCM_I_BIG_MPZ (bignum));
      |   ^~~~~~~~~
theme_d_support.c:46:14: warning: implicit declaration of function 'SCM_I_BIG_MPZ'; did you mean 'SCM_I_NINUMP'? [-Wimplicit-function-declaration]
   46 |   mpz_clear (SCM_I_BIG_MPZ (bignum));
      |              ^~~~~~~~~~~~~
      |              SCM_I_NINUMP
theme_d_support.c: In function 'make_bignum':
theme_d_support.c:56:52: error: 'mpz_t' undeclared (first use in this function)
   56 |   p = scm_gc_malloc (sizeof (scm_t_bits) + sizeof (mpz_t),
      |                                                    ^~~~~
theme_d_support.c:56:52: note: each undeclared identifier is reported only once for each function it appears in
theme_d_support.c:63:3: warning: 'scm_install_gmp_memory_functions' is deprecated [-Wdeprecated-declarations]
   63 |   if (!scm_install_gmp_memory_functions)
      |   ^~
In file included from /gnu/store/rg8yrfvfdnp5n2m2vb5ranhdy653aj4y-guile-3.0.99-git/include/guile/3.0/libguile.h:128,
                 from theme_d_support.c:2:
/gnu/store/rg8yrfvfdnp5n2m2vb5ranhdy653aj4y-guile-3.0.99-git/include/guile/3.0/libguile/deprecated.h:164:20: note: declared here
  164 | SCM_DEPRECATED int scm_install_gmp_memory_functions;
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
theme_d_support.c: In function '_scm_i_normbig':
theme_d_support.c:74:7: warning: implicit declaration of function 'mpz_fits_slong_p' [-Wimplicit-function-declaration]
   74 |   if (mpz_fits_slong_p (SCM_I_BIG_MPZ (b)))
      |       ^~~~~~~~~~~~~~~~
theme_d_support.c:76:24: warning: implicit declaration of function 'mpz_get_si' [-Wimplicit-function-declaration]
   76 |       scm_t_inum val = mpz_get_si (SCM_I_BIG_MPZ (b));
      |                        ^~~~~~~~~~
theme_d_support.c: In function '_scm_i_dbl2big':
theme_d_support.c:88:3: warning: implicit declaration of function 'mpz_init_set_d'; did you mean 'scm_init_net_db'? [-Wimplicit-function-declaration]
   88 |   mpz_init_set_d (SCM_I_BIG_MPZ (z), d);
      |   ^~~~~~~~~~~~~~
      |   scm_init_net_db
make[1]: *** [Makefile:482: libthemedsupport_la-theme_d_support.lo] Error 1
--8<---------------cut here---------------end--------------->8---

This is with Guile ‘main’ (commit
d0790d766bedf08fb65231eff53f6c8044eb94f1), but nothing has changed in
this respect since 3.0.10.

Are you applying additional patches?

Ludo’.