package integers

  1. Overview
  2. Docs
Various signed and unsigned integer types for OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

0.7.0.tar.gz
sha256=8bb517fa9a1818246eb8c4ce34ee1489fbebb4b92defa3a25d13cab8d23ec685
md5=201cf24143d7cb9a3921d572b6e6c42c

Description

Published: 23 Mar 2022

README

ocaml-integers

The ocaml-integers library provides a number of 8-, 16-, 32- and 64-bit signed and unsigned integer types, together with aliases such as long and size_t whose sizes depend on the host platform.

Features

  • The interfaces follow the pattern of the signatures of the Int32, Int64, and Nativeint modules in the OCaml standard library.

    The behaviour also follows the standard library; for example, conversions such as of_int truncate, and operations are "modulo" in general:

    # Unsigned.UInt8.(pred zero);;
    - : Unsigned.UInt8.t = <uint8 255>
    
  • Top-level printers for each type are included

    # Unsigned.UInt32.[of_int 103; one; of_string "1000"];; 
    - : Unsigned.UInt32.t list = [<uint32 103>; <uint32 1>; <uint32 1000>]
    
  • Infix operators are available:

    # Unsigned.UInt32.(Infix.(one + one));;
    - : Unsigned.UInt32.t = <uint32 2>
    
  • Polymorphic operations such as comparison behave correctly:

    # open Unsigned.UInt32
    # zero < one;;
    - : bool = true
    # max_int < zero;;
    - : bool = false
    
  • Integers 32 bits and above are boxed; integers below 32 bits are unboxed.

    # Obj.(tag (repr Unsigned.UInt32.zero));;
    - : int = 255
    # Obj.(tag (repr Unsigned.UInt16.zero));;
    - : int = 1000
    

Using integers with js_of_ocaml

The integers_stubs_js package provides JavaScript stubs that make it possible to use this library with js_of_ocaml

API documentation

Dependencies (3)

  1. stdlib-shims
  2. dune >= "1.0"
  3. ocaml >= "4.03"

Dev Dependencies

None

Used by (25)

  1. bls12-381 >= "3.0.0"
  2. bls12-381-unix >= "1.1.0"
  3. class_group_vdf
  4. ctypes >= "0.15.0"
  5. ctypes-foreign >= "0.21.1"
  6. extism >= "1.1.0"
  7. llama-cpp-ocaml
  8. luv >= "0.5.13"
  9. nsq
  10. octez-libs
  11. owi
  12. owl-base = "0.7.0"
  13. pb
  14. pb-plugin
  15. pkcs11 >= "1.0.1"
  16. posix-base
  17. ppx_cstubs >= "0.5.0.2" & < "0.6.0" | >= "0.6.1.2"
  18. quickjs
  19. randii
  20. raylib >= "0.5.1"
  21. server-reason-react >= "0.3.0"
  22. srt >= "0.2.0"
  23. tezos-sapling >= "11.0"
  24. unix-errno >= "0.6.0"
  25. zstd >= "0.3"

Conflicts

None

OCaml

Innovation. Community. Security.