Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

guile: Update to 3.0.10 #5068

Merged
merged 1 commit into from
Dec 16, 2024
Merged

guile: Update to 3.0.10 #5068

merged 1 commit into from
Dec 16, 2024

Conversation

lazka
Copy link
Member

@lazka lazka commented Dec 15, 2024

No description provided.

@lazka lazka merged commit fc4d1cc into msys2:master Dec 16, 2024
2 checks passed
@jeremyd2019
Copy link
Member

This fails to build for i686 msys2, in BOOTSTRAP(stage1):

Backtrace:
In ice-9/boot-9.scm:
  1755:12 19 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In system/base/compile.scm:
    69:11 18 (_)
   190:11 17 (_ #<closed: file ffd72ea8>)
    309:6 16 (read-and-compile #<closed: file ffd72ee0> #:from _ #:to _ #:env _ #:optimization-level _ #:warning-level _ #:opts _)
   352:28 15 (compile #<tree-il (seq (let (m) (m-182b3cf1-2) ((call (@@ (guile) define-module*) (const (language cps guile-vm reify-primitives)) (const #:filename) (const "language/cps/guile-vm/reify-primitives.scm") (const #:imports) (const (((ice-9 match)) ((language tree-il primitives) #:select ((primitive-module . tree-il:primitive-module))) ((language cps)) ((language cps utils)) ((language cps with-cps)) ((language cps intmap)) ((language bytecode)) ((system base target)) ((system bas?> ?)
   265:44 14 (_ #<tree-il (seq (let (m) (m-182b3cf1-2) ((call (@@ (guile) define-module*) (const (language cps guile-vm reify-primitives)) (const #:filename) (const "language/cps/guile-vm/reify-primitives.scm") (const #:imports) (const (((ice-9 match)) ((language tree-il primitives) #:select ((primitive-module . tree-il:primitive-module))) ((language cps)) ((language cps utils)) ((language cps with-cps)) ((language cps intmap)) ((language bytecode)) ((system base target)) ((system base type?> ?)
   261:33 13 (_ #<intmap 0-11706> #<directory (language cps guile-vm reify-primitives) ff1b2640>)
In language/cps/optimize.scm:
    136:2 12 (_ _ #<directory (language cps guile-vm reify-primitives) ff1b2640>)
    111:3 11 (optimize-first-order-cps _ _)
In language/cps/switch.scm:
    414:6 10 (optimize-branch-chains _)
In language/cps/intmap.scm:
    519:6  9 (visit-branch #(#(#(#<intset 0-273> (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) #f) (absent) (absent) (absent) (absent) (absent) (absent) (absent) #((absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) # ?) ?) ?) ?)
    519:6  8 (visit-branch #((absent) (absent) #((absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) #<intset 3160-3259> (absent) (absent) (absent) (absent) (absent) (absent) (absent) #f) (absent) (absent) #((absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) # ?) ?) ?)
    519:6  7 (visit-branch #((absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) #<intset 3689-7729,7913-8003> (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) (absent) #f) _ 3680 _)
In language/cps/switch.scm:
    99:36  6 (fold-branch-chains #<intmap 0-8003> _ _ #<procedure optimize-branch-chain (var exit tests cps)> _)
    343:8  5 (optimize-branch-chain 3346 7427 (6771 6772 6773 6901 7029 7157 7285) _)
In ice-9/boot-9.scm:
   260:13  4 (for-each #<procedure fd7f2708 at language/cps/switch.scm:343:18 (expr)> _)
In language/cps/switch.scm:
   340:32  3 (_ (u64-imm-< . 7428))
In language/cps/guile-vm.scm:
    89:31  2 (target-symbol-hash _)
    41:18  1 (jenkins-lookup3-hashword2 "u64-imm-<")
In ice-9/boot-9.scm:
  1676:22  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1676:22: In procedure raise-exception:
Value out of range 0 to< 18446744073709551615: -505802029
make[2]: *** [Makefile:2515: language/cps/guile-vm/reify-primitives.go] Error 1

Of course I have no idea what any of that is talking about 😁

@h-c-mueller
Copy link
Contributor

I assume this is 32 bit related.

For 32 bit big endian there is a discussion here
https://lists.gnu.org/archive/html/guile-devel/2024-09/msg00030.html
referring to patch
https://salsa.debian.org/rlb/deb-guile/-/blob/deb/guile-3.0/d/sid/master/debian/patches/0007-Fix-32-bit-big-endian-builds-via-Oresolve-primitives.patch?ref_type=heads

But msys i686 is little endian. Maybe adjusting bootstrap/Makefile.am and stage0/Makefile.am as shown in the patch will help. If not, you may contact upstream guile. Otherwise I have no further ideas.

@jeremyd2019
Copy link
Member

I just noticed this:

hash.c: In function 'narrow_string_hash':
hash.c:115:34: warning: left shift count >= width of type [-Wshift-count-overflow]
  115 |       ret = (((unsigned long) c) << 32) | b;                            \
      |                                  ^~
hash.c:125:3: note: in expansion of macro 'JENKINS_LOOKUP3_HASHWORD2'
  125 |   JENKINS_LOOKUP3_HASHWORD2 (str, len, ret);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: In function 'wide_string_hash':
hash.c:115:34: warning: left shift count >= width of type [-Wshift-count-overflow]
  115 |       ret = (((unsigned long) c) << 32) | b;                            \
      |                                  ^~
hash.c:134:3: note: in expansion of macro 'JENKINS_LOOKUP3_HASHWORD2'
  134 |   JENKINS_LOOKUP3_HASHWORD2 (str, len, ret);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: In function 'scm_i_utf8_string_hash':
hash.c:225:32: warning: left shift count >= width of type [-Wshift-count-overflow]
  225 |     ret = (((unsigned long) c) << 32) | b;
      |                                ^~

Since this is C, I might have some idea what the heck is going on 😉 But it looks suspicious

@jeremyd2019
Copy link
Member

No, that's OK, they're all in an if (sizeof (unsigned long) == 8), which is false on 32-bit. besides, everything is unsigned there.

@jeremyd2019
Copy link
Member

Since we went from 3.0.8 to 3.0.10, I tested building 3.0.9 and it builds for 32-bit, so that helps narrow things down I guess

@jeremyd2019
Copy link
Member

That's not all that helpful, because the file is added in 3.0.10: https://git.savannah.gnu.org/cgit/guile.git/tree/module/language/cps/guile-vm.scm?h=v3.0.10

@jeremyd2019
Copy link
Member

jeremyd2019 commented Dec 24, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants