checked_oint

checked_oint is an OCaml library for checked integer arithmetic. We support the full set of signed and unsigned integers of bitnesses 8, 16, 32, 64, and 128.

Installation

$ opam install checked_oint

Usage

open Checked_oint

let () =
  let x = U8.of_int_exn 50 in
  let y = U8.of_int_exn 70 in
  assert (U8.equal (U8.add_exn x y) (U8.of_int_exn 120));
  assert (Option.is_none (U8.mul x y))

You can find the API documentation here.

Implementation

Release procedure

  1. Update the version field in dune-project.
  2. Type dune build to generate checked_oint.opam.
  3. Update CHANGELOG.md.
  4. Release the project in GitHub Releases.

    1. Generate a source code archive and include it in the release:
      git archive HEAD -o checked_oint-<major>.<minor>.<patch>.tar.gz
  5. Type git pull && opam publish.

    1. Specify the correct archive URL and checksums (by running md5sum and sha512sum on the archive).
On the stability of source code archives

Including the output of git archive is needed because GitHub does not guarantee stability of source code archives. With a static asset, we will always get the same checksum, which is crucial for packaging.