diff mbox series

[bug#71898] gnu: erlang-lfe: Make LFE compiler deterministic.

Message ID 5db9d2295039cce1032a9dbe53a7048c358d5ceb.1719910637.git.igor@goryachev.org
State New
Headers show
Series [bug#71898] gnu: erlang-lfe: Make LFE compiler deterministic. | expand

Commit Message

Igor Goryachev July 2, 2024, 8:57 a.m. UTC
* gnu/packages/erlang.scm (erlang-lfe): Make LFE compiler deterministic.

Change-Id: I0cf00eeda8502384b746795802f1b2291d0e8a3b
---
 gnu/packages/erlang.scm | 5 +++++
 1 file changed, 5 insertions(+)


base-commit: 5f1e4e4c0242af6bcba656aedf8b49afbe7247b7

Comments

Andrew Tropin July 2, 2024, 11:01 a.m. UTC | #1
On 2024-07-02 11:57, Igor Goryachev wrote:

> * gnu/packages/erlang.scm (erlang-lfe): Make LFE compiler deterministic.
>
> Change-Id: I0cf00eeda8502384b746795802f1b2291d0e8a3b
> ---
>  gnu/packages/erlang.scm | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
> index dd07c1a617..58aac2bead 100644
> --- a/gnu/packages/erlang.scm
> +++ b/gnu/packages/erlang.scm
> @@ -792,6 +792,11 @@ (define-public erlang-lfe
>        #:phases
>        #~(modify-phases %standard-phases
>            (delete 'configure)
> +          (add-after 'unpack 'make-deterministic
> +           (lambda _
> +             (substitute* "src/lfe_env.erl"
> +                 (("maps:fold\\(F, A, D\\)")
> +                  "lists:sort(maps:fold(F, A, D))"))))

It would be useful to add some explanation in the comment and probably a
link to upstream PR/thread.

>            ;; The following is inspired by rebar-build-system.scm
>            (add-before 'check 'erlang-depends
>              (lambda* (#:key inputs #:allow-other-keys)
>
> base-commit: 5f1e4e4c0242af6bcba656aedf8b49afbe7247b7
diff mbox series

Patch

diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index dd07c1a617..58aac2bead 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -792,6 +792,11 @@  (define-public erlang-lfe
       #:phases
       #~(modify-phases %standard-phases
           (delete 'configure)
+          (add-after 'unpack 'make-deterministic
+           (lambda _
+             (substitute* "src/lfe_env.erl"
+                 (("maps:fold\\(F, A, D\\)")
+                  "lists:sort(maps:fold(F, A, D))"))))
           ;; The following is inspired by rebar-build-system.scm
           (add-before 'check 'erlang-depends
             (lambda* (#:key inputs #:allow-other-keys)