Subject: [bug#54165] [PATCH] gnu: guile-bytestructures: Update to 2.0.1.

From: Ludovic Courtès <[email-masked]>
Date: Tue, 01 Mar 2022 12:38:02 +0100

Hi,

Taylan Kammer <[email-masked]> skribis:

> * gnu/packages/guile.scm (guile-bytestructures): Update to 2.0.1.
>
> Although the major version number is increased due to a small API-breaking
> change, all packages that depend on guile-bytestructures still build fine and
> pass their test suite if they have one, so it should not be necessary to
> create a bytestructures-2.0 package.
>
> The breaking change is that bs:pointer would previously implicitly dereference
> the pointer when any index other than '* was provided, whereas in this version
> the dereference must be explicit, and can be '* or an integer that represents
> an offset from the pointer address a la *(ptr + i) in C.

Since it’s an indirect dependency of Guix, I tested a bit more
thoroughly than for other packages.

While running this:

  ./pre-inst-env guix build guile-git -s x86_64-linux -s i686-linux -s armhf-linux -s aarch64-linux

I got this test failure on i686-linux:

--8<---------------cut here---------------start------------->8---
starting phase `check'
./pre-inst-env          \
  /gnu/store/pihshjqc5x3k8yhdp1nvkgwiifyxin4v-guile-3.0.7/bin/guile --no-auto-compile           \
  ./run-tests.guile.scm
Backtrace:
           7 (primitive-load "/tmp/guix-build-guile-bytestructures-2…")
In ice-9/eval.scm:
    619:8  6 (_ #f)
In ice-9/boot-9.scm:
    142:2  5 (dynamic-wind #<procedure 8fca850 at ice-9/eval.scm:33…> …)
    142:2  4 (dynamic-wind #<procedure 883d3b0 at ice-9/eval.scm:33…> …)
In ice-9/eval.scm:
    619:8  3 (_ #(#(#<directory (guile-user) 8194690>)))
In ice-9/boot-9.scm:
    142:2  2 (dynamic-wind #<procedure 8845110 at ice-9/eval.scm:33…> …)
In ice-9/eval.scm:
    619:8  1 (_ #(#(#(#<directory (guile-user) 8194690>)) #<variab…>))
In unknown file:
           0 (bytevector-u64-native-set! #vu8(0 0 0 0 0 0 0 0 65 1 …) …)

ERROR: In procedure bytevector-u64-native-set!:
In procedure bytevector-u64-native-set!: Value out of range: 8
%%%% Starting test bytestructures  (Writing full log to "bytestructures.log")
run-tests.body.scm:194: FAIL ref1
make: *** [Makefile:779: check] Error 1

Test suite failed, dumping logs.
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("check" "-j" "8" "GUILE_AUTO_COMPILE=0") exit-status: 2 term-signal: #f stop-signal: #f> 
phase `check' failed after 1.1 seconds
command "make" "check" "-j" "8" "GUILE_AUTO_COMPILE=0" failed with status 2
builder for `/gnu/store/xkbc6a6jlg9r1lkma6zw8lfmprfsfkqw-guile-bytestructures-2.0.1.drv' failed with exit code 1
--8<---------------cut here---------------end--------------->8---

With:

  ./pre-inst-env guix build -v1 guile-drmaa nyacc [email-masked] guile-lzma

I got this nyacc test failure:

--8<---------------cut here---------------start------------->8---
GUILE_LOAD_PATH=/tmp/guix-build-nyacc-1.00.2.drv-0/nyacc-1.00.2/module GUILE_LOAD_COMPILED_PATH=/tmp/guix-build-nyacc-1.00.2.drv-0/nyacc-1.00.2/module \
  /tmp/guix-build-nyacc-1.00.2.drv-0/nyacc-1.00.2/etc/guild compile -o system/ffi-help-rt.go system/ffi-help-rt.scm
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /tmp/guix-build-nyacc-1.00.2.drv-0/nyacc-1.00.2/etc/guild
;;; WARNING: compilation of /tmp/guix-build-nyacc-1.00.2.drv-0/nyacc-1.00.2/etc/guild failed:
;;; failed to create path for auto-compiled file "/tmp/guix-build-nyacc-1.00.2.drv-0/nyacc-1.00.2/etc/guild"
Backtrace:
In system/base/target.scm:
     65:6 19 (with-target _ _)
In system/base/compile.scm:
    187:6 18 (compile-file "system/ffi-help-rt.scm" #:output-file _ # …)
     53:4 17 (call-with-output-file/atomic _ _ _)
In ice-9/boot-9.scm:
  1752:10 16 (with-exception-handler _ _ #:unwind? _ # _)
In system/base/compile.scm:
    69:11 15 (_)
   190:11 14 (_ #<closed: file 7fffedfe4150>)
   331:39 13 (read-and-compile #<input: system/ffi-help-rt.scm 15> # …)
   261:27 12 (_ _ _)
In ice-9/boot-9.scm:
   2835:4 11 (save-module-excursion #<procedure 7fffee7e3c00 at lang…>)
In language/scheme/compile-tree-il.scm:
    31:15 10 (_)
In ice-9/psyntax.scm:
  1230:36  9 (expand-top-sequence (#<syntax:ffi-help-rt.scm:20:0 (…>) …)
  1222:19  8 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
   259:10  7 (parse _ (("placeholder" placeholder)) (()) _ c&e (# #) #)
In ice-9/eval.scm:
   293:34  6 (_ #<module (#{ g100}#) 7fffee85c280>)
In ice-9/boot-9.scm:
   3409:4  5 (define-module* _ #:filename _ #:pure _ #:version _ # _ …)
  2594:24  4 (call-with-deferred-observers #<procedure 7fffefc7b1e0 …>)
  3422:24  3 (_)
   222:17  2 (map1 (((bytestructures guile)) ((bytestructures # …)) …))
   3329:6  1 (resolve-interface (bytestructures guile) #:select _ # _ …)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
no code for module (bytestructures guile)
make[1]: *** [Makefile:93: system/ffi-help-rt.go] Error 1

[…]

@ build-failed /gnu/store/qsnsix75inib689w6yr7a335xch13wk0-nyacc-1.00.2.drv - 1 builder for `/gnu/store/qsnsix75inib689w6yr7a335xch13wk0-nyacc-1.00.2.drv' failed with exit code 1
--8<---------------cut here---------------end--------------->8---

Could you take a look?

Thanks,
Ludo’.