LaurentMazare / npy-ocaml

Numpy file format support for ocaml.
Apache License 2.0
41 stars 10 forks source link

OCaml 5.2 support #11

Open kit-ty-kate opened 8 months ago

kit-ty-kate commented 8 months ago

OCaml 5.2 added support for float16 bigarrays and makes npy fail to build with:

#=== ERROR while compiling npy.0.0.9 ==========================================#
# context              2.2.0~beta2~dev | linux/x86_64 | ocaml-variants.5.2.0+trunk | file:///home/opam/opam-repository
# path                 ~/.opam/5.2/.opam-switch/build/npy.0.0.9
# command              ~/.opam/5.2/bin/dune build -p npy -j 1
# exit-code            1
# env-file             ~/.opam/log/npy-19-ee8120.env
# output-file          ~/.opam/log/npy-19-ee8120.out
### output ###
# (cd _build/default && /home/opam/.opam/5.2/bin/ocamlopt.opt -w -40 -g -I src/.npy.objs/byte -I src/.npy.objs/native -I /home/opam/.opam/5.2/lib/camlzip -I /home/opam/.opam/5.2/lib/ocaml/unix -I /home/opam/.opam/5.2/lib/zip -intf-suffix .ml -no-alias-deps -o src/.npy.objs/native/npy.cmx -c -impl src/npy.ml)
# File "src/npy.ml", lines 13-26, characters 4-68:
# 13 | ....match packed_kind with
# 14 |     | P Bigarray.Int32 -> "i4"
# 15 |     | P Bigarray.Int64 -> "i8"
# 16 |     | P Bigarray.Float32 -> "f4"
# 17 |     | P Bigarray.Float64 -> "f8"
# ...
# 23 |     | P Bigarray.Complex32 -> "c8" (* 2 32bits float. *)
# 24 |     | P Bigarray.Complex64 -> "c16" (* 2 64bits float. *)
# 25 |     | P Bigarray.Int -> failwith "Int is not supported"
# 26 |     | P Bigarray.Nativeint -> failwith "Nativeint is not supported."
# Error (warning 8 [partial-match]): this pattern-matching is not exhaustive.
# Here is an example of a case that is not matched:
# P Float16
# (cd _build/default && /home/opam/.opam/5.2/bin/ocamlc.opt -w -40 -g -bin-annot -I src/.npy.objs/byte -I /home/opam/.opam/5.2/lib/camlzip -I /home/opam/.opam/5.2/lib/ocaml/unix -I /home/opam/.opam/5.2/lib/zip -intf-suffix .ml -no-alias-deps -o src/.npy.objs/byte/npy.cmo -c -impl src/npy.ml)
# File "src/npy.ml", lines 13-26, characters 4-68:
# 13 | ....match packed_kind with
# 14 |     | P Bigarray.Int32 -> "i4"
# 15 |     | P Bigarray.Int64 -> "i8"
# 16 |     | P Bigarray.Float32 -> "f4"
# 17 |     | P Bigarray.Float64 -> "f8"
# ...
# 23 |     | P Bigarray.Complex32 -> "c8" (* 2 32bits float. *)
# 24 |     | P Bigarray.Complex64 -> "c16" (* 2 64bits float. *)
# 25 |     | P Bigarray.Int -> failwith "Int is not supported"
# 26 |     | P Bigarray.Nativeint -> failwith "Nativeint is not supported."
# Error (warning 8 [partial-match]): this pattern-matching is not exhaustive.
# Here is an example of a case that is not matched:
# P Float16
kit-ty-kate commented 7 months ago

Update: beta1 got released today