diff --git a/_odoc-theme/manual.css b/_odoc-theme/manual.css index 5e17c4d3..92a1b438 100644 --- a/_odoc-theme/manual.css +++ b/_odoc-theme/manual.css @@ -3,8 +3,8 @@ @import url("theme.css"); /* Copyright (c) 2019 The odig programmers. All rights reserved. - SPDX-License-Identifier: ISC - odig v0.1.0 */ + Distributed under the ISC license, see terms at the end of the file. + odig v0.0.9 */ :root { --font-headings: "PT-Sans-Caption"; --font-body: "PT-Sans"; @@ -373,4 +373,4 @@ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ \ No newline at end of file +*/ diff --git a/_odoc-theme/odoc.css b/_odoc-theme/odoc.css index c6362b73..1dbc9da2 100644 --- a/_odoc-theme/odoc.css +++ b/_odoc-theme/odoc.css @@ -3,7 +3,7 @@ @import url("theme.css"); /* Copyright (c) 2019 The odig programmers. All rights reserved. - SPDX-License-Identifier: ISC */ + Distributed under the ISC license, see terms at the end of the file. */ /* Reset a few things. */ @@ -62,7 +62,7 @@ table { border-collapse: collapse; border-spacing: 0; } .odoc-nav { grid-area: nav; } .odoc-preamble { grid-area: header; } .odoc-content { grid-area: content; margin: 0 } -.odoc-tocs +.odoc-toc { grid-area: toc; margin-top: var(--size-line); border-top: solid thin var(--color-rule); } @@ -331,4 +331,4 @@ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ \ No newline at end of file +*/ diff --git a/either/index.html b/either/index.html index 77634eab..3202d556 100644 --- a/either/index.html +++ b/either/index.html @@ -1,2 +1,2 @@ -index (either.index)

Package either 1.0.0

Package info

authors
  • Craig Ferguson <me@craigfe.io>
changes-files
depends
homepage
issues
license
  • MIT
license-files
maintainers
  • Craig Ferguson <me@craigfe.io>
online-doc
readme-files
repo
  • git+https://github.com/mirage/either.git
version
  • 1.0.0
+index (either.index)

Package either 1.0.0

Package info

authors
  • Craig Ferguson <me@craigfe.io>
changes-files
depends
homepage
issues
license
  • MIT
license-files
maintainers
  • Craig Ferguson <me@craigfe.io>
online-doc
readme-files
repo
  • git+https://github.com/mirage/either.git
version
  • 1.0.0
diff --git a/hmap/index.html b/hmap/index.html index 2b6042f4..c6344176 100644 --- a/hmap/index.html +++ b/hmap/index.html @@ -1,2 +1,2 @@ -index (hmap.index)

Package hmap 0.8.1

Package info

authors
  • Daniel Bünzli <daniel.buenzl i@erratique.ch>
changes-files
depends
homepage
issues
license
  • ISC
license-files
maintainers
  • Daniel Bünzli <daniel.buenzl i@erratique.ch>
online-doc
readme-files
repo
  • git+http://erratique.ch/repos/hmap.git
tags
version
  • 0.8.1
+index (hmap.index)

Package hmap 0.8.1

Package info

authors
  • Daniel Bünzli <daniel.buenzl i@erratique.ch>
changes-files
depends
homepage
issues
license
  • ISC
license-files
maintainers
  • Daniel Bünzli <daniel.buenzl i@erratique.ch>
online-doc
readme-files
repo
  • git+http://erratique.ch/repos/hmap.git
tags
version
  • 0.8.1
diff --git a/index.html b/index.html index 61e0247e..c4d6c904 100644 --- a/index.html +++ b/index.html @@ -1,2 +1,2 @@ -_opam

OCaml package documentation

Browse by name, by tag, the standard library and the OCaml manual (online, latest version).

Generated for /root/w/_opam/lib

Packages by name

e

  1. either 1.0.0 Compatibility Either module

h

  1. hmap 0.8.1

l

  1. lwt 5.9.2 Promises and event-driven I/O

m

  1. moonpool 1136191 Pools of threads supported by a pool of domains
  2. moonpool-lwt 1136191 Event loop for moonpool based on Lwt-engine (experimental)

o

  1. ocaml

p

  1. picos 0.6.0 Pico scheduler interface

t

  1. thread-local-storage da80e1a Efficient thread local storage for OCaml

Packages by tag

data-structure

  1. hmap 0.8.1

domain

  1. moonpool 1136191 Pools of threads supported by a pool of domains

fork-join

  1. moonpool 1136191 Pools of threads supported by a pool of domains

futures

  1. moonpool 1136191 Pools of threads supported by a pool of domains

org:erratique

  1. hmap 0.8.1

pool

  1. moonpool 1136191 Pools of threads supported by a pool of domains

thread

  1. moonpool 1136191 Pools of threads supported by a pool of domains

threads

  1. thread-local-storage da80e1a Efficient thread local storage for OCaml

tls

  1. thread-local-storage da80e1a Efficient thread local storage for OCaml

topics

  1. thread-local-storage da80e1a Efficient thread local storage for OCaml
\ No newline at end of file +_opam

OCaml package documentation

Browse by name, by tag, the standard library and the OCaml manual (online, latest version).

Generated for /root/w/_opam/lib

Packages by name

e

  1. either 1.0.0 Compatibility Either module

h

  1. hmap 0.8.1

l

  1. lwt 5.9.2 Promises and event-driven I/O

m

  1. moonpool 1136191 Pools of threads supported by a pool of domains
  2. moonpool-lwt 1136191 Event loop for moonpool based on Lwt-engine (experimental)

o

  1. ocaml

p

  1. picos 0.6.0 Pico scheduler interface

t

  1. thread-local-storage da80e1a Efficient thread local storage for OCaml

Packages by tag

data-structure

  1. hmap 0.8.1

domain

  1. moonpool 1136191 Pools of threads supported by a pool of domains

fork-join

  1. moonpool 1136191 Pools of threads supported by a pool of domains

futures

  1. moonpool 1136191 Pools of threads supported by a pool of domains

org:erratique

  1. hmap 0.8.1

pool

  1. moonpool 1136191 Pools of threads supported by a pool of domains

thread

  1. moonpool 1136191 Pools of threads supported by a pool of domains

threads

  1. thread-local-storage da80e1a Efficient thread local storage for OCaml

tls

  1. thread-local-storage da80e1a Efficient thread local storage for OCaml

topics

  1. thread-local-storage da80e1a Efficient thread local storage for OCaml
\ No newline at end of file diff --git a/lwt/index.html b/lwt/index.html index c85c32e3..c982d5bd 100644 --- a/lwt/index.html +++ b/lwt/index.html @@ -22,4 +22,4 @@ let () = | Some response -> print_string response | None -> prerr_endline "Request timed out"; exit 1 -(* ocamlfind opt -package lwt.unix -linkpkg example.ml && ./a.out *)

In the program, functions such as Lwt_io.write create promises. The let%lwt ... in construct is used to wait for a promise to become determined; the code after in is scheduled to run in a "callback." Lwt.pick races promises against each other, and behaves as the first one to complete. Lwt_main.run forces the whole promise-computation network to be executed. All the visible OCaml code is run in a single thread, but Lwt internally uses a combination of worker threads and non-blocking file descriptors to resolve in parallel the promises that do I/O.

Tour

Lwt compiles to native code on Linux, macOS, Windows, and other systems. It's also routinely compiled to JavaScript for the front end and Node by js_of_ocaml.

In Lwt,

Installing

  1. Use your system package manager to install a development libev package. It is often called libev-dev or libev-devel.
  2. opam install conf-libev lwt

Additional Docs

API: Library lwt

This is the system-independent, pure-OCaml core of Lwt. To link with it, use (libraries lwt) in your dune file.

API: Library lwt.unix

This is the system call and I/O library. Despite its name, it is implemented on both Unix-like systems and Windows, although not all functions are available on Windows. To link with this library, use (libraries lwt.unix) in your dune file.

Package info

authors
  • Jérémie Dimino
  • Jérôme Vouillon
changes-files
depends
homepage
issues
license
  • MIT
license-files
maintainers
  • Anton Bachin <antonbachin@yahoo.com>
  • Raphaël Proust <code@bnwr.net>
online-doc
readme-files
repo
  • git+https://github.com/ocsigen/lwt.git
version
  • 5.9.2
+(* ocamlfind opt -package lwt.unix -linkpkg example.ml && ./a.out *)

In the program, functions such as Lwt_io.write create promises. The let%lwt ... in construct is used to wait for a promise to become determined; the code after in is scheduled to run in a "callback." Lwt.pick races promises against each other, and behaves as the first one to complete. Lwt_main.run forces the whole promise-computation network to be executed. All the visible OCaml code is run in a single thread, but Lwt internally uses a combination of worker threads and non-blocking file descriptors to resolve in parallel the promises that do I/O.

Tour

Lwt compiles to native code on Linux, macOS, Windows, and other systems. It's also routinely compiled to JavaScript for the front end and Node by js_of_ocaml.

In Lwt,

Installing

  1. Use your system package manager to install a development libev package. It is often called libev-dev or libev-devel.
  2. opam install conf-libev lwt

Additional Docs

API: Library lwt

This is the system-independent, pure-OCaml core of Lwt. To link with it, use (libraries lwt) in your dune file.

API: Library lwt.unix

This is the system call and I/O library. Despite its name, it is implemented on both Unix-like systems and Windows, although not all functions are available on Windows. To link with this library, use (libraries lwt.unix) in your dune file.

Package info

authors
  • Jérémie Dimino
  • Jérôme Vouillon
changes-files
depends
homepage
issues
license
  • MIT
license-files
maintainers
  • Anton Bachin <antonbachin@yahoo.com>
  • Raphaël Proust <code@bnwr.net>
online-doc
readme-files
repo
  • git+https://github.com/ocsigen/lwt.git
version
  • 5.9.2
diff --git a/ocaml/index.html b/ocaml/index.html index 2624259f..5f6f7ea8 100644 --- a/ocaml/index.html +++ b/ocaml/index.html @@ -1,2 +1,2 @@ -index (ocaml.index)

Package ocaml

Library stdlib

Library unix

Library runtime_events

Library str

Library threads

Library ocamldoc

Library compiler-libs

Package info

changes-files
license-files
readme-files
+index (ocaml.index)

Package ocaml

Stdlib

Threads

Compiler libs

Package info

changes-files
license-files
readme-files
diff --git a/picos/index.html b/picos/index.html index d65e97cd..e2780fef 100644 --- a/picos/index.html +++ b/picos/index.html @@ -1,2 +1,2 @@ -index (picos.index)

Package picos 0.6.0

This packages contains the core Picos interface library and auxiliary libraries for dealing with the OCaml multithreading architecture.

Libraries

Introduction

Picos is a systems programming interface between effects based schedulers and concurrent abstractions. Picos is designed to enable an ecosystem of interoperable elements of effects based cooperative concurrent programming models such as

If you are the author of an application level concurrent programming library or framework, then Picos should not fundamentally be competing with your work. However, Picos and libraries built on top of Picos probably do have overlap with your work and making your work Picos compatible may offer benefits:

Of course, interoperability does have some costs. It takes time to understand Picos and it takes time to implement Picos compatibility. Implementing your programming model elements in terms of the Picos interface may not always give ideal results. To address concerns such as those, a conscious effort has been made to keep Picos as minimal and unopinionated as possible.

Interoperability

Picos is essentially an interface between schedulers and concurrent abstractions. Two phrases, Picos compatible and Implemented in Picos, are used to describe the opposing sides of this contract.

Picos compatible

The idea is that schedulers provide their own handlers for the Picos effects. By handling the Picos effects a scheduler allows any libraries built on top of the Picos interface to be used with the scheduler. Such a scheduler is then said to be Picos compatible.

Implemented in Picos

A scheduler is just one element of a concurrent programming model. Separately from making a scheduler Picos compatible, one may choose to implement other elements of the programming model, e.g. a particular approach to structuring concurrency or a particular collection of communication and synchronization primitives, in terms of the Picos interface. Such scheduler agnostic elements can then be used on any Picos compatible scheduler and are said to be Implemented in Picos.

Design goals and principles

The core of Picos is designed and developed with various goals and principles in mind.

The documentation of the concepts includes design rationale for some of the specific ideas behind their detailed design.

Constraints Liberate, Liberties Constrain

Picos aims to be unopinionated and flexible enough to allow higher level libraries to provide many different kinds of concurrent programming models. While it is impossible to give a complete list of what Picos does not dictate, it is perhaps illuminating to explicitly mention some of those:

Let's build an incredible ecosystem of interoperable concurrent programming libraries and frameworks!

Conventions

Many operation in the Picos libraries use non-blocking algorithms. Unless explicitly specified otherwise,

Package info

authors
  • Vesa Karvonen <vesa.a.j.k@gmail.com>
changes-files
depends
homepage
issues
license
  • ISC
license-files
maintainers
  • Vesa Karvonen <vesa.a.j.k@gmail.com>
readme-files
repo
  • git+https://github.com/ocaml-multicore/picos.git
version
  • 0.6.0
+index (picos.index)

Package picos 0.6.0

This packages contains the core Picos interface library and auxiliary libraries for dealing with the OCaml multithreading architecture.

Libraries

Introduction

Picos is a systems programming interface between effects based schedulers and concurrent abstractions. Picos is designed to enable an ecosystem of interoperable elements of effects based cooperative concurrent programming models such as

If you are the author of an application level concurrent programming library or framework, then Picos should not fundamentally be competing with your work. However, Picos and libraries built on top of Picos probably do have overlap with your work and making your work Picos compatible may offer benefits:

Of course, interoperability does have some costs. It takes time to understand Picos and it takes time to implement Picos compatibility. Implementing your programming model elements in terms of the Picos interface may not always give ideal results. To address concerns such as those, a conscious effort has been made to keep Picos as minimal and unopinionated as possible.

Interoperability

Picos is essentially an interface between schedulers and concurrent abstractions. Two phrases, Picos compatible and Implemented in Picos, are used to describe the opposing sides of this contract.

Picos compatible

The idea is that schedulers provide their own handlers for the Picos effects. By handling the Picos effects a scheduler allows any libraries built on top of the Picos interface to be used with the scheduler. Such a scheduler is then said to be Picos compatible.

Implemented in Picos

A scheduler is just one element of a concurrent programming model. Separately from making a scheduler Picos compatible, one may choose to implement other elements of the programming model, e.g. a particular approach to structuring concurrency or a particular collection of communication and synchronization primitives, in terms of the Picos interface. Such scheduler agnostic elements can then be used on any Picos compatible scheduler and are said to be Implemented in Picos.

Design goals and principles

The core of Picos is designed and developed with various goals and principles in mind.

The documentation of the concepts includes design rationale for some of the specific ideas behind their detailed design.

Constraints Liberate, Liberties Constrain

Picos aims to be unopinionated and flexible enough to allow higher level libraries to provide many different kinds of concurrent programming models. While it is impossible to give a complete list of what Picos does not dictate, it is perhaps illuminating to explicitly mention some of those:

Let's build an incredible ecosystem of interoperable concurrent programming libraries and frameworks!

Conventions

Many operation in the Picos libraries use non-blocking algorithms. Unless explicitly specified otherwise,

Package info

authors
  • Vesa Karvonen <vesa.a.j.k@gmail.com>
changes-files
depends
homepage
issues
license
  • ISC
license-files
maintainers
  • Vesa Karvonen <vesa.a.j.k@gmail.com>
readme-files
repo
  • git+https://github.com/ocaml-multicore/picos.git
version
  • 0.6.0