unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
blob b91ca36df460ed079fc4b8a8fd74dcede8beb226 3638 bytes (raw)
name: gnu/packages/patches/guile-bytestructures-fix-54165.patch 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
 
From 5082cdd2529f13286509a525a28f9d9917456fc1 Mon Sep 17 00:00:00 2001
From: Felix Lechner <felix.lechner@lease-up.com>
Date: Fri, 7 Jun 2024 04:51:17 -0700
Subject: [PATCH] Fix alignment in unpacked structs containing unions. (Closes:
 #47)

The 2.0.1 release suffered from a test failure [1] that caused some
distributions to disable the test [2] but the underlying cause had yet
to be identified.

Based on a preliminary review of the code, the author of this commit
believes there was a surplus line in the code [3] which is deleted
here.  This is the proposed evidence: The line shadowed the
'alignment' variable in line immediately above it. [4] Then, the same
expression was used two lines down below. [5] In combination, the line
being removed here seems to have been left over from editing under
time pressure. It may also have been added inadvertently.

On GNU Guix, this commit fixes the 'ref1' test for aligned struct
bytestructures containing union members, which was referenced via
"run-tests.body.scm:194: FAIL ref1" in Ludo's original report. [6] The
test output can be found at the bottom of this message.

This commit closes Github issue #47. [7]

[1] https://issues.guix.gnu.org/54165#1
[2] https://github.com/alpinelinux/aports/commit/2d8604645ca38552343c61fbc65728a2881e6ddd
[3] https://github.com/TaylanUB/scheme-bytestructures/blob/a6d5d25b26c0c5ef1f5fa38e2472fbf6a32cdf89/bytestructures/body/struct.scm#L110
[4] https://github.com/TaylanUB/scheme-bytestructures/blob/a6d5d25b26c0c5ef1f5fa38e2472fbf6a32cdf89/bytestructures/body/struct.scm#L109
[5] https://github.com/TaylanUB/scheme-bytestructures/blob/a6d5d25b26c0c5ef1f5fa38e2472fbf6a32cdf89/bytestructures/body/struct.scm#L112
[6] https://github.com/TaylanUB/scheme-bytestructures/blob/a6d5d25b26c0c5ef1f5fa38e2472fbf6a32cdf89/run-tests.body.scm#L194
[7] https://github.com/TaylanUB/scheme-bytestructures/issues/47

* * *

Group begin: aligned
Test begin:
  test-name: "ref1"
  source-file: "run-tests.body.scm"
  source-line: 194
  source-form: (test-eqv "ref1" 321 (bytestructure-ref bs (quote a)))
Test end:
  result-kind: pass
  actual-value: 321
  expected-value: 321
Test begin:
  test-name: "ref2"
  source-file: "run-tests.body.scm"
  source-line: 196
  source-form: (test-eqv "ref2" 456 (bytestructure-ref bs (quote b)))
Test end:
  result-kind: pass
  actual-value: 456
  expected-value: 456
Test begin:
  test-name: "set1"
  source-file: "run-tests.body.scm"
  source-line: 197
  source-form: (test-eqv "set1" 789 (begin (bytestructure-set! bs (quote a) 789) (bytestructure-ref bs (quote a))))
Test end:
  result-kind: pass
  actual-value: 789
  expected-value: 789
Test begin:
  test-name: "set2"
  source-file: "run-tests.body.scm"
  source-line: 199
  source-form: (test-eqv "set2" 987 (begin (bytestructure-set! bs (quote b) 987) (bytestructure-ref bs (quote b))))
Test end:
  result-kind: pass
  actual-value: 987
  expected-value: 987
Group end: aligned
---
 bytestructures/body/struct.scm | 1 -
 1 file changed, 1 deletion(-)

diff --git a/bytestructures/body/struct.scm b/bytestructures/body/struct.scm
index 07797b5..0113a17 100644
--- a/bytestructures/body/struct.scm
+++ b/bytestructures/body/struct.scm
@@ -107,7 +107,6 @@
     (let ((descriptor (cadr field-spec)))
       (bytestructure-descriptor-size descriptor)))
   (let* ((alignment (apply max (map field-spec-alignment field-specs)))
-         (alignment (pack-alignment pack alignment))
          (size (apply max (map field-spec-size field-specs)))
          (position (align position size (pack-alignment pack alignment))))
     (let loop ((field-specs field-specs)
-- 
2.41.0


debug log:

solving b91ca36df4 ...
found b91ca36df4 in https://yhetil.org/guix-patches/eff1f3146d51e82bbc6a2bc3c8e9e98aab6e82c7.1717767896.git.felix.lechner@lease-up.com/

applying [1/1] https://yhetil.org/guix-patches/eff1f3146d51e82bbc6a2bc3c8e9e98aab6e82c7.1717767896.git.felix.lechner@lease-up.com/
diff --git a/gnu/packages/patches/guile-bytestructures-fix-54165.patch b/gnu/packages/patches/guile-bytestructures-fix-54165.patch
new file mode 100644
index 0000000000..b91ca36df4

1:96: trailing whitespace.
-- 
Checking patch gnu/packages/patches/guile-bytestructures-fix-54165.patch...
1:98: new blank line at EOF.
+
Applied patch gnu/packages/patches/guile-bytestructures-fix-54165.patch cleanly.
warning: 2 lines add whitespace errors.

index at:
100644 b91ca36df460ed079fc4b8a8fd74dcede8beb226	gnu/packages/patches/guile-bytestructures-fix-54165.patch

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).