From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 4A5DCBBAF for ; Wed, 19 May 2010 09:46:36 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhcCACE080tbeRvkkWdsb2JhbACdKHsBAQEBCQsKBxEDH4gptReFEASHUQ X-IronPort-AV: E=Sophos;i="4.53,261,1272837600"; d="scan'208";a="50856547" Received: from 25.mail-out.ovh.net ([91.121.27.228]) by mail3-smtp-sop.national.inria.fr with SMTP; 19 May 2010 09:46:35 +0200 Received: (qmail 24767 invoked by uid 503); 19 May 2010 08:00:20 -0000 Received: from b7.ovh.net (HELO mail379.ha.ovh.net) (213.186.33.57) by 25.mail-out.ovh.net with SMTP; 19 May 2010 08:00:20 -0000 Received: from b0.ovh.net (HELO queueout) (213.186.33.50) by b0.ovh.net with SMTP; 19 May 2010 07:46:35 -0000 Received: from ns0.ovh.net (HELO localhost) (213.186.33.20) by ns0.ovh.net with SMTP; 19 May 2010 07:46:34 -0000 Received: from mp-57040.rocqadm.inria.fr (mp-57040.rocqadm.inria.fr [128.93.57.40]) by imp.ovh.net (Horde Framework) with HTTP; Wed, 19 May 2010 09:46:34 +0200 Message-ID: <20100519094634.63006zi1h04x95z4@imp.ovh.net> Date: Wed, 19 May 2010 09:46:34 +0200 From: forum@x9c.fr To: caml-list@yquem.inria.fr Subject: RE: [Caml-list] about OcamIL References: <951508.20587.qm@web58708.mail.re1.yahoo.com> <201005061233.07551.peng.zang@gmail.com> <07b101caf08b$3e5022c0$baf06840$@com> <088201caf1ce$b5060cb0$1f122610$@com> <20100512151137.26894ywcpv71ixvk@imp.ovh.net> <012601caf351$e9a362e0$bcea28a0$@com> <44A730DD-54EB-4A1C-BD1A-6E9EFB31B5A2@x9c.fr> <01f001caf536$c923b4c0$5b6b1e40$@com> <20100517095327.14271x0lnao43sao@imp.ovh.net> <002001caf6e8$b408ed90$1c1ac8b0$@com> In-Reply-To: <002001caf6e8$b408ed90$1c1ac8b0$@com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; DelSp="Yes"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable User-Agent: Internet Messaging Program (IMP) H3 (4.3.5) X-Ovh-Tracer-Id: 10906029448046773215 X-Spam: no; 0.00; ocaml:01 hashtables:01 haskell:01 gcc:01 low-level:01 ffi:01 haskell:01 bigloo:01 bigloo:01 trade-offs:01 compiler:01 compiler:01 computations:01 trade-offs:01 higher-level:01 Jon Harrop a =E9crit : (...) > I don't think this is heated at all. We were talking about "high > performance" languages and you cited a bunch of languages that get whipped > by Python on this benchmark: > > > http://flyingfrogblog.blogspot.com/2009/04/f-vs-ocaml-vs-haskell-hash-tabl= e. > html Acknowledged. "Whipped" is here 2 times slower on that particular benchmark, while Python is rarely within an order of magnitude of OCaml code (cf. the language shootout). Moreover, hashtables are ubiquitous in Python (and hence probably particularly optimized), while they are not so common in Haskell or Caml. >> And I still wait for a clear statement of your level for "high >> performance", > > Within 2x of ANSI C compiled with gcc on all practically-relevant benchmar= ks > without dropping to low-level code, e.g. GHC's FFI in Haskell. > >> and references to benchmarks that back up your claims in this thread. > > http://fsharpnews.blogspot.com/2010/05/java-vs-f.html Point taken. Just notice that the 17x factor is observed on the micro-benchmark, while on the larger one the two platforms seem on par. Here is a question about the micro-benchmark: do you know if F# do monomorphize the collection in this example ? If it turns out to be done, one may probably argue that the problem is more related to the language than to the platform (just recycling an objection made on the page you pointed out). >> As you seem to come from an academic background, I expect facts >> and references, and not ad hominem attacks and fuzzy unbacked claims. > > An ad-hominem attack is an attack against a person. I attacked your > examples, not you. I do not understand how "name droping is more than silly" could be seen as targeted at the sentence rather than at the one pronouncing it. But, anyway, let's move to the point. >> Unless you show that neither Bigloo nor Scala meet your (to be defined) >> criteria for "high performance", my counterexamples still stand. > > Are you talking about Bigloo.NET and Scala.NET or have you gone back to th= e > original discussion about JVM-based languages? > > Scala on the JVM is 7x slower than C++ on this benchmark: > > > http://shootout.alioth.debian.org/u64q/benchmark.php?test=3Dall&lang=3Dsca= la&lan > g2=3Dgpp Agreed, but it seems that if you aggregate the results of the different benchmarks, Scala is on average only 1.5x from C++ (but far away in terms of memory consumption). The 7x factor is observed the worst result, the median being 2x. (...) >> It may just end up that we have different perceptions of "high >> performance", and of the trade-offs we are going to make in our >> language / platform choices. > > Probably. What languages do not you not consider to be high performance? I am not sure it is that easy to compare languages, but measuring compiler performances: any compiler that produces code that runs within -let's say- 5= x of the fastest one around, on a bunch of wide-spectrum benchmarks (e. g. numerical code *plus* string matching *plus* tree walking, etc). Maybe it should also be mentioned that I am more versed into symbolic =20 computations. Regarding trade-offs, I am also inclined to favor Open Source solutions and higher-level languages (the trade-off being here execution time vs programming/debugging time). Xavier Clerc PS: as an aside, I used the word "references" for academic publications that went through a reviewing process, not blog entries.