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 624DEBC6B for ; Mon, 17 Sep 2007 18:46:23 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAChM7kbAXQInlGdsb2JhbACOFQIHBAYHCA X-IronPort-AV: E=Sophos;i="4.20,265,1186351200"; d="scan'208";a="16324253" Received: from concorde.inria.fr ([192.93.2.39]) by mail4-smtp-sop.national.inria.fr with ESMTP; 17 Sep 2007 18:47:22 +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 l8HGkoXd021086 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Mon, 17 Sep 2007 18:46:50 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAChM7kZQW+UCh2dsb2JhbACOFQkKJw X-IronPort-AV: E=Sophos;i="4.20,265,1186351200"; d="scan'208";a="2823606" 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:47:20 +0200 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1IXJkW-0003ZX-Sk for caml-list@inria.fr; Mon, 17 Sep 2007 18:47:04 +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:47:04 +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:47:04 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: caml-list@inria.fr From: Zheng Li Subject: Re: [ANN] coThreads 0.10 Date: Mon, 17 Sep 2007 18:48:50 +0200 Message-ID: <87sl5d8cgd.fsf@pps.jussieu.fr> References: <87lkb5fe3f.fsf@pps.jussieu.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 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:8bfUsY1VuEa71QucXv8YRtf2x1A= Sender: news X-Miltered: at concorde with ID 46EEAF7A.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; emacs:01 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 Hi, Really sorry for the format in the previous posts. Something must be wrong with my Emacs setting. Anyway, here is the reformatted one, hope it works. 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