Am Samstag, dem 01.07.2023 um 17:43 +0000 schrieb Anders Ågren Thuné:
Toggle quote (30 lines)
> * gnu/packages/ocaml.scm (ocaml-owl): New variable.
> ---
> gnu/packages/ocaml.scm | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
> index 83077addb0..f118c1289e 100644
> --- a/gnu/packages/ocaml.scm
> +++ b/gnu/packages/ocaml.scm
> @@ -2797,6 +2797,34 @@ (define-public ocaml-toml
> OCaml primitive types are also supplied.")
> (license license:lgpl3)))
>
> +(define-public ocaml-owl
> + (package
> + (name "ocaml-owl")
> + (version "1.1")
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/owlbarn/owl")
> + (commit version)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> +
> "08jvgf1fd7d28cxxjifx4ikmwcbfbiyw0sivw3xy4vdzvbyc9xw9"))))
> + (build-system dune-build-system)
> + (propagated-inputs (list openblas zlib ocaml-ctypes ocaml-npy
> ocaml-compiler-libs))
I'm pretty sure some of those inputs shouldn't be propagated.
Toggle quote (13 lines)
> + (native-inputs (list ocaml-alcotest ocaml-base ocaml-stdio))
> + (home-page "https://github.com/owlbarn/owl")
> + (synopsis "OCaml Scientific and Engineering Computing")
> + (description
> + "Owl is an OCaml numerical library. It supports N-dimensional
> +arrays, both dense and sparse matrix operations, linear algebra,
> +regressions, fast Fourier transforms, and many advanced mathematical
> +and statistical functions (such as Markov chain Monte Carlo
> methods).
> +Recently, Owl has implemented algorithmic differentiation which
> +simplifies developing machine learning and neural network
> +algorithms.")
> + (license license:expat)))
This package sadly fails to build on aarch64 and probably also has
issues on other architectures, as it assumes some build flags specific
to x86_64 (see the CI build logs). These should be stripped in a
patch, snippet or pre-build phase. If these flags are there for
performance reasons, you should instead mark the package as tunable.
Cheers