CAMLextern rather than extern in caml_* forward declarations to support bytecode linking on Windows (@jonahbeckford, #157)x-maintenance-intent into OPAM file (@hannesm, #158)hash', a polymorphic variant (@reynir, @dinosaure, #150)fmt dependency lower-bound (@reynir, #152)get_into_bytes function and a fuzzer about it (@reynir, @dinosaure, #149)pkg-config dependency (@dinosuare, 1eff5c5)js_of_ocaml 5 (@hhugo, #144)test_conv.ml requires /dev/urandom) (@dinosaure, #138)digestif (@dinosaure, #141) This version of digestif breaks the compatibility with MirageOS 3 and ocaml-freestanding. This PR should unlock the ability to use dune-cache.ocamlformat.0.21.0 and remove bigarray-compat dependency (@hannesm, #134)sha3_keccakf) (@hannesm, #125)ocaml to run install.ml instead of a shebang (@Nymphium, #127)command -v instead of which (@Numphium, #126)@since meta-data in documentation (@c-cube, @dinosaure, #128)ocaml-solo5 provides __ocaml_solo5__ instead of __ocaml_freestanding__ (@dinosaure, #131)fmt library (@dinosaure, #121)esy support (@dinosaure, #115)esy installation (#104, @dinosaure)digestif. The idea is to provide a GADT which contains the type of the hash. From third-part libraries point-of-view, it's better to pattern-match with such information instead to use a polymorphic variant (as before).string (#101, @dinosaure, @hannesm) The key should not follow the same type as the digest value (string, bytes, bigstring). This update restricts the user to user only constant key (as a string).dune.2.6.0 (#97)ocamlformat.0.14.2 (#97)alcotest.1.0.0 (#95)stdlib-shims to keep compatibility with < ocaml.4.07.0< mirage-xen-posix.3.1.0 packages (@hannesm)Use experimental feature of variants with dune (@dinosaure, review @rgrinberg)
digestif requires at least dune.1.9.2
convenient_of_hex (@dinosaure, @hannesm, @cfcs) (#55)of_raw_string/to_raw_string (@samoht) (#57)digestif on solo5 and xen backends (@samoht)t is an abstract type (#58, #56)eqaf (@dinosaure, @cfcs, @hannesm) (constant-time equal function) (#33, #34, #48, #50, #52, #65)Obj.magic in common implementation (@dinosaure, @samoht) (#61, #62)of_raw_string function (@hcarty) (#63)digestif.{c,ocaml} and it needs to be the first of your dependencies.jbuilder/dunedigestif, we decide to delete *.Bytes.* and *.Bigstring.* sub-modules. We replace it by feed_{bytes,string,bigstring} (digest_, and hmac_ too)feedi_{bytes,string,bigstring}, digesti_{bytes,string,bigstring} and hmaci_{bytes,string,bigstring} (@hannesm, @cfcs)eq/neq functions (@cfcs)compare and unsafe_compare: compare is not a lexicographical comparison function (rename to unsafe_compare) (@cfcs)consistent_of_hex (@hannesm, @cfcs)feed_bytes and feed_bigstring for Bytes and Bigstringmtime) to decide to use the C stub or the OCaml implementation