ocaml-multicore / effects-examples Goto Github PK
View Code? Open in Web Editor NEWExamples to illustrate the use of algebraic effects in Multicore OCaml
License: ISC License
Examples to illustrate the use of algebraic effects in Multicore OCaml
License: ISC License
I installed the 5.0.0 today (29 June 2023)
Error 1
Did a make: File "aio/dune", line 3, characters 12-16:
3 | (libraries unix)
^^^^
Error: Library "unix" in /home/doug/.opam/5.0.0/lib/ocaml is hidden
*** fix
In .opam/5.0.0/lib/ocaml
I did: cp unix/unix* .
which fixed this problem
Error 2
Did a make: File "mvar/dune", line 3, characters 24-32:
3 | (libraries threads lwt lwt.unix)
^^^^^^^^
Error: Library "lwt.unix" not found.
*** fix
opam install conduit-lwt-unix
Building the examples may break due to upstream changes as seen in #14. So add support for travis-ci to test for these breakages automatically. It appears that the popular way to test OCaml projects is to use ocaml-ci-scripts. The scripts need to be updated to work with the Multicore OCaml compiler.
The CI fails on MacOS with a time out but passes on Linux: https://travis-ci.org/github/ocaml-multicore/effects-examples/builds/747136847
perhaps steps such as:
ocamlc ...
https://github.com/ocaml-multicore/effects-examples/blob/master/aio/aio.ml#L16 defines Yield
here, but it's not used anywhere in the rest of the scheduler. Was it supposed to be used somewhere or could we remove it?
(pointed out by @Leonidas-from-XIV)
Currently we use OCamlbuild. We should port the build system to dune.
Is the secondary compiler necessary now since systhreads work with multicore?
Dear effects examples maintainers,
thanks for the very nice examples on OCaml effects, they are very helpful!
@bhaktishh and I were looking into the promises.ml
example, however we have noticed that the way the test are written, it seems that we never call the Wait
effect, as all the promises are resolved immediately.
It seems to us that having a more complete test could be useful, what do you think?
We have a few ideas on how to solve this, let us know what do you think?
I guess the first to try would be to decouple promise creation from resolution, but we'd like to hear your opinion before trying to do a pull request.
Add the httpaf-based webserver.
PR #42 ported the examples in the repository root to use the new (or reintroduced) effect
syntax in handlers. The examples in directories aio/
, callback/
, multishot
, and mvar/
are yet to be ported.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.