Hello Olivier!
On 12/31/22 04:55, Olivier Dion via General Guile related discussions wrote:
Hi Guilers,
I'm happy to announce the first release of guile-parallel. A library
that offers primitives for parallelization of your programs.
Project page: <https://git.sr.ht/~old/guile-parallel>
List of features:
- Userspace threads (jobs schedulers)
- Safe dynamic-wind for all types of threads (kernel and userspace)
- sleep, usleep and nsleep for all types of threads
- (ice-9 atomic) extensions, e.g. atomic counters
- (ice-9 q) wrapper, i.e. safe for all types of threads
- Barriers à la Pthread
- Condition variables, mutexes and semaphores for kernel and userspace
threads
- Parallel vector-map vector-count, vector-sort, vector-map-reduce
Next features:
- Asynchronous I/O
- Channels à la Go with a select syntax (maybe?)
If there're interests, usages or requests for it, please let me know! I
might add it to Guix if some find it useful.
Regards,
old
I looked at the examples in the repository a bit and it looks impressive!
Maybe I can already make use of it in coming AoC puzzles.
I am currently a bit confused about where the line is between a good use-case
for guile-parallel and guile-fibers. Or whether they could work well together or
the people making them should work together ; )
Regards,
Zelphir
--
repositories: https://notabug.org/ZelphirKaltstahl