From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: * X-Spam-Status: No, score=1.0 required=5.0 tests=AWL,SPF_FAIL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id AE0BCBC6B for ; Mon, 17 Sep 2007 18:29:14 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAGdI7kbAXQInlGdsb2JhbACOFQIHBAYHCA X-IronPort-AV: E=Sophos;i="4.20,265,1186351200"; d="scan'208";a="16323500" Received: from concorde.inria.fr ([192.93.2.39]) by mail4-smtp-sop.national.inria.fr with ESMTP; 17 Sep 2007 18:30:13 +0200 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l8HGTeG5020200 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Mon, 17 Sep 2007 18:29:41 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAPxH7kZQW+UCh2dsb2JhbACOFQkKJw X-IronPort-AV: E=Sophos;i="4.20,265,1186351200"; d="scan'208";a="2823008" Received: from main.gmane.org (HELO ciao.gmane.org) ([80.91.229.2]) by mail3-smtp-sop.national.inria.fr with ESMTP; 17 Sep 2007 18:30:11 +0200 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1IXJTm-0001BI-LP for caml-list@inria.fr; Mon, 17 Sep 2007 18:29:46 +0200 Received: from ivr94-8-88-162-26-239.fbx.proxad.net ([88.162.26.239]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 17 Sep 2007 18:29:46 +0200 Received: from li by ivr94-8-88-162-26-239.fbx.proxad.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 17 Sep 2007 18:29:46 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: caml-list@inria.fr From: Zheng Li Subject: [ANN] coThreads 0.10 Date: Mon, 17 Sep 2007 18:31:32 +0200 Message-ID: <87lkb5fe3f.fsf@pps.jussieu.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: ivr94-8-88-162-26-239.fbx.proxad.net User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/23.0.50 (gnu/linux) Cancel-Lock: sha1:GE/UjpAOGLLzgniJeddGiIRFZ/o= Sender: news X-Miltered: at concorde with ID 46EEAB74.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ocaml:01 yoriyuki:01 yamagata:01 ocaml:01 implements:01 speedup:01 speedup:01 full-fledged:01 high-level:01 low-level:01 constructors:01 constructors:01 tvar:01 systhreads:01 source-level:01 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