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=0.0 required=5.0 tests=AWL autolearn=disabled version=3.1.3 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id D605EBBAF for ; Sat, 4 Oct 2008 11:03:54 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhUDAGDO5kjCpx6wiGdsb2JhbACTYQEBARUipV6BaA X-IronPort-AV: E=Sophos;i="4.33,360,1220220000"; d="scan'208";a="18191896" Received: from smtpmin.univ-orleans.fr (HELO min.univ-orleans.fr) ([194.167.30.176]) by mail1-smtp-roc.national.inria.fr with ESMTP; 04 Oct 2008 11:03:54 +0200 Received: from smtps.univ-orleans.fr (localhost [127.0.0.1]) by min.univ-orleans.fr (Postfix) with ESMTP id 6672212B4B2; Sat, 4 Oct 2008 11:03:54 +0200 (CEST) Received: from [192.168.0.12] (ras75-4-82-235-58-110.fbx.proxad.net [82.235.58.110]) by smtps.univ-orleans.fr (Postfix) with ESMTP id 844E536E60; Sat, 4 Oct 2008 11:03:55 +0200 (CEST) Subject: Re: [Caml-list] Metaprogramming features From: David Teller To: Jon Harrop Cc: caml-list@yquem.inria.fr In-Reply-To: <200810040300.02624.jon@ffconsultancy.com> References: <884069.59268.qm@web54601.mail.re2.yahoo.com> <200810040300.02624.jon@ffconsultancy.com> Content-Type: text/plain Date: Sat, 04 Oct 2008 11:03:58 +0200 Message-Id: <1223111038.6931.7.camel@Blefuscu> Mime-Version: 1.0 X-Mailer: Evolution 2.12.1 Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; univ-orleans:01 0100,:01 low-level:01 parsers:01 bytecodes:01 metaocaml:01 ocaml:01 metaocaml:01 syntax:01 trampoline:01 combinators:01 ocaml's:01 compiler:01 run-time:01 camlp:01 On Sat, 2008-10-04 at 03:00 +0100, Jon Harrop wrote: > 1. Obvious applications are low-level compilers for regular expressions, > parsers and bytecodes but MetaOCaml imposes the limitations of OCaml (e.g. > slow char and int handling) which makes it unsuitable for most such > applications. Oh, well, you answer some of your own question from your other post. I was thinking along the lines of ulex. And I have the impression you can get a nice "finally" with MetaOCaml, albeit perhaps with a weird syntax. Now, another obvious application is writing efficient trampoline code and other combinators, something which I believe may be very useful for concurrency. > 3. You cannot generate new pattern matches to leverage OCaml's optimizing > pattern match compiler in your run-time generated code (but you can use > static ones). You can't? Well, that's unfortunate. We'll have to keep relying on camlp4 for the moment. Cheers, David -- David Teller-Rajchenbach Security of Distributed Systems http://www.univ-orleans.fr/lifo/Members/David.Teller Angry researcher: French Universities need reforms, but the LRU act brings liquidations.