From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id NAA29881; Thu, 29 Jan 2004 13:44:13 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id NAA28857 for ; Thu, 29 Jan 2004 13:44:11 +0100 (MET) Received: from mail.dcs.qmul.ac.uk (vicar.dcs.qmul.ac.uk [138.37.88.163]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id i0TCiBv11203 for ; Thu, 29 Jan 2004 13:44:11 +0100 (MET) Received: from xenografia.plus.com ([212.159.85.26] helo=dcs.qmul.ac.uk) by mail.dcs.qmul.ac.uk with asmtp (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.30) id 1AmBWk-0000ct-Lt; Thu, 29 Jan 2004 12:44:10 +0000 Message-ID: <4018FFFC.1080009@dcs.qmul.ac.uk> Date: Thu, 29 Jan 2004 12:43:40 +0000 From: Martin Berger User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1) Gecko/20031114 X-Accept-Language: en, en-us MIME-Version: 1.0 To: Alex Baretta CC: ocaml Subject: Re: [Caml-list] ocaml and concurrency References: <20040127063230.GA12482@inv_machine> <200401282326.i0SNQntl004612@bismarck-chet.watson.ibm.com> <97908806-5238-11D8-8975-000393B8133A@wetware.com> <4018E282.2040404@dcs.qmul.ac.uk> <4018FA99.5020008@baretta.com> In-Reply-To: <4018FA99.5020008@baretta.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Auth-User: martinb X-clamav-result: clean (1AmBWk-0000ct-Lt) X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 implemented:01 abstraction:01 liveness:01 passing:01 enforces:01 ocaml:01 ocaml:01 garbage:01 mainstream:01 purely:02 inclusion:03 typing:03 algorithm:03 library:03 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk > You are right. No tool can save you from deadlocks or races in a > concurrent environment. The properties of being free from deadlocks and > free from races depend on the characteristics of the distributed > algorithm implemented by the program, not by the > multithreading/multiprocessing abstraction facilities in the language. i agree and disagree. what you say is true for conventional languages like java, C, ocaml ... but it is possible to design typing systems that will make guarantees about absence of races (see for example cormac flannagan's work http://www.cse.ucsc.edu/~cormac/) or about liveness or guaranteed termination (http://www.doc.ic.ac.uk/~yoshida/paper-ic.html#TYPES). this is of course still quite experimental work, not yet tested enough for inclusion into mainstream languages, but the time will come ... > Yet, it is immensely better to to write concurrent software in a purely > functional style with a garbage collected language, while taking > advantage of a functional message passing library. in many situations, yes. in all, no. and there's nothing in Ocaml that enforces functional programming. it's down to SW-engineering practices. that may or may not be enough for your needs. martin ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners