Commit graph

149 commits

Author SHA1 Message Date
Simon Cruanes
9ce94fd242
feat fork_join: add map_array and map_list 2023-07-10 23:18:26 -04:00
Simon Cruanes
1cb5342092
expose Runner 2023-07-10 22:48:04 -04:00
Simon Cruanes
6c73afbe5b
perf: optimize Fut.for_ a bit
remove intermediate array.
2023-07-10 11:00:34 -04:00
Simon Cruanes
0f4e115bc0
doc 2023-07-10 01:31:12 -04:00
Simon Cruanes
f081c0f8ad
tweak: guess of chunk_size in Fork_join 2023-07-10 01:23:30 -04:00
Simon Cruanes
2326ae0078
modify Fork_join.for_ to avoid the allocator.
The allocator means calling a closure at each step, which means local
a reference will have to be heap allocated (and worse, that floats will
be unboxed). Instead we give the function a pair of low,high bounds for
a local for.
2023-07-10 01:19:16 -04:00
Simon Cruanes
55f831bc8b
add Fork_join.{for_,map_reduce_commutative} 2023-07-10 01:14:16 -04:00
Simon Cruanes
858755e812
feat: add Pool.with_ 2023-07-10 01:14:07 -04:00
Simon Cruanes
b080c962e1
test: use less aggressive numbers, my poor ram! 2023-07-10 00:01:37 -04:00
Simon Cruanes
ab675797fa
fix test 2023-07-09 22:35:39 -04:00
Simon Cruanes
e73c1a2966
tests: compat 4.x 2023-07-09 22:07:44 -04:00
Simon Cruanes
427c462778
compat 4.x 2023-07-09 22:05:42 -04:00
Simon Cruanes
68e744290b
add Chan.pop_await 2023-07-09 19:49:27 -04:00
Simon Cruanes
12df71c3ab
expose Suspend_ and its internal effect with an unstability alert 2023-07-09 19:49:27 -04:00
Simon Cruanes
e855c99bec
update doc for Fut 2023-07-09 19:49:27 -04:00
Simon Cruanes
39525af7ac
add documentation; expose Runner.For_runner_implementors.Suspend_ 2023-07-09 19:49:26 -04:00
Simon Cruanes
1d57ae8fbb
remove dead code 2023-07-09 19:49:26 -04:00
Simon Cruanes
76ca0f2d88
feat: add Runner, change Pool to produce a Runner.t
futures, chans, etc. should use the `Runner.t` abstraction
and not depend on the exact pool implementation to run tasks.

For now `Pool.create` is the only implementation of a runner, but now
it's possible to implement alternatives.
2023-07-09 19:49:25 -04:00
Simon Cruanes
30d2560a27
add π-computing benchmark 2023-07-09 19:49:25 -04:00
Simon Cruanes
2852741360
feat: add a Lock module 2023-07-09 19:49:25 -04:00
Simon Cruanes
b07d460b3f
port cpp.ml from containers, replace previous codegen with it
now OCaml 5-only features are truly available only on OCaml 5, instead
of just relying on the user reading the docstring.
2023-07-09 19:49:24 -04:00
Simon Cruanes
0780dcf703
fix warning 2023-07-06 09:46:33 -04:00
Simon Cruanes
2acf4b28eb feat: actually support domain-local-await if installed 2023-07-05 22:19:18 -04:00
Simon Cruanes
a266a42628 support for domain-local-await when installed 2023-07-05 22:19:18 -04:00
Simon Cruanes
27ec0f85e6 test: add more fork-join tests 2023-07-05 21:55:00 -04:00
Simon Cruanes
f46cc4f12c fix: Fork_join.both_ignore now has a more general type 2023-07-05 21:55:00 -04:00
Simon Cruanes
b346fa03af rename tests 2023-07-05 21:55:00 -04:00
Simon Cruanes
2db2bd9ba2 rename test dir 2023-07-05 21:55:00 -04:00
Simon Cruanes
bf43d9648e readme: try to make the random array deterministic 2023-07-05 21:55:00 -04:00
Simon Cruanes
4294e90929 readme: add a section on fork-join 2023-07-05 21:55:00 -04:00
Simon Cruanes
0f383e877a test: add a parallel quicksort 2023-07-05 21:55:00 -04:00
Simon Cruanes
03212e7478 fork-join: add both_ignore 2023-07-05 21:55:00 -04:00
Simon Cruanes
43487ebe49 add Fork_join.all_{list,init}
primitives to fork-join over n tasks
2023-07-05 21:55:00 -04:00
Simon Cruanes
45838d9607 fix: in fork-join, start sub-tasks within a handler 2023-07-05 21:55:00 -04:00
Simon Cruanes
3b9f56a138 add test for fork_join 2023-07-05 21:55:00 -04:00
Simon Cruanes
309424a58f move fork join into its own module 2023-07-05 21:55:00 -04:00
Simon Cruanes
009855ce0d feat: add Pool.fork_join 2023-07-05 21:55:00 -04:00
Simon Cruanes
2bbb4185a4
readme 2023-06-24 15:53:05 -04:00
Simon Cruanes
456a31c939
dune 2023-06-24 15:06:41 -04:00
Simon Cruanes
9f04d254af
feat: Pool.run_wait_block can return a value now 2023-06-24 15:06:40 -04:00
Simon Cruanes
e4b159c695
fut: fix warnings 2023-06-24 15:05:56 -04:00
Simon Cruanes
ab718b22f9
add Pool.run_wait_block; rename Pool.run into Pool.run_async 2023-06-24 14:50:43 -04:00
Simon Cruanes
ffd37642b9
Merge pull request #4 from c-cube/wip-await
await
2023-06-20 22:59:08 -04:00
Simon Cruanes
2b6387e388
mdx for 5.0 only 2023-06-20 22:44:06 -04:00
Simon Cruanes
76ec06942a
doc: add more to the readme 2023-06-20 22:44:05 -04:00
Simon Cruanes
3676d1e28d
test: remove dep 2023-06-20 22:43:58 -04:00
Simon Cruanes
1d23d2d7a1
rename Fut.await_exn to Fut.await 2023-06-20 22:43:33 -04:00
Simon Cruanes
68d3487ca8
CI 2023-06-20 22:43:15 -04:00
Simon Cruanes
4fd6154b56
refactor suspend
do not wrap each step in a new handler; using Effects.Deep we only wrap
the entrypoint of the task, and subsequent `continue` get scheduled
as-is.
2023-06-20 22:43:15 -04:00
Simon Cruanes
f98bcf2f08
add test for await 2023-06-20 22:43:14 -04:00