summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Coquand <marc@mccd.space>2024-04-07 16:42:18 -0500
committerGuix Patches Tester <>2024-04-17 14:17:40 +0200
commita29d6d52bc8d5772d2babf59d075c357fde8b168 (patch)
tree0c69561a88168ce6b660c17a432f2201e004394a
parentb47ae1ecc43baaf726701ab2d2f810ecfaa75428 (diff)
downloadguix-patches-issue-69185.tar
guix-patches-issue-69185.tar.gz
gnu: ocaml: Update to 5.1.1issue-69185
Hey everyone, So I decided to attempt this today, but ran into issues with merlin. Current version of merlin is built for 5.0, and will break if attempted to be built on version 5.1. I tried to build to bump up the version but ran into the error when building ocaml-merlin-lib, which needs to be upgraded to at least version 4.11-501. However, when I tried to do so, I ran into the error. ``` Error: The functor was expected to be applicative at this position ``` And struggled with it for a bit but ultimately couldn't get it to work. I'm adding the diff in case anyone wants to have another attempt. I've made some more changes, basically I've replaced all instances of ocaml5.0 with ocaml5.1. Cheers Marc
-rw-r--r--gnu/packages/ocaml.scm170
-rw-r--r--guix/build-system/ocaml.scm34
2 files changed, 117 insertions, 87 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 7fad276b4e..1b12b4121a 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -191,10 +191,10 @@ OCaml and can effectively bootstrap OCaml 4.07.
This package produces a native @command{ocamlc} and a bytecode @command{ocamllex}.")
(license license:expat))))
-(define-public ocaml-5.0
+(define-public ocaml-5.1
(package
(name "ocaml")
- (version "5.0.0")
+ (version "5.1.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -203,7 +203,7 @@ This package produces a native @command{ocamlc} and a bytecode @command{ocamllex
(file-name (git-file-name name version))
(sha256
(base32
- "1p0p8wldrnbr61wfy3x4122017g4k5gjvfwlg3mvlqn8r2fxn2m5"))))
+ "1x3a6cyibmmyhqxq2y6vvj1bj3rngqkvppilchsmsn76p8nh8hcr"))))
(build-system gnu-build-system)
(native-search-paths
(list (search-path-specification
@@ -906,8 +906,8 @@ useful for installing OCaml packages without requiring the entirety of
OPAM.")
(properties
;; opam-installer is used as a tool and not as a library, we can use the
- ;; OCaml 4.14 compiled opam until opam is compatible with OCaml 5.0.
- `((ocaml5.0-variant . ,(delay opam-installer))))))
+ ;; OCaml 4.14 compiled opam until opam is compatible with OCaml 5.1.
+ `((ocaml5.1-variant . ,(delay opam-installer))))))
(define ocaml-opam-repository
(package
@@ -1102,8 +1102,8 @@ name = Guix Builder")
(inputs (list ocaml-opam-client))
(properties
;; OPAM is used as a tool and not as a library, we can use the OCaml 4.14
- ;; compiled opam until opam is compatible with OCaml 5.0.
- `((ocaml5.0-variant . ,(delay opam))))))
+ ;; compiled opam until opam is compatible with OCaml 5.1.
+ `((ocaml5.1-variant . ,(delay opam))))))
(define-public ocaml-opam-monorepo
(package
@@ -1382,6 +1382,36 @@ Knuth’s LR(1) parser construction technique.")
;; are QPL licensed.
(license (list license:gpl2+ license:qpl))))
+(define-public ocaml5.1-menhir
+ (package
+ (name "ocaml-menhir")
+ (version "20231231")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.inria.fr/fpottier/menhir.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "12a1zxbkipa2i0k7ay0frfzyibpdvh3hr0rcq18kgsp924wp9q5x"))))
+ (build-system dune-build-system)
+ (inputs
+ (list ocaml))
+ (arguments
+ `(#:tests? #f)) ; No check target
+ (properties `((ocaml5.1-variant . ,(delay (strip-ocaml5.1-variant ocaml5.1-menhir)))))
+ (home-page "https://gallium.inria.fr/~fpottier/menhir/")
+ (synopsis "Parser generator")
+ (description "Menhir is a parser generator. It turns high-level grammar
+specifications, decorated with semantic actions expressed in the OCaml
+programming language into parsers, again expressed in OCaml. It is based on
+Knuth’s LR(1) parser construction technique.")
+ ;; The file src/standard.mly and all files listed in src/mnehirLib.mlpack
+ ;; that have an *.ml or *.mli extension are GPL licensed. All other files
+ ;; are QPL licensed.
+ (license (list license:gpl2+ license:qpl))))
+
(define-public ocaml-bigarray-compat
(package
(name "ocaml-bigarray-compat")
@@ -1615,12 +1645,12 @@ compilers that can directly deal with packages.")
(native-inputs
(list m4 ocaml-4.09))))
-(define-public ocaml5.0-findlib
+(define-public ocaml5.1-findlib
(package
(inherit ocaml-findlib)
- (name "ocaml5.0-findlib")
+ (name "ocaml5.1-findlib")
(native-inputs
- (list m4 ocaml-5.0))))
+ (list m4 ocaml-5.1))))
(define-public ocaml-ounit2
(package
@@ -1953,8 +1983,8 @@ Descriptions of projects, libraries and executables are provided in
(define-public ocaml4.09-dune-bootstrap
(package-with-ocaml4.09 dune-bootstrap))
-(define-public ocaml5.0-dune-bootstrap
- (package-with-ocaml5.0 dune-bootstrap))
+(define-public ocaml5.1-dune-bootstrap
+ (package-with-ocaml5.1 dune-bootstrap))
(define-public dune-configurator
(package
@@ -1977,7 +2007,7 @@ Descriptions of projects, libraries and executables are provided in
(propagated-inputs
(list ocaml-csexp))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-dune-configurator))
- (ocaml5.0-variant . ,(delay ocaml5.0-dune-configurator))))
+ (ocaml5.1-variant . ,(delay ocaml5.1-dune-configurator))))
(synopsis "Dune helper library for gathering system configuration")
(description "Dune-configurator is a small library that helps writing
OCaml scripts that test features available on the system, in order to generate
@@ -2002,16 +2032,16 @@ config.h files for instance. Among other things, dune-configurator allows one t
(propagated-inputs
`(("ocaml-csexp" ,ocaml4.09-csexp)))))
-(define-public ocaml5.0-dune-configurator
+(define-public ocaml5.1-dune-configurator
(package
(inherit dune-configurator)
- (name "ocaml5.0-dune-configurator")
+ (name "ocaml5.1-dune-configurator")
(arguments
`(,@(package-arguments dune-configurator)
- #:dune ,ocaml5.0-dune-bootstrap
- #:ocaml ,ocaml-5.0
- #:findlib ,ocaml5.0-findlib))
- (propagated-inputs (list ocaml5.0-csexp))))
+ #:dune ,ocaml5.1-dune-bootstrap
+ #:ocaml ,ocaml-5.1
+ #:findlib ,ocaml5.1-findlib))
+ (propagated-inputs (list ocaml5.1-csexp))))
(define-public dune
(package
@@ -2020,7 +2050,7 @@ config.h files for instance. Among other things, dune-configurator allows one t
(list dune-configurator))
(properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune))
(ocaml4.09-variant . ,(delay ocaml4.09-dune))
- (ocaml5.0-variant . ,(delay ocaml5.0-dune))))))
+ (ocaml5.1-variant . ,(delay ocaml5.1-dune))))))
(define-public ocaml4.09-dune
(package
@@ -2042,11 +2072,11 @@ config.h files for instance. Among other things, dune-configurator allows one t
(base32
"0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"))))))
-(define-public ocaml5.0-dune
+(define-public ocaml5.1-dune
(package
- (inherit ocaml5.0-dune-bootstrap)
+ (inherit ocaml5.1-dune-bootstrap)
(propagated-inputs
- (list ocaml5.0-dune-configurator))))
+ (list ocaml5.1-dune-configurator))))
(define-public ocaml-pp
(package
@@ -2172,7 +2202,7 @@ executables and libraries")))
(propagated-inputs
(list ocaml-result))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-csexp))
- (ocaml5.0-variant . ,(delay ocaml5.0-csexp))))
+ (ocaml5.1-variant . ,(delay ocaml5.1-csexp))))
(home-page "https://github.com/ocaml-dune/csexp")
(synopsis "Parsing and printing of S-expressions in Canonical form")
(description "This library provides minimal support for Canonical
@@ -2201,17 +2231,17 @@ module of this library is parameterised by the type of S-expressions.")
(propagated-inputs
`(("ocaml-result" ,ocaml4.09-result)))))
-(define-public ocaml5.0-csexp
+(define-public ocaml5.1-csexp
(package
(inherit ocaml-csexp)
- (name "ocaml5.0-csexp")
+ (name "ocaml5.1-csexp")
(arguments
- `(#:ocaml ,ocaml-5.0
- #:findlib ,ocaml5.0-findlib
+ `(#:ocaml ,ocaml-5.1
+ #:findlib ,ocaml5.1-findlib
,@(substitute-keyword-arguments (package-arguments ocaml-csexp)
- ((#:dune _) ocaml5.0-dune-bootstrap))))
+ ((#:dune _) ocaml5.1-dune-bootstrap))))
(propagated-inputs
- `(("ocaml-result" ,ocaml5.0-result)))))
+ `(("ocaml-result" ,ocaml5.1-result)))))
(define-public ocaml-migrate-parsetree
(package
@@ -2332,7 +2362,7 @@ bitsrings in Erlang style as primitives to the language.")))
(arguments
`(#:dune ,dune-bootstrap))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-result))
- (ocaml5.0-variant . ,(delay ocaml5.0-result))))
+ (ocaml5.1-variant . ,(delay ocaml5.1-result))))
(home-page "https://github.com/janestreet/result")
(synopsis "Compatibility Result module")
(description "Uses the new result type defined in OCaml >= 4.03 while
@@ -2349,14 +2379,14 @@ defined in this library.")
#:ocaml ,ocaml-4.09
#:findlib ,ocaml4.09-findlib))))
-(define-public ocaml5.0-result
+(define-public ocaml5.1-result
(package
(inherit ocaml-result)
- (name "ocaml5.0-result")
+ (name "ocaml5.1-result")
(arguments
- `(#:dune ,ocaml5.0-dune-bootstrap
- #:ocaml ,ocaml-5.0
- #:findlib ,ocaml5.0-findlib))))
+ `(#:dune ,ocaml5.1-dune-bootstrap
+ #:ocaml ,ocaml-5.1
+ #:findlib ,ocaml5.1-findlib))))
(define-public ocaml-iso8601
(package
@@ -3169,8 +3199,8 @@ to which allows adding and looking up bindings in a type safe manner.")
OCaml with fibers.")
(license license:isc)))
-(define-public ocaml5.0-eio
- (package-with-ocaml5.0 ocaml-eio))
+(define-public ocaml5.1-eio
+ (package-with-ocaml5.1 ocaml-eio))
(define ocaml-eio-luv
(package
@@ -3183,8 +3213,8 @@ OCaml with fibers.")
(description "@code{Eio_luv} provides a cross-platform backend for
@code{Ocaml Eio}'s APIs using luv (libuv)")))
-(define-public ocaml5.0-eio-luv
- (package-with-ocaml5.0 ocaml-eio-luv))
+(define-public ocaml5.1-eio-luv
+ (package-with-ocaml5.1 ocaml-eio-luv))
(define-public ocaml-uring
(package
@@ -3236,8 +3266,8 @@ OCaml with fibers.")
@code{Ocaml Eio} APIs, plus a low-level API that can be used directly
(in non-portable code).")))
-(define-public ocaml5.0-eio-linux
- (package-with-ocaml5.0 ocaml-eio-linux))
+(define-public ocaml5.1-eio-linux
+ (package-with-ocaml5.1 ocaml-eio-linux))
(define ocaml-eio-main
(package
@@ -3256,8 +3286,8 @@ OCaml with fibers.")
(description "@code{Eio_main} selects an appropriate backend (e.g.
@samp{eio_linux} or @samp{eio_luv}), depending on your platform.")))
-(define-public ocaml5.0-eio-main
- (package-with-ocaml5.0 ocaml-eio-main))
+(define-public ocaml5.1-eio-main
+ (package-with-ocaml5.1 ocaml-eio-main))
(define-public ocaml-lwt
(package
@@ -5707,7 +5737,7 @@ long and size_t whose sizes depend on the host platform.")
("integers" ,ocaml-integers)))
(inputs
(list libffi))
- (properties `((ocaml5.0-variant . ,(delay ocaml5.0-ctypes))))
+ (properties `((ocaml5.1-variant . ,(delay ocaml5.1-ctypes))))
(synopsis "Library for binding to C libraries using pure OCaml")
(description "Ctypes is a library for binding to C libraries using pure
OCaml. The primary aim is to make writing C extensions as straightforward as
@@ -5718,12 +5748,12 @@ functions that you want to call, then bind directly to those functions -- all
without writing or generating any C!")
(license license:expat)))
-(define-public ocaml5.0-ctypes
- ;; Contains fix to support OCaml 5.0
+(define-public ocaml5.1-ctypes
+ ;; Contains fix to support OCaml 5.1
;; (https://github.com/ocamllabs/ocaml-ctypes/pull/709)
(let ((commit "52ff621f47dbc1ee5a90c30af0ae0474549946b4")
(revision "0"))
- (package-with-ocaml5.0
+ (package-with-ocaml5.1
(package
(inherit ocaml-ctypes)
(name "ocaml-ctypes")
@@ -6098,7 +6128,7 @@ serializers and deserializers from type definitions.")
(arguments '(#:package "merlin-lib"
#:tests? #f)) ; no tests
(propagated-inputs (list ocaml-csexp ocaml-menhir))
- (properties `((ocaml5.0-variant . ,(delay ocaml5.0-merlin-lib))))
+ (properties `((ocaml5.1-variant . ,(delay ocaml5.1-merlin-lib))))
(home-page "https://ocaml.github.io/merlin/")
(synopsis "Merlin libraries")
(description "These libraries provides access to low-level compiler
@@ -6110,7 +6140,7 @@ interfaces and the standard higher-level merlin protocol.")
(package
(inherit ocaml-merlin-lib)
(name "ocaml-merlin-lib")
- (version "4.7.1-500")
+ (version "4.13.1-501")
(source
(origin
(method git-fetch)
@@ -6120,11 +6150,11 @@ interfaces and the standard higher-level merlin protocol.")
(file-name (git-file-name name version))
(sha256
(base32
- "05a87i2dkzv800nwb6y7b2j45avg8gs3gzb5a98wrj1i5zjqwh01"))))
+ "05k07hfxxdcfzis7n2fsa2a2kd1f06dharkyyv8vixmrgzffn2c3"))))
(properties '())))
-(define-public ocaml5.0-merlin-lib
- (package-with-ocaml5.0 ocaml-merlin-lib-500))
+(define-public ocaml5.1-merlin-lib
+ (package-with-ocaml5.1 ocaml-merlin-lib-500))
(define-public ocaml-dot-merlin-reader
(package
@@ -6133,19 +6163,19 @@ interfaces and the standard higher-level merlin protocol.")
(arguments '(#:package "dot-merlin-reader"
#:tests? #f)) ; no tests
(propagated-inputs (list ocaml-merlin-lib))
- (properties `((ocaml5.0-variant . ,(delay ocaml5.0-dot-merlin-reader))))
+ (properties `((ocaml5.1-variant . ,(delay ocaml5.1-dot-merlin-reader))))
(synopsis "Reads config files for @code{ocaml-merlin}")
(description "@code{ocaml-dot-merlin-reader} is an external reader for
@code{ocaml-merlin} configurations.")))
-(define-public ocaml5.0-dot-merlin-reader
- (package-with-ocaml5.0
+(define-public ocaml5.1-dot-merlin-reader
+ (package-with-ocaml5.1
(package
(inherit ocaml-merlin-lib-500)
(name "ocaml-dot-merlin-reader")
(arguments '(#:package "dot-merlin-reader"
#:tests? #f)) ; no tests
- (propagated-inputs (list ocaml5.0-merlin-lib))
+ (propagated-inputs (list ocaml5.1-merlin-lib))
(synopsis "Reads config files for @code{ocaml-merlin}")
(description "@code{ocaml-dot-merlin-reader} is an external reader for
@code{ocaml-merlin} configurations."))))
@@ -6163,7 +6193,7 @@ interfaces and the standard higher-level merlin protocol.")
(when tests?
(invoke "dune" "runtest" "-p" "merlin,dot-merlin-reader")))))))
(propagated-inputs (list ocaml-merlin-lib ocaml-yojson))
- (properties `((ocaml5.0-variant . ,(delay ocaml5.0-merlin))))
+ (properties `((ocaml5.1-variant . ,(delay ocaml5.1-merlin))))
(native-inputs
(list ocaml-dot-merlin-reader ; required for tests
ocaml-ppxlib
@@ -6176,8 +6206,8 @@ External contributors added support for Visual Studio Code, Sublime Text and
Atom.")
(license license:expat)))
-(define-public ocaml5.0-merlin
- (package-with-ocaml5.0
+(define-public ocaml5.1-merlin
+ (package-with-ocaml5.1
(package
(inherit ocaml-merlin-lib-500)
(name "ocaml-merlin")
@@ -6431,7 +6461,7 @@ rules than the default pretty printer in Sexplib.")
(build-system dune-build-system)
(propagated-inputs
(list ocaml-sexplib0))
- (properties `((ocaml5.0-variant . ,(delay ocaml5.0-base))))
+ (properties `((ocaml5.1-variant . ,(delay ocaml5.1-base))))
(synopsis
"Full standard library replacement for OCaml")
(description
@@ -6446,12 +6476,12 @@ provided by companion libraries such as
@url{https://github.com/janestreet/stdio, ocaml-stdio}.")
(license license:expat)))
-(define-public ocaml5.0-base
+(define-public ocaml5.1-base
;; This version contains fixes for OCaml 5.0
;; (see https://github.com/ocaml/opam-repository/pull/21851)
(let ((commit "423dbad212f55506767d758b1ceb2d6e0ee8e7f5")
(revision "0"))
- (package-with-ocaml5.0
+ (package-with-ocaml5.1
(package
(inherit ocaml-base)
(name "ocaml-base")
@@ -6462,7 +6492,7 @@ provided by companion libraries such as
(uri (git-reference
(url "https://github.com/kit-ty-kate/base")
(commit commit)))
- (file-name (git-file-name "ocaml5.0-base" version))
+ (file-name (git-file-name "ocaml5.1-base" version))
(sha256
(base32
"15vsiv3q53l1bzrvqgspf3lp2104s9dzw62z3nl75f53jvjvsyf6"))))
@@ -7369,7 +7399,7 @@ useful errors on failure.")
ocaml-migrate-parsetree
ocaml-re))
(properties `((upstream-name . "ppx_expect")
- (ocaml5.0-variant . ,(delay ocaml5.0-ppx-expect))))
+ (ocaml5.1-variant . ,(delay ocaml5.1-ppx-expect))))
(home-page "https://github.com/janestreet/ppx_expect")
(synopsis "Cram like framework for OCaml")
(description "Expect-test is a framework for writing tests in OCaml, similar
@@ -7379,12 +7409,12 @@ output-generating code, interleaved with @code{%expect} extension expressions
to denote the expected output.")
(license license:asl2.0)))
-(define-public ocaml5.0-ppx-expect
+(define-public ocaml5.1-ppx-expect
;; Contains fixes for OCaml 5.0
;; (https://github.com/janestreet/ppx_expect/pull/39/).
(let ((commit "83edfc1ee779e8dcdd975e26715c2e688326befa")
(revision "0"))
- (package-with-ocaml5.0
+ (package-with-ocaml5.1
(package
(inherit ocaml-ppx-expect)
(name "ocaml-ppx-expect")
@@ -9235,15 +9265,15 @@ document and by the text width.")
ocaml-uunf
ocaml-uutf
ocaml-pprint))
- (properties `((ocaml5.0-variant . ,(delay ocaml5.0-crowbar))))
+ (properties `((ocaml5.1-variant . ,(delay ocaml5.1-crowbar))))
(synopsis "Ocaml library for tests, let a fuzzer find failing cases")
(description "Crowbar is a library for testing code, combining
QuickCheck-style property-based testing and the magical bug-finding powers of
@uref{http://lcamtuf.coredump.cx/afl/, afl-fuzz}.")
(license license:expat)))
-(define-public ocaml5.0-crowbar
- (package-with-ocaml5.0
+(define-public ocaml5.1-crowbar
+ (package-with-ocaml5.1
(package
(inherit ocaml-crowbar)
;; Tests require ocaml-calendar which does not work with OCaml 5.0
diff --git a/guix/build-system/ocaml.scm b/guix/build-system/ocaml.scm
index 582d00b4cd..607e6dca60 100644
--- a/guix/build-system/ocaml.scm
+++ b/guix/build-system/ocaml.scm
@@ -31,8 +31,8 @@
strip-ocaml4.07-variant
package-with-ocaml4.09
strip-ocaml4.09-variant
- package-with-ocaml5.0
- strip-ocaml5.0-variant
+ package-with-ocaml5.1
+ strip-ocaml5.1-variant
default-findlib
default-ocaml
lower
@@ -112,17 +112,17 @@
(let ((module (resolve-interface '(gnu packages ocaml))))
(module-ref module 'ocaml4.09-dune)))
-(define (default-ocaml5.0)
+(define (default-ocaml5.1)
(let ((ocaml (resolve-interface '(gnu packages ocaml))))
- (module-ref ocaml 'ocaml-5.0)))
+ (module-ref ocaml 'ocaml-5.1)))
-(define (default-ocaml5.0-findlib)
+(define (default-ocaml5.1-findlib)
(let ((module (resolve-interface '(gnu packages ocaml))))
- (module-ref module 'ocaml5.0-findlib)))
+ (module-ref module 'ocaml5.1-findlib)))
-(define (default-ocaml5.0-dune)
+(define (default-ocaml5.1-dune)
(let ((module (resolve-interface '(gnu packages ocaml))))
- (module-ref module 'ocaml5.0-dune)))
+ (module-ref module 'ocaml5.1-dune)))
(define* (package-with-explicit-ocaml ocaml findlib dune old-prefix new-prefix
#:key variant-property)
@@ -212,18 +212,18 @@ pre-defined variants."
(inherit p)
(properties (alist-delete 'ocaml4.09-variant (package-properties p)))))
-(define package-with-ocaml5.0
- (package-with-explicit-ocaml (delay (default-ocaml5.0))
- (delay (default-ocaml5.0-findlib))
- (delay (default-ocaml5.0-dune))
- "ocaml-" "ocaml5.0-"
- #:variant-property 'ocaml5.0-variant))
+(define package-with-ocaml5.1
+ (package-with-explicit-ocaml (delay (default-ocaml5.1))
+ (delay (default-ocaml5.1-findlib))
+ (delay (default-ocaml5.1-dune))
+ "ocaml-" "ocaml5.1-"
+ #:variant-property 'ocaml5.1-variant))
-(define (strip-ocaml5.0-variant p)
- "Remove the 'ocaml5.0-variant' property from P."
+(define (strip-ocaml5.1-variant p)
+ "Remove the 'ocaml5.1-variant' property from P."
(package
(inherit p)
- (properties (alist-delete 'ocaml5.0-variant (package-properties p)))))
+ (properties (alist-delete 'ocaml5.1-variant (package-properties p)))))
(define* (lower name
#:key source inputs native-inputs outputs system target