effects-bibliography VS ocaml-multicore

Compare effects-bibliography vs ocaml-multicore and see what are their differences.

effects-bibliography

A collaborative bibliography of work related to the theory and practice of computational effects (by yallop)
WorkOS - The modern identity platform for B2B SaaS
The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
workos.com
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
effects-bibliography ocaml-multicore
5 8
909 763
- 0.1%
7.2 0.0
15 days ago over 1 year ago
OCaml
- GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

effects-bibliography

Posts with mentions or reviews of effects-bibliography. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-09-27.
  • Better Java logging, inspired by Clojure and Rust
    2 projects | /r/java | 27 Sep 2022
    In addition to those 2 (which I think have phenomenal documentation), the language Eff has more theoretical introduction. There is also the Effect bibliography which has a lot of different effect system in different languages, as well as tutorials and academic papers on the subject.
  • How Side Effects Work in FP
    2 projects | news.ycombinator.com | 23 Mar 2022
  • Effects bibliography – bibliography of work related to computational effects
    1 project | news.ycombinator.com | 5 Feb 2022
  • Effekt, a research language with effect handlers and lightweight polymorphism
    6 projects | news.ycombinator.com | 19 Nov 2021
    I think it goes back to the neverending quest to find ways of representing computation that allows of ease of composition, changing implementation details, eliminating classes of errors by construction, etc. Monads have had some success in this arena, but they have notable issues with composition; monad transformers help, but can become unwieldy in their own ways.

    An alternative are effects, hypothetically allowing for ease in building programs as separate but composeable components which can then be freely mixed in or swapped out. In practice I have found working with effect systems in Haskell via libraries stresses the type system so much you end up with scoped type variables and type applications everywhere. My understanding is that the theory behind using effects to structure computations comes from category theory's Lawvere theories (see e.g. Pretnar's 2010 dissertation on https://github.com/yallop/effects-bibliography). Lawvere theories give rise to many monads (see Bartosz Milewski's article on it -- https://bartoszmilewski.com/2017/08/26/lawvere-theories/), but with nicer compositional properties.

    This is where languages like Effekt, Eff, Frank, and Koka come in -- by writing the entire language and type system to support the theories, a lot of the pain of expressing it in Haskell can be avoided.

  • Multicore OCaml: February 2021 with new preprint on Effect Handlers
    1 project | /r/ocaml | 12 Mar 2021
    Not really an answer but Jeremy Yallop maintains a bibliography on the theory and practice of computational effects.

ocaml-multicore

Posts with mentions or reviews of ocaml-multicore. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-12-21.
  • PR to Merge Multicore OCaml
    10 projects | news.ycombinator.com | 21 Dec 2021
    1. Domains are the unit of parallelism. A domain is essentially an OS thread with a bunch of extra runtime book-keeping data. You can use Domain.spawn (https://github.com/ocaml-multicore/ocaml-multicore/blob/5.00...) to spawn off a new domain which will run the supplied function and terminate when it finishes. This is heavyweight though, domains are expected to be long-running.

    2. Domainslib is the library developed alongside multicore to aid users in exploiting parallelism. It supports nested parallelism and is pretty highly optimised (https://github.com/ocaml-multicore/domainslib/pull/29 for some graphs/numbers). The domainslib repo has some good examples: https://github.com/ocaml-multicore/domainslib/tree/master/te...

    3. We've not tested against other forms of parallelism. There isn't anything stopping you exploiting SIMD in addition to parallelism from domains.

    4. No, we've not compared performance by OS.

    5. No plans for the multicore team to look at accelerator integration at the moment.

  • Will rust ever have a futures executor in std?
    3 projects | /r/rust | 24 Nov 2021
    For Algebraic Effects and Multicore OCaml specifically, I have this intro saved and they've been publishing regular updates here's October's. They have a paper linked from their repo's README but I don't remember the contents offhand.
  • Graydon Hoare: What's next for language design? (2017)
    4 projects | news.ycombinator.com | 21 Nov 2021
    Until recently Multicore OCaml was focused on deep handlers. The people working on the formalization of effects (either for program proofs or typed effects) were quite keen to have shallow handler integrated however. Thus, the effect module of the OCaml 5 preview contains both (see https://github.com/ocaml-multicore/ocaml-multicore/blob/5.00...) since September. I fear that non-academic literature has not followed this change (on the academic side, see https://dl.acm.org/doi/10.1145/3434314 for a program proofs point of view).
  • Multicore OCaml: September 2021, effect handlers will be in OCaml 5.0
    1 project | news.ycombinator.com | 1 Oct 2021
    Yes, it's announcing that the next but one version, 5.0, will support multicore and effect handlers.

    For what it's worth you can actually start using Multicore OCaml today, there are installation instructions on the wiki: https://github.com/ocaml-multicore/ocaml-multicore

  • Aren't green threads just better than async/await?
    4 projects | /r/ProgrammingLanguages | 20 Sep 2021
    ocaml-multicore/ocaml-multicore
  • Multicore OCaml: April 2021
    6 projects | news.ycombinator.com | 13 May 2021
    Could you explain (in simple terms if possible) how the Multicore OCaml achieves a memory model which is much simpler on more efficient than in Java or C (mentioned at https://github.com/ocaml-multicore/ocaml-multicore/wiki)?

    Didn't see any mentions of critical sections (mutexes) with C++ examples in the documentation ("Bounding Data Races in Space and Time"). I'm not sure I understand the comparisons the writers are presenting.

  • Multicore OCaml: Dec 2020 / Jan 2021
    3 projects | /r/ocaml | 8 Feb 2021
    There are getting started instructions up on https://github.com/ocaml-multicore/ocaml-multicore

What are some alternatives?

When comparing effects-bibliography and ocaml-multicore you can also consider the following projects:

effekt - A research language with effect handlers and lightweight effect polymorphism

eioio - Effects-based direct-style IO for multicore OCaml

koka - Koka language compiler and interpreter

domainslib - Parallel Programming over Domains

frank - Frank compiler

roast - 🦋 Raku test suite

functional-programming-jargon - Jargon from the functional programming world in simple terms!

enso - Hybrid visual and textual functional programming.

bumpalo - A fast bump allocation arena for Rust

loom - Concurrency permutation testing tool for Rust.

salsa - A generic framework for on-demand, incrementalized computation. Inspired by adapton, glimmer, and rustc's query system.

ocaml - The core OCaml system: compilers, runtime system, base libraries