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.4 required=5.0 tests=HTML_MESSAGE,SPF_NEUTRAL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id D1D23BC69 for ; Fri, 1 Jun 2007 13:29:02 +0200 (CEST) Received: from wa-out-1112.google.com (wa-out-1112.google.com [209.85.146.178]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l51BT1sU030401 for ; Fri, 1 Jun 2007 13:29:02 +0200 Received: by wa-out-1112.google.com with SMTP id m28so572455wag for ; Fri, 01 Jun 2007 04:29:00 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version:content-type:references:x-google-sender-auth; b=PUPvZWINoaOruas4oIbx7RR0xiBfeHyxYIsob5umjMUfMBlUDHb8ctPuJ4LwtcLqzke43aOkGDe8C6+fRBsrqZHuboGx4bBISRs26dTvwvNwqkqNoRYCDedPCwFlFSmCTYCXQBL5h3X2yMrBaikVX7ifhKHGE6uOdhw5BbERlpg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version:content-type:references:x-google-sender-auth; b=GuM1H1Znmfe10Wtab0F3ThT+wYeLQGdSZcPDuBGFUOeDGE11bc+C68grrC5hC59Ytnx9kdpBiciXiiGfHgZogAE/u0+Hfw0TLVyDhLSqiwNqPhENtBBydTVgHeO0Uw+pl3YIz/mp5/oxe6J13s6xX95QVa1CWX7AVbuA6yq+gmE= Received: by 10.114.194.1 with SMTP id r1mr1720778waf.1180697340779; Fri, 01 Jun 2007 04:29:00 -0700 (PDT) Received: by 10.114.52.9 with HTTP; Fri, 1 Jun 2007 04:29:00 -0700 (PDT) Message-ID: <891bd3390706010429g2ac722bfmc6932b15393a62b9@mail.gmail.com> Date: Fri, 1 Jun 2007 07:29:00 -0400 From: "Yaron Minsky" Sender: yminsky@gmail.com To: "Alain Frisch" Subject: Re: [Caml-list] Comparison of OCaml and MLton for numerics Cc: skaller , caml-list@yquem.inria.fr In-Reply-To: <465FAF0B.5060700@inria.fr> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_4804_18034371.1180697340616" References: <5195a210705302250u6a9e5adey4ed857480f9e5cd8@mail.gmail.com> <200705311008.16662.jon@ffconsultancy.com> <5195a210705310222p6aa8482fr70e7bf2b2b631b72@mail.gmail.com> <200705311127.28639.jon@ffconsultancy.com> <465F3E8C.10404@inria.fr> <1180660974.15528.126.camel@rosella.wigram> <465FAF0B.5060700@inria.fr> X-Google-Sender-Auth: d86c4b647299bc3d X-Miltered: at discorde with ID 466002FD.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; yaron:01 minsky:01 yminsky:01 ocaml:01 frisch:01 frisch:01 abstraction:01 modular:01 ocaml:01 functors:01 functors:01 abstraction:01 modular:01 wrote:01 wrote:01 ------=_Part_4804_18034371.1180697340616 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline On 6/1/07, Alain Frisch wrote: > > MLton's strength is that > you don't have to pay the price for abstraction, i.e. cleaning up your > program (by factorizing it or making it more modular) does not degrade > performance. I have no experience with MLton, but I don't believe that > performances are much more difficult to predict than with OCaml > (Stephen?). I could not agree with this sentiment more. Stephen actually now works at Jane Street, and since his arrival he's taught us a number of techniques for using modules and functors to organize and factor code more effectively. Some of these techniques were obviously born in the context of Mlton, where they have no performance penalty. It's downright annoying to have to avoid these techniques in performance-sensitive code in OCaml. In other words, factoring out with functors and modules is good style, but OCaml penalizes you for it. y ------=_Part_4804_18034371.1180697340616 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline On 6/1/07, Alain Frisch <Alain.Frisch@inria.fr> wrote:
 MLton's strength is that
you don't have to pay the price for abstraction, i.e. cleaning up your
program (by factorizing it or making it more modular) does not degrade
performance. I have no experience with MLton, but I don't believe that
performances are much more difficult to predict than with OCaml (Stephen?).

I could not agree with this sentiment more.  Stephen actually now works at Jane Street, and since his arrival he's taught us a  number of techniques for using modules and functors to organize and factor code more effectively.  Some of these techniques were obviously born in the context of Mlton, where they have no performance penalty.  It's downright annoying to have to avoid these techniques in performance-sensitive code in OCaml.  In other words, factoring out with functors and modules is good style, but OCaml penalizes you for it.

y


------=_Part_4804_18034371.1180697340616--