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=0.8 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 mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 1D86EBC37 for ; Thu, 11 Jun 2009 17:49:11 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArUDAA/EMEpQRFuwgWdsb2JhbACYPwEBFiO3YYJBgUkFiFo X-IronPort-AV: E=Sophos;i="4.42,203,1243807200"; d="scan'208";a="27857184" Received: from furbychan.cocan.org ([80.68.91.176]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES256-SHA; 11 Jun 2009 17:49:10 +0200 Received: from rich by furbychan.cocan.org with local (Exim 4.63) (envelope-from ) id 1MEmWc-0007He-51; Thu, 11 Jun 2009 16:49:10 +0100 Date: Thu, 11 Jun 2009 16:49:10 +0100 To: Lucas Dixon Cc: caml-list@yquem.inria.fr Subject: Re: [Caml-list] The state of ML: multi-threaded, saved state and support platforms Message-ID: <20090611154910.GA27827@annexia.org> References: <4A310EE5.7070704@inf.ed.ac.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A310EE5.7070704@inf.ed.ac.uk> User-Agent: Mutt/1.5.13 (2006-08-11) From: Richard Jones X-Spam: no; 0.00; 0100,:01 ocaml:01 ocaml:01 parallelism:01 2009:98 lucas:98 dixon:98 threads:01 threads:01 garbage:01 garbage:01 wrote:01 caml-list:01 data:02 structures:02 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. > 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? 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). > F#: Miscrosoft Are you sure about this one? > 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? Rich. -- Richard Jones Red Hat