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.5 required=5.0 tests=SPF_SOFTFAIL autolearn=disabled version=3.1.3 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id 6DE65BC37 for ; Thu, 11 Jun 2009 23:44:46 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsMBADMYMUqB1xBmlGdsb2JhbACYPwEBAQEJCwgJEgW4C4JBgUkF X-IronPort-AV: E=Sophos;i="4.42,204,1243807200"; d="scan'208";a="31059068" Received: from treacle.ucs.ed.ac.uk ([129.215.16.102]) by mail1-smtp-roc.national.inria.fr with ESMTP; 11 Jun 2009 23:44:31 +0200 Received: from dandy.inf.ed.ac.uk (dandy.inf.ed.ac.uk [129.215.33.80]) by treacle.ucs.ed.ac.uk (8.13.8/8.13.4) with ESMTP id n5BLiEPB020710; Thu, 11 Jun 2009 22:44:14 +0100 (BST) Received: from [192.168.0.54] (dsl-217-155-195-212.zen.co.uk [217.155.195.212]) (authenticated bits=0) by dandy.inf.ed.ac.uk (8.13.8/8.13.8) with ESMTP id n5BLiABY012117 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 11 Jun 2009 22:44:13 +0100 Message-ID: <4A317AA8.40209@inf.ed.ac.uk> Date: Thu, 11 Jun 2009 22:44:08 +0100 From: Lucas Dixon User-Agent: Thunderbird 2.0.0.21 (X11/20090409) MIME-Version: 1.0 To: Richard Jones Cc: caml-list@yquem.inria.fr Subject: Re: [Caml-list] The state of ML: multi-threaded, saved state and support platforms References: <4A310EE5.7070704@inf.ed.ac.uk> <20090611154910.GA27827@annexia.org> In-Reply-To: <20090611154910.GA27827@annexia.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Edinburgh-Scanned: at treacle.ucs.ed.ac.uk with MIMEDefang 2.60, Sophie, Sophos Anti-Virus, Clam AntiVirus Content-Disposition: inline X-Scanned-By: MIMEDefang 2.60 on 129.215.16.102 X-Spam: no; 0.00; 0100,:01 ocaml:01 ocaml:01 parallelism:01 parallelism:01 speedup:01 bug:01 implements:01 sockets:01 parsers:01 haskell:01 cheers:01 lucas:98 dixon:98 2009:98 Richard Jones wrote: > On Thu, Jun 11, 2009 at 03:04:21PM +0100, Lucas Dixon wrote: >> 1. Which implementations have native system threads with shared memory? >> >> PolyML is the only one I know of, are there others? (OCaml does not have >> this as I understand it... do correct me if I'm wrong) > > OCaml has native threads with shared memory, _but_ OCaml threads > nevertheless cannot run simultaneously because there's a lock > protecting the garbage collector. The standard solution is to use > fork-based parallelism or MPI (which will work better on new multicore > machines which are all NUMA nowadays, and in any case is simpler to > program). See extensive discussions on this list about garbage > collectors with threads. Thanks, I just found an old post: http://caml.inria.fr/pub/ml-archives/caml-list/2002/11/64c14acb90cb14bedb2cacb73338fb15.en.html So PolyML is the only version of ML that supports SMP? (although it locks all threads on a major collection - it does support parallelism on shared-memory multiprocessors - so you really can max out 4 processor machines - but the speedup tails off only 5 times faster for 8 core machines) >> 3. Lastly, can you help me get a good picture of the state of support >> for ML systems: >> >> OCaml: is this still supported by INRIA? what is the level of support? > > What level of support are you looking for? I was wondering who pays for the documentation to be kept up to date, bug fixes, and implements new features.I saw that there is an OCaml Consortium: http://caml.inria.fr/consortium/index.en.html Is this INRIA or something else? Is this the source of funding that supports OCaml? or is there INRIA backing also? Does anyone know how many people are employed? I'm interested in how to support functional programming environments. What level of financial support is needed? > OCaml users will give you > support through the ocaml-beginners mailing list which is active and > most questions are answered within a few hours. If you want "call > someone on the phone and drop everything" support then you'll have to > pay (a lot). Are there organisations that offer OCaml support over the phone? Or would that be consultancy rates for academics who specialise in OCaml? The OCaml Consortium offers: 3000 Euros for a minimal support to Caml, 10000 Euros or higher for more. But doesn't give much details - has anyone ever purchased this? >> F#: Miscrosoft > > Are you sure about this one? no idea :) I just saw that there is a MSDN F# Developer Center, and assume Microsoft field the responsibility to fix bugs etc. Any experience with this? >> 4. I'm also interested in interoperability: what systems can OCaml >> easily interoperate with? What about the other systems? > > This question is very unclear. OCaml offers lots of opportunities for > interoperating, eg. RPC mechanisms, web services, direct linking, > passing structures through data files (XML, sexprs etc), pipes, > databases. What are you looking for? What other systems? Sorry, I will try to clarify: I was taking for granted the ability to open sockets, have pipes, and read files. Web-services, links to databases, parsers, and anything else at that level are not what I meant. I meant things at the level of linking compiled code/modules. F# website says it has "a cross-compiling core shared with the popular OCaml language", so I presume that modules written in one can be used in the other. This is the level of interoperability I was wondering about. Is there similar things for libraries writtin in Haskell, or MLton, or MLKit, or something similar for OCaml with SML/NJ? I know the HLVM project is hoping to provide some of these features. I was wondering what the current situation is. For other systems, was thinking of things like C interfaces, as describe here: http://caml.inria.fr/pub/docs/manual-ocaml/manual032.html So perhaps I've half answered my own question :) cheers, lucas -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.