[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#69185] [PATCH master] gnu: ocaml: Update to 5.1.1
From: |
pukkamustard |
Subject: |
[bug#69185] [PATCH master] gnu: ocaml: Update to 5.1.1 |
Date: |
Sun, 24 Mar 2024 06:57:12 +0000 |
Thanks!
I wonder how useful the OCaml compiler itself is without a
`package-with-ocaml5.1` transformation? The `ocaml` package itself just
provides the compiler but no nice way (afaik) of using the compiler with
dependencies and all. Do you think it would make sense to add a
`package-with-ocaml5.1` transformation in `(guix build-system ocaml)`?
Maybe even better we can replace the OCaml 5.0 compiler with a newer
version. The only packages depending on ocaml-5.0 are ocaml5.0-merlin
and ocaml5.0-eio. They could be updated to use a newer OCaml
version. Maybe no point in keeping OCaml 5.0 around. What do you think?
-pukkamustard
Marc Coquand <marc@mccd.space> writes:
> * gnu/packages/ocaml.scm (ocaml): Update to 5.1.1
>
> Change-Id: Ie95f2e31185a5f5ef345839d357d5768e4299fcc
> ---
> gnu/packages/ocaml.scm | 56 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 56 insertions(+)
>
> diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
> index 0f4c351141..f7b9f9b81a 100644
> --- a/gnu/packages/ocaml.scm
> +++ b/gnu/packages/ocaml.scm
> @@ -191,6 +191,62 @@ (define-public camlboot
> This package produces a native @command{ocamlc} and a bytecode
> @command{ocamllex}.")
> (license license:expat))))
>
> +(define-public ocaml-5.1
> + (package
> + (name "ocaml")
> + (version "5.1.1")
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/ocaml/ocaml")
> + (commit version)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32 "19sjc8r2c78y7g47jjxb1c30zzvkdhgy8yp3i1kkz1hm6nj96adr"))))
> + (build-system gnu-build-system)
> + (native-search-paths
> + (list (search-path-specification
> + (variable "OCAMLPATH")
> + (files (list "lib/ocaml" "lib/ocaml/site-lib")))
> + (search-path-specification
> + (variable "CAML_LD_LIBRARY_PATH")
> + (files (list "lib/ocaml/site-lib/stubslibs"
> + "lib/ocaml/site-lib/stublibs")))))
> + (native-inputs (list perl pkg-config))
> + (inputs (list libx11 libiberty ;needed for objdump support
> + zlib)) ;also needed for objdump support
> + (arguments
> + `(#:configure-flags '("--enable-ocamltest")
> + #:test-target "tests"
> + #:make-flags '("defaultentry")
> + #: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$")))))))))
> + (home-page "https://ocaml.org/")
> + (synopsis "The OCaml programming language")
> + (description
> + "OCaml is a general purpose industrial-strength programming language
> with
> +an emphasis on expressiveness and safety. Developed for more than 20 years
> at
> +Inria it benefits from one of the most advanced type systems and supports
> +functional, imperative and object-oriented styles of programming.")
> + ;; The compiler is distributed under qpl1.0 with a change to choice of
> + ;; law: the license is governed by the laws of France. The library is
> + ;; distributed under lgpl2.0.
> + (license (list license:qpl license:lgpl2.0))))
> +
> (define-public ocaml-5.0
> (package
> (name "ocaml")
>
> base-commit: 3cf199dbcf85a44fa8370e786e568fc3feb7067c
- [bug#69185] [PATCH master] gnu: ocaml: Update to 5.1.1,
pukkamustard <=