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.0 required=5.0 tests=AWL,SPF_NEUTRAL autolearn=disabled version=3.1.3 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 6F6F2BC6B for ; Mon, 7 Jan 2008 18:07:04 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAMfqgUdIDsqxi2dsb2JhbACQFAEBAQgEBCQFkn2ERw X-IronPort-AV: E=Sophos;i="4.24,254,1196636400"; d="scan'208";a="20982855" Received: from ro-out-1112.google.com ([72.14.202.177]) by mail4-smtp-sop.national.inria.fr with ESMTP; 07 Jan 2008 18:07:03 +0100 Received: by ro-out-1112.google.com with SMTP id o32so2199362rog.11 for ; Mon, 07 Jan 2008 09:07:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=16tkh/IZrcEL8Uc4fU7Gcl56pww6PRL28+Wxs1auQcU=; b=VeRG5mF2yV2N7keDV9tBjFaGUS3mHLwDNup/sVPqfVGk4zGiDLV20QP4BXs5I3Wz42rE6cUkXJnalVXzokY8lXYukSUEPVQWHUv3SfoQT0subs3nb4POvmK/e+rFtHU7wyxWUSxhbIeWUiBszUyjUEeeIjivv6t8OfhmRL0kYUI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=GrYlKQ7tPZ0UZe0dluplx1q0ipc/PbpoXSZCcq5fcJdviROgEJSTiE3hmKk2tnvTaimsNdK34uPCHhqOwV2BuTw2rrVdMmlB1EzsnIuBFjUsmIjCpzC/ZW0qs2CHoHA8aQemJvyvS66nJq1qtLsjiGQ4juoSIGwUWNYLUPG6ROA= Received: by 10.142.125.5 with SMTP id x5mr5161236wfc.40.1199725622023; Mon, 07 Jan 2008 09:07:02 -0800 (PST) Received: by 10.142.98.15 with HTTP; Mon, 7 Jan 2008 09:07:01 -0800 (PST) Message-ID: <9d3ec8300801070907m7ce9f652q144b05dfa0d8d804@mail.gmail.com> Date: Mon, 7 Jan 2008 17:07:01 +0000 From: "Till Varoquaux" To: "Jacques Carette" Subject: Re: [Caml-list] Performance questions, -inline, ... Cc: "Jon Harrop" , caml-list@yquem.inria.fr In-Reply-To: <47825AA0.3020702@mcmaster.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <200801031128.30183.ober.14@osu.edu> <200801051936.23521.jon@ffconsultancy.com> <200801070848.40809.ober.14@osu.edu> <200801071441.48212.jon@ffconsultancy.com> <47825AA0.3020702@mcmaster.ca> X-Spam: no; 0.00; -inline:01 metaocaml:01 monads:01 oleg:01 high-level:01 metaocaml:01 o'caml:01 monads:01 o'caml:01 ocaml:01 beginner's:01 ocaml:01 bug:01 condensed:98 beginners:01 First link is dead link... which a shame because any article with metaocaml monads and oleg is bound to be very interesting.. Till On Jan 7, 2008 5:00 PM, Jacques Carette wrote: > Jon Harrop wrote: > > You mean it might be possible to recover the performance of C from numerical > > code with high-level abstractions? Yes. Indeed, I would like to see this > > done. However, I've never heard of an implementation of any language that can > > do this. > > > > With MetaOCaml you can -- see either the long version > http://www.cas.mcmaster.ca/~carette/scp_metamonads.pdf > or the more condensed version > http://www.cas.mcmaster.ca/~carette/metamonads/index.html > > > With a little bit of work, you can achieve all of > > The simplest route to recovering C performance here is: > > > > . Inline "( +. )". > > . Inline "op1". > > . Type-specialize "op1". > > . Hoist bounds checks. > > > automatically. There are three drawbacks: > 1) the code you write no longer looks like O'Caml but Lisp instead [can > be fixed with enough campl4 hacking] > 2) the error messages can be very difficult to figure out [could be > improved a lot if monads were integrated in O'Caml] > 3) metaocaml is not as well supported as ocaml > > Jacques > > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > -- http://till-varoquaux.blogspot.com/