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 concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 7C638BC69 for ; Tue, 6 Mar 2007 15:51:26 +0100 (CET) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l26EpPTR013014 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 6 Mar 2007 15:51:26 +0100 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1HOb0O-00005E-Bp for caml-list@inria.fr; Tue, 06 Mar 2007 15:51:08 +0100 Received: from erbium.pps.jussieu.fr ([134.157.168.68]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 06 Mar 2007 15:51:08 +0100 Received: from li by erbium.pps.jussieu.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 06 Mar 2007 15:51:08 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: caml-list@inria.fr From: Zheng Li Subject: [ANN] STMlib and Enhtop available Date: Tue, 06 Mar 2007 15:37:21 +0100 Message-ID: <87d53mzbdq.fsf@pps.jussieu.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org Cc: Roberto Di Cosmo X-Gmane-NNTP-Posting-Host: erbium.pps.jussieu.fr User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.93 (gnu/linux) Cancel-Lock: sha1:htfl8e1JS6sW/ffuUkuhDoJP9tk= Sender: news X-Miltered: at concorde with ID 45ED7FED.001 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ocaml:01 haskell:01 haskell:01 runtime:01 ocaml:01 threads:01 semantics:01 threads:01 model:01 toplevel:01 bindings:01 bindings:01 rebinding:01 polluting:01 libc:01 Hi list, I recently announced the availability of these two small piece of code at the beginners list [1][2]. Then some people kindly encouraged me to post it here also. Here are they: STMlib ====== This is a user-space implementation of STM (Software Transactional Memory) library for OCaml. It's mainly inspired by the STM library of Haskell, with some exceptions due to the different nature of languages and different strategies of implementation. - This library is a user level implementation, whereas the Haskell version is based on primitives built into the runtime. - This library is purely an add-on to the already existed concurrent library of standard OCaml: threads, processes (TODO) and network programs (TODO). I.e. you can still program your concurrent applications with all facilities already exist in OCaml (e.g. Thread, Event, Unix etc.), but with the functions from this library you may transactionally read/write shared data instead of using locks or messages (and you may mix them if you really want). - There are subtle differences on the signatures and semantics of some specific functions between this library and the Haskell version. They are documented in the library manual. Currently only the threads (also vmthread) back-end is provided as a proof of concept. Other back-ends (process and network program), which share the exact interface, will come out in future version. The object is being able to write one .ml source program, compile once, but link with different back-ends to get executables of various execution model for different environments. Source code and documents are available at http://www.pps.jussieu.fr/~li/software/index.html#stmlib Enhtop ====== This is an experimental patch (we also provide pre-built testing executable and Debian package) for an enhanced OCaml toplevel with following features: For any kind of bindings (i.e. value, type, module, class etc.): * Identifiers been rebound are shown differently by default, to distinguish with currently effective ones * A new directive to query (by kinds or names or their composition) and show both current and history bindings * A new directive to show the current binding of any identifier without evaluating or rebinding it * A type-check-only testing mode to experiment your definitions without polluting the world, and the directive to enter/leave it Documents (running examples and installation instructions) and deliverables are available at http://www.pps.jussieu.fr/~li/software/index.html#enhtop PS. some wrong dependency (on libc6-dev 2.5) in the previously provided Debian packages is now fixed. Enjoy! [1] http://tech.groups.yahoo.com/group/ocaml_beginners/message/7390 [2] http://tech.groups.yahoo.com/group/ocaml_beginners/message/7393 -- Zheng Li http://www.pps.jussieu.fr/~li