Browse thread
[ANN] coThreads 0.10
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2007-09-17 (16:29) |
From: | Zheng Li <li@p...> |
Subject: | [ANN] coThreads 0.10 |
Hi, I'd like to announce the first public release of coThreads, a concurrent programming library for OCaml. It originated as STMlib [1], and was accepted as a Google Summer of Code 2007 project [2] mentored by Yoriyuki Yamagata from the Free Software Initiative of Japan [3]. The official website of coThreads is http://cothreads.sourceforge.net where you can find the source code and some preliminary documents. It's a wiki-based website, so feel free to register and contribute. A byproduct of the project, the Vprint [4] module, was already announced independently a few weeks ago on this list. Enjoy. [1] http://www.pps.jussieu.fr/~li/software/index.html#stmlib [2] http://code.google.com/soc/2007/ [3] http://fsij.org [4] http://www.pps.jussieu.fr/~li/software/index.html#vprint From the README: ============================================================================== = Description = coThreads is a concurrent programming library for OCaml. It enhances the Threads library of the standard OCaml distribution in two dimensions: * coThreads implements the same API of the standard Threads library on different execution engines (process, netwoker(todo)), so that a single copy of source code can be compiled and deployed to different environments without modification * coThreads is also a super set of the standard Threads library, with extra components (STM etc.), functions (spawn etc.) and features (object-level compatibility etc.) = Features = The design of coThreads brings several advantages: == Powerfulness == * The process engine can give you real speedup on multi-core and multi-processor machines, the networker engine (todo) will give you both speedup and scalability. * Combining the original components from the Threads library and the newly added ones, coThreads is a full-fledged toolbox covering two main concurrent programming paradigms, namely shared-memory and message passing, with both high-level and low-level constructors. * All constructors (e.g. thread, mutex, condition, event, channel, tvar, stm etc.) are first class values that can be communicated and shared between independent threads. == Compatibility == * Full compatibility with the original Threads library (systhreads and vmthreads), so that you can now deploy your legacy code to new environment for free — without modifying source code, without learning something new. * Both source-level and object-level compatibility among different execution engines, so that you can keep a single copy of source code as well as a single copy of objects files. == Convenience == * The full library is implemented in user-space, no modification to the OCaml compiler and runtime, so that you can use it as a set of plain modules. * Switching engines is as easy as changing the include paths of compilation, and it's quite easy to automate the building process over a set of engines (e.g. with lines of pattern rules in your Makefile) -- Zheng Li http://www.pps.jussieu.fr/~li