Message ID | CAJ=RwfYdQbbUqCLt5A69t2Dsr1kj-JE_J9j4_B+iJOvDgNGORQ@mail.gmail.com |
---|---|
State | New |
Headers | show |
Series | [bug#72183] gnu: guile: Update to 3.0.10. | expand |
"Thompson, David" <dthompson2@worcester.edu> skribis: > From f6c6486dab767ba50c4c2ffbb55f10bbf4ee1000 Mon Sep 17 00:00:00 2001 > Message-ID: <f6c6486dab767ba50c4c2ffbb55f10bbf4ee1000.1721332994.git.dthompson2@worcester.edu> > From: David Thompson <dthompson2@worcester.edu> > Date: Thu, 18 Jul 2024 14:54:20 -0400 > Subject: [PATCH] gnu: guile: Update to 3.0.10. > > * gnu/packages/guile.scm (guile-3.0-latest): Update to 3.0.10. > > Change-Id: Id9d58199f1fa3307c94f442c185307d2f4a9ce6f > From 76c82888fefcef1226c6d18a4cf790d5e02d1c32 Mon Sep 17 00:00:00 2001 > Message-ID: <76c82888fefcef1226c6d18a4cf790d5e02d1c32.1721335570.git.dthompson2@worcester.edu> > From: David Thompson <dthompson2@worcester.edu> > Date: Thu, 18 Jul 2024 16:43:32 -0400 > Subject: [PATCH] gnu: shepherd 0.9: Switch from guile-3.0-latest to guile-3.0. > > * gnu/packages/admin.scm (shepherd-0.9)[native-inputs]: Use guile-3.0. > [inputs]: Ditto. > > Change-Id: I7f7efabc43e11e413300c6aa4c22919070d22389 LGTM. (Commit the Shepherd patch first.) Thank you! :-) Ludo’.
On Fri, Jul 19, 2024 at 12:32 PM Ludovic Courtès <ludo@gnu.org> wrote: > > LGTM. (Commit the Shepherd patch first.) Pushed! Thanks for the review! - Dave
Hey, I temporarily reverted the commits that upgrade Guile and adjust Hoot in 31244f5cefae4c14a1a5d441dc3b3626b5f32abc so we can investigate the issue below (which broke ‘guix pull’) without pressure. Turns out ‘guile-3.0-latest’ is used to build Guix itself (via ‘guix pull’, but also the ‘guix’ package) and this cause a failure of guix-cli-core.drv: --8<---------------cut here---------------start------------->8--- error: failed to compile 'guix/scripts/authenticate.scm': In language/tree-il/peval.scm: 1558:45 19 (loop _ _ _ value) In srfi/srfi-1.scm: 586:17 18 (map1 (#<tree-il (call (@ (guile) format) (const #f) (const "(signature ~a ~a ~a)") (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical data t1416)) (call (@ (gcrypt pk-crypto) canonical-sexp->string) (call (@ (gcrypt pk-crypto) sign) (lexical data t1416) (lexical secret-key t1418))) (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical public-key t1420)))>)) In language/tree-il/peval.scm: 1558:45 17 (loop _ _ _ value) In srfi/srfi-1.scm: 586:29 16 (map1 (#<tree-il (const #f)> #<tree-il (const "(signature ~a ~a ~a)")> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical data t1416))> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (call (@ (gcrypt pk-crypto) sign) (lexical data t1416) (lexical secret-key t1418)))> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical public-key t1420))>)) 586:29 15 (map1 (#<tree-il (const "(signature ~a ~a ~a)")> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical data t1416))> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (call (@ (gcrypt pk-crypto) sign) (lexical data t1416) (lexical secret-key t1418)))> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical public-key t1420))>)) 586:17 14 (map1 (#<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical data t1416))> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (call (@ (gcrypt pk-crypto) sign) (lexical data t1416) (lexical secret-key t1418)))> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical public-key t1420))>)) In language/tree-il/peval.scm: error: failed to compile 'guix/scripts/publish.scm': In language/tree-il/peval.scm: 1558:45 13 (loop _ _ _ value) In srfi/srfi-1.scm: 586:17 12 (map1 (#<tree-il (lexical data t1416)>)) In language/tree-il/peval.scm: 1558:45 19 (loop _ _ _ values) In srfi/srfi-1.scm: 586:17 18 (map1 (#<tree-il (call (@ (guile) format) (const #f) (const "(signature ~a ~a ~a)") (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical data t6047)) (call (@ (gcrypt pk-crypto) canonical-sexp->string) (call (@ (gcrypt pk-crypto) sign) (lexical data t6047) (lexical secret-key t6048))) (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical public-key t6049)))>)) In language/tree-il/peval.scm: 887:11 11 (loop _ _ #<<counter> effort: #<variable 7fffe74eca90 value: 484> size: #<variable 7fffe74eca80 value: 20> continuation: #<procedure abort ()> recursive?: #t data: #<tree-il (lambda ((name . signature-sexp)) (lambda-case (((data secret-key public-key) #f #f #f () (t1416 t1418 t1420)) (call (@ (gcrypt pk-crypto) string->canonical-sexp) (call (@ (guile) format) (const #f) (const "(signature ~a ~a ~a)") (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical data t1416)) (cal?> ?) 371:20 10 (visit-operand #<<operand> var: #<<var> name: data gensym: data-ae6ce62b6fb2770-3a7 refcount: 1 set?: #f> sym: #{data 1412}# visit: #<procedure 7fffecafb040 at language/tree-il/peval.scm:1011:40 (exp counter ctx)> source: #<tree-il (primcall values (call (@ (gcrypt pk-crypto) bytevector->hash-data) (lexical sha256 sha256-ae6ce62b6fb2770-39d) (const #:key-type) (call (@ (gcrypt pk-crypto) key-type) (lexical public-key public-key-ae6ce62b6fb2770-39b))))> visit-count: 1 use-count:?> ?) 1558:45 17 (loop _ _ _ value) In srfi/srfi-1.scm: 586:29 16 (map1 (#<tree-il (const #f)> #<tree-il (const "(signature ~a ~a ~a)")> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical data t6047))> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (call (@ (gcrypt pk-crypto) sign) (lexical data t6047) (lexical secret-key t6048)))> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical public-key t6049))>)) 586:29 15 (map1 (#<tree-il (const "(signature ~a ~a ~a)")> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical data t6047))> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (call (@ (gcrypt pk-crypto) sign) (lexical data t6047) (lexical secret-key t6048)))> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical public-key t6049))>)) 586:17 14 (map1 (#<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical data t6047))> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (call (@ (gcrypt pk-crypto) sign) (lexical data t6047) (lexical secret-key t6048)))> #<tree-il (call (@ (gcrypt pk-crypto) canonical-sexp->string) (lexical public-key t6049))>)) In language/tree-il/peval.scm: 1319:22 9 (loop _ #<vhash 7fffecafb0a0 92 pairs> #<<counter> effort: #<variable 7fffe74eca90 value: 484> size: #<variable 7fffe74eca80 value: 20> continuation: #<procedure abort ()> recursive?: #t data: #<tree-il (lambda ((name . signature-sexp)) (lambda-case (((data secret-key public-key) #f #f #f () (t1416 t1418 t1420)) (call (@ (gcrypt pk-crypto) string->canonical-sexp) (call (@ (guile) format) (const #f) (const "(signature ~a ~a ~a)") (call (@ (gcrypt pk-crypto) canonical-sexp->strin?> ?) In srfi/srfi-1.scm: 586:17 8 (map1 (#<tree-il (call (@ (gcrypt pk-crypto) bytevector->hash-data) (lexical sha256 sha256-ae6ce62b6fb2770-39d) (const #:key-type) (call (@ (gcrypt pk-crypto) key-type) (lexical public-key public-key-ae6ce62b6fb2770-39b)))>)) In language/tree-il/peval.scm: 1558:45 13 (loop _ _ _ value) In srfi/srfi-1.scm: 586:17 12 (map1 (#<tree-il (lexical data t6047)>)) In language/tree-il/peval.scm: 1762:18 7 (loop _ _ _ _) In ice-9/boot-9.scm: 1676:22 6 (raise-exception _ #:continuable? _) 1676:22 5 (raise-exception _ #:continuable? _) 1802:13 4 (_ #<&compound-exception components: (#<&error> #<&origin origin: #f> #<&message message: "internal error: unexpected kwarg syms ~S ~S"> #<&irritants irritants: (((#:key-type key-type #f)) (t1441))> #<&exception-with-kind-and-args kind: misc-error args: (#f "internal error: unexpected kwarg syms ~S ~S" (((#:key-type key-type #f)) (t1441)) #f)>)>) In guix/build/compile.scm: 191:6 3 [ 36/ 50] compiling... 44.0% of 25 files(_ misc-error #f "internal error: unexpected kwarg syms ~S ~S" (((#:key-type key-type #f)) (t1441)) #f) In ice-9/boot-9.scm: 1749:15 2 (with-exception-handler #<procedure 7fffec498f30 at ice-9/boot-9.scm:1853:7 (exn)> _ #:unwind? _ #:unwind-for-type _) In guix/build/compile.scm: 194:21 1 (_) In unknown file: 0 (make-stack #t) guix/build/compile.scm:194:21: internal error: unexpected kwarg syms ((#:key-type key-type #f)) (t1441) [ 38/ 50] compiling... 52.0% of 25 files [ 38/ 50] compiling... 52.0% of 25 files [ 39/ 50] compiling... 56.0% of 25 files [ 40/ 50] compiling... 60.0% of 25 filesbuilder for `/gnu/store/w9yvw8972xns0j3j36lg4lbyqv5m2f25-guix-cli-core.drv' failed with exit code 1 [ 41/ 50] compiling... 64.0% of 25 files [ 42/ 50] compiling... 68.0% of 25 filesderivation '/gnu/store/w9yvw8972xns0j3j36lg4lbyqv5m2f25-guix-cli-core.drv' offloaded to '141.80.167.177' failed: build of `/gnu/store/w9yvw8972xns0j3j36lg4lbyqv5m2f25-guix-cli-core.drv' failed [ 43/ 50] compiling... 72.0% of 25 files [ 44/ 50] compiling... 76.0% of 25 files [ 45/ 50] compiling... 80.0% of 25 files [ 46/ 50] compiling... 84.0% of 25 files [ 47/ 50] compiling... 88.0% of 25 files [ 48/ 50] compiling... 92.0% of 25 files [ 49/ 50] compiling... 96.0% of 25 filescannot build derivation `/gnu/store/9wyflvlskm5s5043zrrivfv3mv58n1vw-guix-cli-core-modules.drv': 1 dependencies couldn't be built cannot build derivation `/gnu/store/ych1s7kdksq08rzd1m6ddkpp7x8pw56x-guix-cli.drv': 1 dependencies couldn't be built --8<---------------cut here---------------end--------------->8--- (Taken from <https://ci.guix.gnu.org/eval/1497691/log/raw> and edited to be more readable.) The expressions leading to this internal compiler error are: (bytevector->hash-data (sha256 (string->utf8 s)) #:key-type (key-type public-key)) and: (bytevector->hash-data sha256 #:key-type (key-type public-key)) This sounds like a compiler bug, possibly related to Guile commit f95bf6921e13799abca6a0a13087609c42baba6b. Note that ‘bytevector->hash-data’ comes from Guile-Gcrypt, which was itself still compiled with 3.0.9. So there’s a possibility that the bug comes with this particular combination as is exhibited by cross-module inlining. To be continued… Ludo’.
Hey Ludo, On Fri, Jul 19, 2024 at 4:40 PM Ludovic Courtès <ludo@gnu.org> wrote: > > Hey, > > I temporarily reverted the commits that upgrade Guile and adjust Hoot in > 31244f5cefae4c14a1a5d441dc3b3626b5f32abc so we can investigate the issue > below (which broke ‘guix pull’) without pressure. Oh no, sorry! I ran 'guix pull' after pushing these commits and didn't experience issues so I thought all was well. :( > Turns out ‘guile-3.0-latest’ is used to build Guix itself (via ‘guix > pull’, but also the ‘guix’ package) and this cause a failure of > guix-cli-core.drv: How about using guile-3.0 for Guix so that future Guile updates can be done without fear? > The expressions leading to this internal compiler error are: > > (bytevector->hash-data (sha256 (string->utf8 s)) > #:key-type (key-type public-key)) > > and: > > (bytevector->hash-data sha256 > #:key-type (key-type public-key)) > > This sounds like a compiler bug, possibly related to Guile commit > f95bf6921e13799abca6a0a13087609c42baba6b. > > Note that ‘bytevector->hash-data’ comes from Guile-Gcrypt, which was > itself still compiled with 3.0.9. So there’s a possibility that the bug > comes with this particular combination as is exhibited by cross-module > inlining. Yup, that certainly sounds like what is happening here. Cross-module inlining + the new keyword args optimization. Sorry for breaking 'guix pull'. I thought I had scoped the changes down to a safe level. :( - Dave
Hi David, "Thompson, David" <dthompson2@worcester.edu> skribis: > On Fri, Jul 19, 2024 at 4:40 PM Ludovic Courtès <ludo@gnu.org> wrote: >> >> Hey, >> >> I temporarily reverted the commits that upgrade Guile and adjust Hoot in >> 31244f5cefae4c14a1a5d441dc3b3626b5f32abc so we can investigate the issue >> below (which broke ‘guix pull’) without pressure. > > Oh no, sorry! I ran 'guix pull' after pushing these commits and didn't > experience issues so I thought all was well. :( No worries, I didn’t expect that either. >> Turns out ‘guile-3.0-latest’ is used to build Guix itself (via ‘guix >> pull’, but also the ‘guix’ package) and this cause a failure of >> guix-cli-core.drv: > > How about using guile-3.0 for Guix so that future Guile updates can be > done without fear? We can do that, though I like the idea of following Guile closely. [...] >> Note that ‘bytevector->hash-data’ comes from Guile-Gcrypt, which was >> itself still compiled with 3.0.9. So there’s a possibility that the bug >> comes with this particular combination as is exhibited by cross-module >> inlining. > > Yup, that certainly sounds like what is happening here. Cross-module > inlining + the new keyword args optimization. I came up with a reduced test case and reported it here: https://issues.guix.gnu.org/72936 Another problem I had forgotten is that Guile current ‘main’ and 3.0.10 fails to build on 32-bit platforms: https://issues.guix.gnu.org/72215 The best course of action might be to release 3.0.11 with bug fixes for at least these two things. WDYT? In the meantime, I keep using the Guile channel, which works well for me: (channel (name 'guile) (url "https://git.savannah.gnu.org/git/guile.git") (branch "main")) Ludo’.
Hey Ludo, On Sun, Sep 1, 2024 at 1:31 PM Ludovic Courtès <ludo@gnu.org> wrote: > > Hi David, > > "Thompson, David" <dthompson2@worcester.edu> skribis: > > > On Fri, Jul 19, 2024 at 4:40 PM Ludovic Courtès <ludo@gnu.org> wrote: > >> > >> Hey, > >> > >> I temporarily reverted the commits that upgrade Guile and adjust Hoot in > >> 31244f5cefae4c14a1a5d441dc3b3626b5f32abc so we can investigate the issue > >> below (which broke ‘guix pull’) without pressure. > > > > Oh no, sorry! I ran 'guix pull' after pushing these commits and didn't > > experience issues so I thought all was well. :( > > No worries, I didn’t expect that either. > > >> Turns out ‘guile-3.0-latest’ is used to build Guix itself (via ‘guix > >> pull’, but also the ‘guix’ package) and this cause a failure of > >> guix-cli-core.drv: > > > > How about using guile-3.0 for Guix so that future Guile updates can be > > done without fear? > > We can do that, though I like the idea of following Guile closely. Okay, let's not do this, then. :) > >> Note that ‘bytevector->hash-data’ comes from Guile-Gcrypt, which was > >> itself still compiled with 3.0.9. So there’s a possibility that the bug > >> comes with this particular combination as is exhibited by cross-module > >> inlining. > > > > Yup, that certainly sounds like what is happening here. Cross-module > > inlining + the new keyword args optimization. > > I came up with a reduced test case and reported it here: > > https://issues.guix.gnu.org/72936 Awesome, thanks! Forwarded this to Andy. > Another problem I had forgotten is that Guile current ‘main’ and 3.0.10 > fails to build on 32-bit platforms: > > https://issues.guix.gnu.org/72215 > > The best course of action might be to release 3.0.11 with bug fixes for > at least these two things. WDYT? Yes, I think skipping 3.0.10 entirely makes sense. I will update guile-next at some point, though, since these issues are already present in the current version of that package. > In the meantime, I keep using the Guile channel, which works well for me: > > (channel > (name 'guile) > (url "https://git.savannah.gnu.org/git/guile.git") > (branch "main")) Oh neat, I didn't realize this was a thing. Thanks, - Dave
From f6c6486dab767ba50c4c2ffbb55f10bbf4ee1000 Mon Sep 17 00:00:00 2001 Message-ID: <f6c6486dab767ba50c4c2ffbb55f10bbf4ee1000.1721332994.git.dthompson2@worcester.edu> From: David Thompson <dthompson2@worcester.edu> Date: Thu, 18 Jul 2024 14:54:20 -0400 Subject: [PATCH] gnu: guile: Update to 3.0.10. * gnu/packages/guile.scm (guile-3.0-latest): Update to 3.0.10. Change-Id: Id9d58199f1fa3307c94f442c185307d2f4a9ce6f --- gnu/packages/guile.scm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index e8705dc7d2..077b7b7d37 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -322,7 +322,6 @@ (define-public guile-2.2.4 "07p3g0v2ba2vlfbfidqzlgbhnzdx46wh2rgc5gszq1mjyx5bks6r")))))) (define-public guile-3.0 - ;; This is the latest Guile stable version. (package (inherit guile-2.2) (name "guile") @@ -438,7 +437,18 @@ (define-public guile-3.0 (files '("lib/guile/3.0/site-ccache" "share/guile/site/3.0"))))))) -(define-public guile-3.0-latest guile-3.0) +(define-public guile-3.0-latest + ;; This is the latest Guile stable version. + (package + (inherit guile-3.0) + (version "3.0.10") + (source (origin + (inherit (package-source guile-3.0)) + (uri (string-append "mirror://gnu/guile/guile-" + version ".tar.xz")) + (sha256 + (base32 + "1233wzcbiqhp5qr3ggag14s5d4i7cn0spxyl8qs369nmgx8nhwdx")))))) ;;; The symbol guile-3.0/fixed should be used when guile-3.0 needs fixes ;;; (security or else) and this deprecation could be removed. base-commit: e3dfed59d39ac60dd2e2b9ef9f4ef63a2a081f41 -- 2.41.0