<commit_before>Hopac - Higher-Order, Parallel, Asynchronous and Concurrent
===========================================================

Hopac is a library for F# with the aim of making it easier to write efficient
parallel, asynchronous and concurrent programs.  The design of Hopac draws
inspiration from Concurrent ML.  Similar to Concurrent ML, Hopac provides
message passing primitives and supports the construction of first-class
synchronous abstractions.  Parallel jobs (light-weight threads) in Hopac are
created using techniques similar to the F# Async framework.  Hopac runs
parallel jobs using a work distributing scheduler in a non-preemptive fashion.

Licensing
---------

Hopac is licensed under a MIT-style license.  See LICENSE.md for the license.

Performance
-----------

How fast is Hopac?  How well does it scale to multicore machines?  In order to
measure and improve the performance of Hopac, several benchmark programs have
been written and some of these programs also test similar algorithms written
using the .Net thread pool, tasks and async.  Those benchmarks are readily
available in this project and they should be very easy to compile and run on
your machine.  So, why don't you try and run those benchmark programs, or write
your own benchmark, on your multicore machine and see for yourself?

Programming in Hopac
--------------------

Hopac provides a programming model that is heavily inspired by [John
Reppy](http://people.cs.uchicago.edu/~jhr/)'s *Concurrent ML* language.  The
book [Concurrent Programming in
ML](http://www.cambridge.org/us/academic/subjects/computer-science/distributed-networked-and-mobile-computing/concurrent-programming-ml)
is the most comprehensive introduction to Concurrent ML style programming.  The<commit_msg>Doc update.<commit_after>Hopac - Higher-Order, Parallel, Asynchronous and Concurrent
===========================================================

Hopac is a library for F# with the aim of making it easier to write efficient
parallel, asynchronous and concurrent programs.  The design of Hopac draws
inspiration from Concurrent ML.  Similar to Concurrent ML, Hopac provides
message passing primitives and supports the construction of first-class
synchronous abstractions.  Parallel jobs (light-weight threads) in Hopac are
created using techniques similar to the F# Async framework.  Hopac runs
parallel jobs using a work distributing scheduler in a non-preemptive fashion.

Licensing
---------

Hopac is licensed under a MIT-style license.  See
[LICENSE.md](https://github.com/VesaKarvonen/Hopac/blob/master/LICENSE.md) for
details.

Performance
-----------

How fast is Hopac?  How well does it scale to multicore machines?  In order to
measure and improve the performance of Hopac, several benchmark programs have
been written and some of these programs also test similar algorithms written
using the .Net thread pool, tasks and async.  Those benchmarks are readily
available in this project and they should be very easy to compile and run on
your machine.  So, why don't you try and run those benchmark programs, or write
your own benchmark, on your multicore machine and see for yourself?

Programming in Hopac
--------------------

Hopac provides a programming model that is heavily inspired by [John
Reppy](http://people.cs.uchicago.edu/~jhr/)'s *Concurrent ML* language.  The
book [Concurrent Programming in
ML](http://www.cambridge.org/us/academic/subjects/computer-science/distributed-networked-and-mobile-computing/concurrent-programming-ml)
is the most comprehensive introduction to Concurrent ML style programming.  The
{'fraction_non_alphanumeric': 0.10183129855715871, 'fraction_numerical': 0.0, 'mean_word_length': 4.437405731523379, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 1, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2692146', 'n_tokens_mistral': 928, 'n_tokens_neox': 863, 'n_words': 441}