Message ID | 20211222041609.2fde841e@tachikoma.lepiller.eu |
---|---|
State | Accepted |
Headers | show |
Series | [bug#52729] gnu: ocaml: Update to 4.13. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
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
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
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
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