Skip to content

mirage/semaphore-compat

Repository files navigation

Compatibility Semaphore module

Build Status

Projects that want to use the Semaphore module defined in OCaml 4.12.0 while staying compatible with older versions of OCaml should use this library instead. On OCaml versions 4.12 and above, this library defines an alias Semaphore to the standard library's definition of the module. Otherwise, it provides an equivalent definition of Semaphore.

Depending on this library

Opam libraries depending on this module are encouraged to use a conditional dependency:

depends: [
  ("ocaml" {>= "4.12.0"} | "semaphore-compat")
]

This ensures that any dependencies of your library that don't need pre-4.12 compatibility will never transitively depend on semaphore-compat.


Acknowledgements

This repository structure is mostly copied from JaneStreet/result, which provides a compatibility result type. Thanks to the OCaml maintainers for their improvements to the standard library.