Eager Future2 is a Common Lisp library that provides composable concurrency primitives that unify parallel and lazy evaluation, are integrated with the Common Lisp condition system, and have automatic resource management.
The README file included with the distribution contains the documentation and an API reference.
- Guy Steele's ICFP2009 talk on parallel programming is an excellent guide to writing code suitable for parallel computation with futures.
- Marc Feeley's PhD dissertation is the most comprehensive resource on using and implementing futures.
- This Lambda the Ultimate discussion on C++ Futures provides a lot of background on the concept of future composition, the different evaluation strategies, and the design considerations that went into Eager Future2.
- The Eager Future2 thread pool implementation is based on the Leader/Follower pattern, which is somewhat more efficient than the Half-Sync/Half-Async multiplexing pattern employed in many thread pool and network server implementations.
Eager Future2 is distributed under the terms of GNU Lesser General Public License version 3 or any later version.
Eager Future2 is the successor to Eager Future, which was a fork of PCall. The source repository for Eager Future can be found at https://gitlab.common-lisp.net/eager-future/eager-future.git