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 OAA07172; Thu, 6 May 2004 14:32:19 +0200 (MET DST) 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 OAA07149 for ; Thu, 6 May 2004 14:32:17 +0200 (MET DST) Received: from newext.lri.fr (ext.lri.fr [129.175.15.4]) by nez-perce.inria.fr (8.12.10/8.12.10) with ESMTP id i46CWGEV008297 for ; Thu, 6 May 2004 14:32:16 +0200 Received: from serveur-mail.lri.fr (serveur-mail [129.175.8.90]) by newext.lri.fr (8.12.10/jtpda-5.4) with ESMTP id i46CQRBG022154 ; Thu, 6 May 2004 14:26:27 +0200 (MEST) Received: from pc8-119.lri.fr (pc8-119 [129.175.8.119]) by serveur-mail.lri.fr (8.11.6p2/jtpda-5.3.2) with ESMTP id i46CQQq29131 ; Thu, 6 May 2004 14:26:27 +0200 (MEST) Received: from localhost ([127.0.0.1]) by pc8-119.lri.fr with esmtp (Exim 3.36 #1 (Debian)) id 1BLhxK-0004GR-00; Thu, 06 May 2004 14:26:26 +0200 Date: Thu, 6 May 2004 14:26:26 +0200 (MEST) From: Julien Signoles To: brogoff@speakeasy.net cc: Julien Signoles , Jon Harrop , Subject: Re: [Caml-list] Functors In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE X-MailScanner: Found to be clean X-Miltered: at nez-perce with ID 409A3050.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; signoles:01 signoles:01 lri:01 caml-list:01 functors:01 functorized:01 stinking:01 functorized:01 ocamldefun:01 filliatre's:01 functors:01 boosts:99 ocamldefun:01 3.07:01 3.06:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk > In any case, the absence of a defunctorization step means that we often > have a choice between performance and a functorized programming style, wh= ich > stinks. I don't think you have a stinking choice. My opinion is: always choose a functorized programming style and, if this style significantly reduces performance, then use a defunctorizer like ocamldefun. For example, see the Jean-Christophe Filli=E2tre's contribution to this thread (http://caml.inria.fr/archives/200405/msg00087.html). First, he implements an algorithm in a functorized style. Then, he sadly remarks poor performance due to functors. Finally, he defunctorizes and boosts the performance. > Does ocamldefun deal with the recursive modules of 3.07? The current version (v1.11) of ocamldefun only works with ocaml 3.06 and so it doesn't deal with recursive modules. A version of ocamldefun dealing with ocaml 3.07 is on my TODO list. > MLton began as an SML defunctorizer if I'm not mistaken, but has evolved > into a whole program optimizing compiler. You're not mistaken :-). See http://www.mlton.org/history.html. Cheers, Julien --=20 mailto:Julien.Signoles@lri.fr ; http://www.lri.fr/~signoles "In theory, practice and theory are the same, but in practice they are different" (Larry McVoy) ------------------- 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