unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#52729] [PATCH] gnu: ocaml: Update to 4.13.
@ 2021-12-22  3:16 Julien Lepiller
  2021-12-22 13:33 ` zimoun
  0 siblings, 1 reply; 7+ messages in thread
From: Julien Lepiller @ 2021-12-22  3:16 UTC (permalink / raw)
  To: 52729

[-- Attachment #1: Type: text/plain, Size: 136 bytes --]

Hi Guix!

This patch updates ocaml to the latest version, without the need to
keep the previous version around like previous updates :)

[-- Attachment #2: 0001-gnu-ocaml-Update-to-4.13.patch --]
[-- Type: text/x-patch, Size: 6590 bytes --]

From df28351979735231bbf494da95d7fc0af5dfd32b Mon Sep 17 00:00:00 2001
Message-Id: <df28351979735231bbf494da95d7fc0af5dfd32b.1640142892.git.julien@lepiller.eu>
From: Julien Lepiller <julien@lepiller.eu>
Date: Wed, 22 Dec 2021 04:13:53 +0100
Subject: [PATCH] gnu: ocaml: Update to 4.13.

* gnu/packages/ocaml.scm (ocaml-4.13): New variable.
(ocaml-4.11): Remove variable.
(ocaml-dot-merlin-reader): Update to 4.4-413.
(js-of-ocaml): Update to 3.11.0.
---
 gnu/packages/ocaml.scm | 75 +++++++++++++++++++++++++++++-------------
 1 file changed, 53 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index e6001ca37b..9a031c9220 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -182,10 +182,10 @@ (define-public camlboot
 This package produces a native @command{ocamlc} and a bytecode @command{ocamllex}.")
       (license license:expat))))
 
-(define-public ocaml-4.11
+(define-public ocaml-4.13
   (package
     (name "ocaml")
-    (version "4.11.1")
+    (version "4.13.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -194,7 +194,7 @@ (define-public ocaml-4.11
                     "/ocaml-" version ".tar.xz"))
               (sha256
                (base32
-                "0k4521c0p10c5ams6vjv5qkkjhmpkb0bfn04llcz46ah0f3r2jpa"))))
+                "1s7xwqidpjwfhnpfma4nb93gxfr7g9jfn03s1j03iyavmpgph7ck"))))
     (build-system gnu-build-system)
     (native-search-paths
      (list (search-path-specification
@@ -210,7 +210,10 @@ (define-public ocaml-4.11
      (list libx11 libiberty ;needed for objdump support
            zlib))                       ;also needed for objdump support
     (arguments
-     `(#:phases
+     `(#:configure-flags '("--enable-ocamltest")
+       #:test-target "tests"
+       #:make-flags '("world.opt")
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-/bin/sh-references
            (lambda* (#:key inputs #:allow-other-keys)
@@ -226,16 +229,7 @@ (define-public ocaml-4.11
 patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%"
                                  file quoted-sh)
                          quoted-sh))))
-                  (find-files "." "\\.ml$"))
-                 #t))))
-         (replace 'build
-           (lambda _
-             (invoke "make" "-j" (number->string (parallel-job-count))
-                     "world.opt")))
-         (replace 'check
-           (lambda _
-             (with-directory-excursion "testsuite"
-               (invoke "make" "all")))))))
+                  (find-files "." "\\.ml$")))))))))
     (home-page "https://ocaml.org/")
     (synopsis "The OCaml programming language")
     (description
@@ -250,7 +244,7 @@ (define-public ocaml-4.11
 
 (define-public ocaml-4.09
   (package
-    (inherit ocaml-4.11)
+    (inherit ocaml-4.13)
     (version "4.09.0")
     (source (origin
               (method url-fetch)
@@ -261,7 +255,33 @@ (define-public ocaml-4.09
               (patches (search-patches "ocaml-4.09-multiple-definitions.patch"))
               (sha256
                (base32
-                "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj"))))))
+                "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-/bin/sh-references
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((sh (search-input-file inputs "/bin/sh"))
+                    (quoted-sh (string-append "\"" sh "\"")))
+               (with-fluids ((%default-port-encoding #f))
+                 (for-each
+                  (lambda (file)
+                    (substitute* file
+                      (("\"/bin/sh\"")
+                       (begin
+                         (format (current-error-port) "\
+patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%"
+                                 file quoted-sh)
+                         quoted-sh))))
+                  (find-files "." "\\.ml$"))))))
+         (replace 'build
+           (lambda _
+             (invoke "make" "-j" (number->string (parallel-job-count))
+                     "world.opt")))
+         (replace 'check
+           (lambda _
+             (with-directory-excursion "testsuite"
+               (invoke "make" "all")))))))))
 
 ;; This package is a bootstrap package for ocaml-4.07. It builds from camlboot,
 ;; using the upstream sources for ocaml 4.07. It installs a bytecode ocamllex
@@ -440,7 +460,7 @@ (define-public ocaml-4.07
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)))))
 
-(define-public ocaml ocaml-4.11)
+(define-public ocaml ocaml-4.13)
 
 (define-public ocamlbuild
   (package
@@ -4735,7 +4755,7 @@ (define-public ocaml-craml
 (define-public ocaml-dot-merlin-reader
   (package
     (name "ocaml-dot-merlin-reader")
-    (version "4.3.1-411")
+    (version "4.4-413")
     (source
      (origin
        (method git-fetch)
@@ -4745,7 +4765,7 @@ (define-public ocaml-dot-merlin-reader
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1nwgc9nyy80dc9cgkskyfwv9c785yjyg39s005d4wiagj4fy68v8"))))
+         "0wijg1vh2q6yr46vkv34vvksligd0ajl4hv7m6qbz3ywqr8akg23"))))
     (build-system dune-build-system)
     (arguments '(#:package "dot-merlin-reader"
                  #:tests? #f))          ; no tests
@@ -7617,7 +7637,7 @@ (define-public ocaml-cohttp
 (define-public js-of-ocaml
   (package
     (name "js-of-ocaml")
-    (version "3.9.1")
+    (version "3.11.0")
     (source
      (origin
        (method git-fetch)
@@ -7626,9 +7646,20 @@ (define-public js-of-ocaml
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "00hdjaj94j3nc6f6wbbpx59h4yc79siphs34i1hry11r56paaqyk"))))
+        (base32 "1x5f1ph9wgx0mgyibssssnrcwp69ihw66gzhsnz9h79czgzyjpp2"))))
     (build-system dune-build-system)
-    (arguments `(#:test-target "."))
+    (arguments
+     `(#:test-target "."
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'fix-failing-test
+           (lambda _
+             ;; Formating difference
+             (with-output-to-file "compiler/tests-jsoo/bin/error2.expected"
+               (lambda _
+                 (format #t
+                         "Fatal error: exception Match_failure(\
+\"compiler/tests-jsoo/bin/error2.ml\", 11, 2)\n\n"))))))))
     (propagated-inputs
      (list ocaml-ppxlib
            ocaml-uchar
-- 
2.34.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#52729] [PATCH] gnu: ocaml: Update to 4.13.
  2021-12-22  3:16 [bug#52729] [PATCH] gnu: ocaml: Update to 4.13 Julien Lepiller
@ 2021-12-22 13:33 ` zimoun
  2021-12-22 13:43   ` Julien Lepiller
  0 siblings, 1 reply; 7+ messages in thread
From: zimoun @ 2021-12-22 13:33 UTC (permalink / raw)
  To: Julien Lepiller; +Cc: 52729

Hi Julien,

On mer., 22 déc. 2021 at 04:16, Julien Lepiller <julien@lepiller.eu> wrote:

> This patch updates ocaml to the latest version, without the need to
> keep the previous version around like previous updates :)

Cool!

I have not looked into all the details, from the surface, LGTM.

However, I note that:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build ocaml-ppx-tools-versioned
[...]
starting phase `build'
       ocaml src/ast-version,src/compiler-functions-file (exit 1)
(cd _build/default/src && /gnu/store/xp09a2invgrnah62sf9carz9bkld1w6f-ocaml-4.13.1/bin/ocaml config/gen.ml 4.13.1)
Unkown OCaml version 4.13.1
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "dune" arguments: ("build" "@install" "--release") exit-status: 1 term-signal: #f stop-signal: #f>
phase `build' failed after 0.9 seconds
command "dune" "build" "@install" "--release" failed with status 1
builder for `/gnu/store/vbmvzq7if77zsl29945pyw7s2jbsmg7s-ocaml-migrate-parsetree-1-1.8.0.drv' failed with exit code 1
build of /gnu/store/vbmvzq7if77zsl29945pyw7s2jbsmg7s-ocaml-migrate-parsetree-1-1.8.0.drv failed
View build log at '/var/log/guix/drvs/vb/mvzq7if77zsl29945pyw7s2jbsmg7s-ocaml-migrate-parsetree-1-1.8.0.drv.bz2'.
cannot build derivation `/gnu/store/l3575b4ici05g7b8d9dc55wbbddmblwp-ocaml-ppx-tools-versioned-5.4.0.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/l3575b4ici05g7b8d9dc55wbbddmblwp-ocaml-ppx-tools-versioned-5.4.0.drv' failed
--8<---------------cut here---------------end--------------->8---


On a side note, have you tried to replace boot/ocamlc (and friends) with
the bootstrapped ones (camlboot -> ocaml-4.07 -> *).  Other said, what
is the most affordable path to exploit camlboot and have a good
bootstrapping story for OCaml.


Cheers,
simon




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#52729] [PATCH] gnu: ocaml: Update to 4.13.
  2021-12-22 13:33 ` zimoun
@ 2021-12-22 13:43   ` Julien Lepiller
  2021-12-22 13:51     ` zimoun
  0 siblings, 1 reply; 7+ messages in thread
From: Julien Lepiller @ 2021-12-22 13:43 UTC (permalink / raw)
  To: zimoun; +Cc: 52729



Le 22 décembre 2021 08:33:55 GMT-05:00, zimoun <zimon.toutoune@gmail.com> a écrit :
>Hi Julien,
>
>On mer., 22 déc. 2021 at 04:16, Julien Lepiller <julien@lepiller.eu> wrote:
>
>> This patch updates ocaml to the latest version, without the need to
>> keep the previous version around like previous updates :)
>
>Cool!
>
>I have not looked into all the details, from the surface, LGTM.
>
>However, I note that:
>
>--8<---------------cut here---------------start------------->8---
>$ ./pre-inst-env guix build ocaml-ppx-tools-versioned
>[...]
>starting phase `build'
>       ocaml src/ast-version,src/compiler-functions-file (exit 1)
>(cd _build/default/src && /gnu/store/xp09a2invgrnah62sf9carz9bkld1w6f-ocaml-4.13.1/bin/ocaml config/gen.ml 4.13.1)
>Unkown OCaml version 4.13.1
>error: in phase 'build': uncaught exception:
>%exception #<&invoke-error program: "dune" arguments: ("build" "@install" "--release") exit-status: 1 term-signal: #f stop-signal: #f>
>phase `build' failed after 0.9 seconds
>command "dune" "build" "@install" "--release" failed with status 1
>builder for `/gnu/store/vbmvzq7if77zsl29945pyw7s2jbsmg7s-ocaml-migrate-parsetree-1-1.8.0.drv' failed with exit code 1
>build of /gnu/store/vbmvzq7if77zsl29945pyw7s2jbsmg7s-ocaml-migrate-parsetree-1-1.8.0.drv failed
>View build log at '/var/log/guix/drvs/vb/mvzq7if77zsl29945pyw7s2jbsmg7s-ocaml-migrate-parsetree-1-1.8.0.drv.bz2'.
>cannot build derivation `/gnu/store/l3575b4ici05g7b8d9dc55wbbddmblwp-ocaml-ppx-tools-versioned-5.4.0.drv': 1 dependencies couldn't be built
>guix build: error: build of `/gnu/store/l3575b4ici05g7b8d9dc55wbbddmblwp-ocaml-ppx-tools-versioned-5.4.0.drv' failed
>--8<---------------cut here---------------end--------------->8---
>

Thanks! I forgot that one. ppx-tools-versionned is not compatible, and it's only used by migrate-parstree-1, which has no dependents. I only need it for ocaml 4.07, so I'll remove them both, and keep only the ocaml4.07 variant.

>
>On a side note, have you tried to replace boot/ocamlc (and friends) with
>the bootstrapped ones (camlboot -> ocaml-4.07 -> *).  Other said, what
>is the most affordable path to exploit camlboot and have a good
>bootstrapping story for OCaml.

Currently we can only use camlboot to bootstrap ocaml 4.07, which is what we do. We plan to improve it so it can build newer versions though.

>
>
>Cheers,
>simon




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#52729] [PATCH] gnu: ocaml: Update to 4.13.
  2021-12-22 13:43   ` Julien Lepiller
@ 2021-12-22 13:51     ` zimoun
  2021-12-23 13:01       ` [bug#52729] [PATCH v2] " Julien Lepiller
  0 siblings, 1 reply; 7+ messages in thread
From: zimoun @ 2021-12-22 13:51 UTC (permalink / raw)
  To: Julien Lepiller; +Cc: 52729

Hi,

On Wed, 22 Dec 2021 at 14:43, Julien Lepiller <julien@lepiller.eu> wrote:

> >On a side note, have you tried to replace boot/ocamlc (and friends) with
> >the bootstrapped ones (camlboot -> ocaml-4.07 -> *).  Other said, what
> >is the most affordable path to exploit camlboot and have a good
> >bootstrapping story for OCaml.
>
> Currently we can only use camlboot to bootstrap ocaml 4.07, which is what we do. We plan to improve it so it can build newer versions though.

Yes, I remember when discussing the patch adding camlboot and
ocaml4.07-boot. :-)  That's what you explained [1].

Well, a direct bootstrap camlboot -> ocaml-4.13 is better for sure,
but harder.  Instead, my question is: have you tried a chain of
boostrap: camlboot -> ocaml-4.07 -> ? -> ocaml-4.13.  I could be
temporary solution waiting camlboot improvements, no?

1: <https://issues.guix.gnu.org/46806#11>


Cheers,
simon




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#52729] [PATCH v2] gnu: ocaml: Update to 4.13.
  2021-12-22 13:51     ` zimoun
@ 2021-12-23 13:01       ` Julien Lepiller
  2022-01-08 20:45         ` pukkamustard
  0 siblings, 1 reply; 7+ messages in thread
From: Julien Lepiller @ 2021-12-23 13:01 UTC (permalink / raw)
  To: zimoun; +Cc: 52729

[-- Attachment #1: Type: text/plain, Size: 1381 bytes --]

Le Wed, 22 Dec 2021 14:51:49 +0100,
zimoun <zimon.toutoune@gmail.com> a écrit :

> Hi,
> 
> On Wed, 22 Dec 2021 at 14:43, Julien Lepiller <julien@lepiller.eu>
> wrote:
> 
> > >On a side note, have you tried to replace boot/ocamlc (and
> > >friends) with the bootstrapped ones (camlboot -> ocaml-4.07 -> *).
> > > Other said, what is the most affordable path to exploit camlboot
> > > and have a good
> > >bootstrapping story for OCaml.  
> >
> > Currently we can only use camlboot to bootstrap ocaml 4.07, which
> > is what we do. We plan to improve it so it can build newer versions
> > though.  
> 
> Yes, I remember when discussing the patch adding camlboot and
> ocaml4.07-boot. :-)  That's what you explained [1].
> 
> Well, a direct bootstrap camlboot -> ocaml-4.13 is better for sure,
> but harder.  Instead, my question is: have you tried a chain of
> boostrap: camlboot -> ocaml-4.07 -> ? -> ocaml-4.13.  I could be
> temporary solution waiting camlboot improvements, no?
> 
> 1: <https://issues.guix.gnu.org/46806#11>
> 
> 
> Cheers,
> simon

Here's v2 of the patch series: the first two patches build only the
4.07 version for migrate-parsetree@1 and for ppx-tools-versioned. That
way, they don't fail when updating to ocaml 4.13. I checked that
everything builds like before. I still have issues with bap because
llvm@3.8.1 fails.

[-- Attachment #2: 0001-gnu-ocaml-ppx-tools-versioned-Only-build-ocaml-4.07-.patch --]
[-- Type: text/x-patch, Size: 3169 bytes --]

From ed8cec81e6a30cc0a0e2f1562bb1a8f12e666dc1 Mon Sep 17 00:00:00 2001
Message-Id: <ed8cec81e6a30cc0a0e2f1562bb1a8f12e666dc1.1640218270.git.julien@lepiller.eu>
From: Julien Lepiller <julien@lepiller.eu>
Date: Wed, 22 Dec 2021 22:58:24 +0100
Subject: [PATCH 1/3] gnu: ocaml-ppx-tools-versioned: Only build ocaml-4.07
 variant.

* gnu/packages/ocaml.scm (ocaml-ppx-tools-versioned): Rename to...
(ocaml4.07-ppx-tools-versioned): ...this.
[arguments]: Use ocaml-4.07.
---
 gnu/packages/ocaml.scm | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index e6001ca37b..9fc3280f89 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -1836,9 +1836,9 @@ (define-public ocaml-migrate-parsetree-1
          "16x8sxc4ygxrr1868qpzfqyrvjf3hfxvjzmxmf6ibgglq7ixa2nq"))))
     (properties '((upstream-name . "ocaml-migrate-parsetree")))))
 
-(define-public ocaml-ppx-tools-versioned
+(define-public ocaml4.07-ppx-tools-versioned
   (package
-    (name "ocaml-ppx-tools-versioned")
+    (name "ocaml4.07-ppx-tools-versioned")
     (version "5.4.0")
     (source (origin
               (method git-fetch)
@@ -1851,10 +1851,13 @@ (define-public ocaml-ppx-tools-versioned
                 "07lnj4yzwvwyh5fhpp1dxrys4ddih15jhgqjn59pmgxinbnddi66"))))
     (build-system dune-build-system)
     (arguments
-     `(#:test-target "."
+     `(#:ocaml ,ocaml-4.07
+       #:dune ,ocaml4.07-dune
+       #:findlib ,ocaml4.07-findlib
+       #:test-target "."
        #:package "ppx_tools_versioned"))
     (propagated-inputs
-     `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree-1)))
+     (list (package-with-ocaml4.07 ocaml-migrate-parsetree-1)))
     (properties `((upstream-name . "ppx_tools_versioned")))
     (home-page "https://github.com/let-def/ppx_tools_versioned")
     (synopsis "Variant of ppx_tools")
@@ -1913,7 +1916,7 @@ (define-public ocaml4.07-bitstring
                  (base32
                   "15jjk2pq1vx311gl49s5ag6x5y0654x35w75z07g7kr2q334hqps"))))
       (propagated-inputs
-       `(("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned)))
+       `(("ocaml-ppx-tools-versioned" ,ocaml4.07-ppx-tools-versioned)))
       (properties '()))))
  
 (define-public ocaml-result
@@ -2751,7 +2754,7 @@ (define-public ocaml4.07-sedlex
                 (base32
                  "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26"))))
      (propagated-inputs
-      `(("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned)
+      `(("ocaml-ppx-tools-versioned" ,ocaml4.07-ppx-tools-versioned)
         ,@(package-propagated-inputs ocaml-sedlex)))
      (properties '()))))
 
@@ -6728,7 +6731,7 @@ (define-public ocaml4.07-bisect-ppx
            "1njs8xc108rrpx5am5zhhcn6vjva7rsphm8034qp5lgyvnhfgh7q"))))
       (propagated-inputs
        `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-         ("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned)
+         ("ocaml-ppx-tools-versioned" ,ocaml4.07-ppx-tools-versioned)
          ,@(package-propagated-inputs ocaml-bisect-ppx)))
       (native-inputs
        `(("ocaml-ounit2" ,ocaml-ounit2)))
-- 
2.34.0


[-- Attachment #3: 0002-gnu-ocaml-migrate-parstree-1-Only-build-ocaml4.07-va.patch --]
[-- Type: text/x-patch, Size: 3495 bytes --]

From 77660206f96eef8dd91485e295abb35d14c9a346 Mon Sep 17 00:00:00 2001
Message-Id: <77660206f96eef8dd91485e295abb35d14c9a346.1640218270.git.julien@lepiller.eu>
In-Reply-To: <ed8cec81e6a30cc0a0e2f1562bb1a8f12e666dc1.1640218270.git.julien@lepiller.eu>
References: <ed8cec81e6a30cc0a0e2f1562bb1a8f12e666dc1.1640218270.git.julien@lepiller.eu>
From: Julien Lepiller <julien@lepiller.eu>
Date: Wed, 22 Dec 2021 23:01:56 +0100
Subject: [PATCH 2/3] gnu: ocaml-migrate-parstree-1: Only build ocaml4.07
 variant.

* gnu/packages/ocaml.scm (ocaml-migrate-parsetree-1): Rename to...
(ocaml4.07-migrate-parsetree): ...this.  Use package-with-ocaml4.07.
---
 gnu/packages/ocaml.scm | 41 +++++++++++++++++++++--------------------
 1 file changed, 21 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 9fc3280f89..fd410c1ba9 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -1810,31 +1810,32 @@ (define-public ocaml-migrate-parsetree
     (propagated-inputs
      (list ocaml-ppx-derivers ocamlbuild ocaml-result))
     (properties `((upstream-name . "ocaml-migrate-parsetree")
-                  ;; OCaml 4.07 packages require version 1.*
-                  (ocaml4.07-variant . ,(delay (package-with-ocaml4.07 ocaml-migrate-parsetree-1)))))
+                  (ocaml4.07-variant . ,(delay ocaml4.07-migrate-parsetree))))
     (synopsis "OCaml parsetree converter")
     (description "This library converts between parsetrees of different OCaml
 versions.  For each version, there is a snapshot of the parsetree and conversion
 functions to the next and/or previous version.")
     (license license:lgpl2.1+)))
 
-(define-public ocaml-migrate-parsetree-1
-  (package
-    (inherit ocaml-migrate-parsetree)
-    (name "ocaml-migrate-parsetree-1")
-    (version "1.8.0")
-    (home-page "https://github.com/ocaml-ppx/ocaml-migrate-parsetree")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url home-page)
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "16x8sxc4ygxrr1868qpzfqyrvjf3hfxvjzmxmf6ibgglq7ixa2nq"))))
-    (properties '((upstream-name . "ocaml-migrate-parsetree")))))
+;; OCaml 4.07 packages require version 1.*
+(define-public ocaml4.07-migrate-parsetree
+  (package-with-ocaml4.07
+    (package
+      (inherit ocaml-migrate-parsetree)
+      (name "ocaml-migrate-parsetree")
+      (version "1.8.0")
+      (home-page "https://github.com/ocaml-ppx/ocaml-migrate-parsetree")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit (string-append "v" version))))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "16x8sxc4ygxrr1868qpzfqyrvjf3hfxvjzmxmf6ibgglq7ixa2nq"))))
+      (properties '((upstream-name . "ocaml-migrate-parsetree"))))))
 
 (define-public ocaml4.07-ppx-tools-versioned
   (package
@@ -1857,7 +1858,7 @@ (define-public ocaml4.07-ppx-tools-versioned
        #:test-target "."
        #:package "ppx_tools_versioned"))
     (propagated-inputs
-     (list (package-with-ocaml4.07 ocaml-migrate-parsetree-1)))
+     (list ocaml4.07-migrate-parsetree))
     (properties `((upstream-name . "ppx_tools_versioned")))
     (home-page "https://github.com/let-def/ppx_tools_versioned")
     (synopsis "Variant of ppx_tools")
-- 
2.34.0


[-- Attachment #4: 0003-gnu-ocaml-Update-to-4.13.patch --]
[-- Type: text/x-patch, Size: 6773 bytes --]

From bb660bfc763b38747f67c8421663efd5acb7a1cb Mon Sep 17 00:00:00 2001
Message-Id: <bb660bfc763b38747f67c8421663efd5acb7a1cb.1640218270.git.julien@lepiller.eu>
In-Reply-To: <ed8cec81e6a30cc0a0e2f1562bb1a8f12e666dc1.1640218270.git.julien@lepiller.eu>
References: <ed8cec81e6a30cc0a0e2f1562bb1a8f12e666dc1.1640218270.git.julien@lepiller.eu>
From: Julien Lepiller <julien@lepiller.eu>
Date: Wed, 22 Dec 2021 04:13:53 +0100
Subject: [PATCH 3/3] gnu: ocaml: Update to 4.13.

* gnu/packages/ocaml.scm (ocaml-4.13): New variable.
(ocaml-4.11): Remove variable.
(ocaml-dot-merlin-reader): Update to 4.4-413.
(js-of-ocaml): Update to 3.11.0.
---
 gnu/packages/ocaml.scm | 75 +++++++++++++++++++++++++++++-------------
 1 file changed, 53 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index fd410c1ba9..5eaa0836e7 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -182,10 +182,10 @@ (define-public camlboot
 This package produces a native @command{ocamlc} and a bytecode @command{ocamllex}.")
       (license license:expat))))
 
-(define-public ocaml-4.11
+(define-public ocaml-4.13
   (package
     (name "ocaml")
-    (version "4.11.1")
+    (version "4.13.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -194,7 +194,7 @@ (define-public ocaml-4.11
                     "/ocaml-" version ".tar.xz"))
               (sha256
                (base32
-                "0k4521c0p10c5ams6vjv5qkkjhmpkb0bfn04llcz46ah0f3r2jpa"))))
+                "1s7xwqidpjwfhnpfma4nb93gxfr7g9jfn03s1j03iyavmpgph7ck"))))
     (build-system gnu-build-system)
     (native-search-paths
      (list (search-path-specification
@@ -210,7 +210,10 @@ (define-public ocaml-4.11
      (list libx11 libiberty ;needed for objdump support
            zlib))                       ;also needed for objdump support
     (arguments
-     `(#:phases
+     `(#:configure-flags '("--enable-ocamltest")
+       #:test-target "tests"
+       #:make-flags '("world.opt")
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-/bin/sh-references
            (lambda* (#:key inputs #:allow-other-keys)
@@ -226,16 +229,7 @@ (define-public ocaml-4.11
 patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%"
                                  file quoted-sh)
                          quoted-sh))))
-                  (find-files "." "\\.ml$"))
-                 #t))))
-         (replace 'build
-           (lambda _
-             (invoke "make" "-j" (number->string (parallel-job-count))
-                     "world.opt")))
-         (replace 'check
-           (lambda _
-             (with-directory-excursion "testsuite"
-               (invoke "make" "all")))))))
+                  (find-files "." "\\.ml$")))))))))
     (home-page "https://ocaml.org/")
     (synopsis "The OCaml programming language")
     (description
@@ -250,7 +244,7 @@ (define-public ocaml-4.11
 
 (define-public ocaml-4.09
   (package
-    (inherit ocaml-4.11)
+    (inherit ocaml-4.13)
     (version "4.09.0")
     (source (origin
               (method url-fetch)
@@ -261,7 +255,33 @@ (define-public ocaml-4.09
               (patches (search-patches "ocaml-4.09-multiple-definitions.patch"))
               (sha256
                (base32
-                "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj"))))))
+                "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-/bin/sh-references
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((sh (search-input-file inputs "/bin/sh"))
+                    (quoted-sh (string-append "\"" sh "\"")))
+               (with-fluids ((%default-port-encoding #f))
+                 (for-each
+                  (lambda (file)
+                    (substitute* file
+                      (("\"/bin/sh\"")
+                       (begin
+                         (format (current-error-port) "\
+patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%"
+                                 file quoted-sh)
+                         quoted-sh))))
+                  (find-files "." "\\.ml$"))))))
+         (replace 'build
+           (lambda _
+             (invoke "make" "-j" (number->string (parallel-job-count))
+                     "world.opt")))
+         (replace 'check
+           (lambda _
+             (with-directory-excursion "testsuite"
+               (invoke "make" "all")))))))))
 
 ;; This package is a bootstrap package for ocaml-4.07. It builds from camlboot,
 ;; using the upstream sources for ocaml 4.07. It installs a bytecode ocamllex
@@ -440,7 +460,7 @@ (define-public ocaml-4.07
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)))))
 
-(define-public ocaml ocaml-4.11)
+(define-public ocaml ocaml-4.13)
 
 (define-public ocamlbuild
   (package
@@ -4739,7 +4759,7 @@ (define-public ocaml-craml
 (define-public ocaml-dot-merlin-reader
   (package
     (name "ocaml-dot-merlin-reader")
-    (version "4.3.1-411")
+    (version "4.4-413")
     (source
      (origin
        (method git-fetch)
@@ -4749,7 +4769,7 @@ (define-public ocaml-dot-merlin-reader
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1nwgc9nyy80dc9cgkskyfwv9c785yjyg39s005d4wiagj4fy68v8"))))
+         "0wijg1vh2q6yr46vkv34vvksligd0ajl4hv7m6qbz3ywqr8akg23"))))
     (build-system dune-build-system)
     (arguments '(#:package "dot-merlin-reader"
                  #:tests? #f))          ; no tests
@@ -7621,7 +7641,7 @@ (define-public ocaml-cohttp
 (define-public js-of-ocaml
   (package
     (name "js-of-ocaml")
-    (version "3.9.1")
+    (version "3.11.0")
     (source
      (origin
        (method git-fetch)
@@ -7630,9 +7650,20 @@ (define-public js-of-ocaml
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "00hdjaj94j3nc6f6wbbpx59h4yc79siphs34i1hry11r56paaqyk"))))
+        (base32 "1x5f1ph9wgx0mgyibssssnrcwp69ihw66gzhsnz9h79czgzyjpp2"))))
     (build-system dune-build-system)
-    (arguments `(#:test-target "."))
+    (arguments
+     `(#:test-target "."
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'fix-failing-test
+           (lambda _
+             ;; Formating difference
+             (with-output-to-file "compiler/tests-jsoo/bin/error2.expected"
+               (lambda _
+                 (format #t
+                         "Fatal error: exception Match_failure(\
+\"compiler/tests-jsoo/bin/error2.ml\", 11, 2)\n\n"))))))))
     (propagated-inputs
      (list ocaml-ppxlib
            ocaml-uchar
-- 
2.34.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#52729] [PATCH v2] gnu: ocaml: Update to 4.13.
  2021-12-23 13:01       ` [bug#52729] [PATCH v2] " Julien Lepiller
@ 2022-01-08 20:45         ` pukkamustard
  2022-01-09  9:55           ` bug#52729: " Julien Lepiller
  0 siblings, 1 reply; 7+ messages in thread
From: pukkamustard @ 2022-01-08 20:45 UTC (permalink / raw)
  To: Julien Lepiller; +Cc: 52729, zimoun


Hi Julien,

> gnu: ocaml-ppx-tools-versioned: Only build ocaml-4.07 variant.

Any reason for not using the package-with-ocaml4.07 transformation?

> gnu: ocaml: Update to 4.13.

js-of-ocaml and ocaml-dot-merlin-reader are also updated in this
commit. Could they be split to separate commits?

Other than that everything seems to be compiling and working
fine. Thank you very much!

-pukkamustard


Julien Lepiller <julien@lepiller.eu> writes:

> Le Wed, 22 Dec 2021 14:51:49 +0100,
> zimoun <zimon.toutoune@gmail.com> a écrit :
>
>> Hi,
>> 
>> On Wed, 22 Dec 2021 at 14:43, Julien Lepiller <julien@lepiller.eu>
>> wrote:
>> 
>> > >On a side note, have you tried to replace boot/ocamlc (and
>> > >friends) with the bootstrapped ones (camlboot -> ocaml-4.07 -> *).
>> > > Other said, what is the most affordable path to exploit camlboot
>> > > and have a good
>> > >bootstrapping story for OCaml.  
>> >
>> > Currently we can only use camlboot to bootstrap ocaml 4.07, which
>> > is what we do. We plan to improve it so it can build newer versions
>> > though.  
>> 
>> Yes, I remember when discussing the patch adding camlboot and
>> ocaml4.07-boot. :-)  That's what you explained [1].
>> 
>> Well, a direct bootstrap camlboot -> ocaml-4.13 is better for sure,
>> but harder.  Instead, my question is: have you tried a chain of
>> boostrap: camlboot -> ocaml-4.07 -> ? -> ocaml-4.13.  I could be
>> temporary solution waiting camlboot improvements, no?
>> 
>> 1: <https://issues.guix.gnu.org/46806#11>
>> 
>> 
>> Cheers,
>> simon
>
> Here's v2 of the patch series: the first two patches build only the
> 4.07 version for migrate-parsetree@1 and for ppx-tools-versioned. That
> way, they don't fail when updating to ocaml 4.13. I checked that
> everything builds like before. I still have issues with bap because
> llvm@3.8.1 fails.
>
> [2. text/x-patch; 0001-gnu-ocaml-ppx-tools-versioned-Only-build-ocaml-4.07-.patch]...
>
> [3. text/x-patch; 0002-gnu-ocaml-migrate-parstree-1-Only-build-ocaml4.07-va.patch]...
>
> [4. text/x-patch; 0003-gnu-ocaml-Update-to-4.13.patch]...





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#52729: [PATCH v2] gnu: ocaml: Update to 4.13.
  2022-01-08 20:45         ` pukkamustard
@ 2022-01-09  9:55           ` Julien Lepiller
  0 siblings, 0 replies; 7+ messages in thread
From: Julien Lepiller @ 2022-01-09  9:55 UTC (permalink / raw)
  To: pukkamustard; +Cc: 52729-done, zimoun

Le Sat, 08 Jan 2022 20:45:45 +0000,
pukkamustard <pukkamustard@posteo.net> a écrit :

> Hi Julien,
> 
> > gnu: ocaml-ppx-tools-versioned: Only build ocaml-4.07 variant.  
> 
> Any reason for not using the package-with-ocaml4.07 transformation?

No reason at all, thanks for noticing.

> 
> > gnu: ocaml: Update to 4.13.  
> 
> js-of-ocaml and ocaml-dot-merlin-reader are also updated in this
> commit. Could they be split to separate commits?

Unfortunately I cannot update these packages independently without
something breaking.

> 
> Other than that everything seems to be compiling and working
> fine. Thank you very much!
> 

Thanks for the review, pushed to master as
92c63bc491a4f3098e94e7e58ec83b89f771c13c to
3e8e6ebf000b1cbc4ff4b9ba84c7abdcbdf0ffb4

> -pukkamustard
> 
> 
> Julien Lepiller <julien@lepiller.eu> writes:
> 
> > Le Wed, 22 Dec 2021 14:51:49 +0100,
> > zimoun <zimon.toutoune@gmail.com> a écrit :
> >  
> >> Hi,
> >> 
> >> On Wed, 22 Dec 2021 at 14:43, Julien Lepiller <julien@lepiller.eu>
> >> wrote:
> >>   
> >> > >On a side note, have you tried to replace boot/ocamlc (and
> >> > >friends) with the bootstrapped ones (camlboot -> ocaml-4.07 ->
> >> > >*).
> >> > > Other said, what is the most affordable path to exploit
> >> > > camlboot and have a good
> >> > >bootstrapping story for OCaml.    
> >> >
> >> > Currently we can only use camlboot to bootstrap ocaml 4.07, which
> >> > is what we do. We plan to improve it so it can build newer
> >> > versions though.    
> >> 
> >> Yes, I remember when discussing the patch adding camlboot and
> >> ocaml4.07-boot. :-)  That's what you explained [1].
> >> 
> >> Well, a direct bootstrap camlboot -> ocaml-4.13 is better for sure,
> >> but harder.  Instead, my question is: have you tried a chain of
> >> boostrap: camlboot -> ocaml-4.07 -> ? -> ocaml-4.13.  I could be
> >> temporary solution waiting camlboot improvements, no?
> >> 
> >> 1: <https://issues.guix.gnu.org/46806#11>
> >> 
> >> 
> >> Cheers,
> >> simon  
> >
> > Here's v2 of the patch series: the first two patches build only the
> > 4.07 version for migrate-parsetree@1 and for ppx-tools-versioned.
> > That way, they don't fail when updating to ocaml 4.13. I checked
> > that everything builds like before. I still have issues with bap
> > because llvm@3.8.1 fails.
> >
> > [2. text/x-patch;
> > 0001-gnu-ocaml-ppx-tools-versioned-Only-build-ocaml-4.07-.patch]...
> >
> > [3. text/x-patch;
> > 0002-gnu-ocaml-migrate-parstree-1-Only-build-ocaml4.07-va.patch]...
> >
> > [4. text/x-patch; 0003-gnu-ocaml-Update-to-4.13.patch]...  
> 





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-01-09  9:56 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-22  3:16 [bug#52729] [PATCH] gnu: ocaml: Update to 4.13 Julien Lepiller
2021-12-22 13:33 ` zimoun
2021-12-22 13:43   ` Julien Lepiller
2021-12-22 13:51     ` zimoun
2021-12-23 13:01       ` [bug#52729] [PATCH v2] " Julien Lepiller
2022-01-08 20:45         ` pukkamustard
2022-01-09  9:55           ` bug#52729: " Julien Lepiller

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).