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 mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id 4EE4DBBAF for ; Thu, 20 May 2010 14:04:47 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtcBANTB9EvRVaE0mGdsb2JhbACdeggVAQEBAQEICQwHESKsMIIBhRwuiE4BAQMFhQ0Egzs X-IronPort-AV: E=Sophos;i="4.53,271,1272837600"; d="scan'208";a="59722094" Received: from mail-fx0-f52.google.com ([209.85.161.52]) by mail1-smtp-roc.national.inria.fr with ESMTP; 20 May 2010 14:04:47 +0200 Received: by fxm14 with SMTP id 14so25114fxm.39 for ; Thu, 20 May 2010 05:04:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:received:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :x-enigmail-version:openpgp:content-type:content-transfer-encoding; bh=aO+agzAeyIw/PxumbQXnujcAtVPFegKoZkfw3Sd9e8U=; b=lnIdMDCIgOAZiETPO3952BjJ1z6KM4HC6w/6rlXt4vk1XdY+8sQlGNPMAG8UOn84MR uVNiPRy2fhk3YsKJVTLRRBajUuj0wysYKOKwDTZOm0U2+0aKH7NeFi73NUku4MrcAMgg BdN1AH70RHS7SyBGAWAvJH7ka0dDn2SAJaow8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:x-enigmail-version:openpgp:content-type :content-transfer-encoding; b=jYdYZZNSh2LbqcRY1iY/iK9IcK57OpmZrZj5yzM9P1h+HwLzTtF/4Y8I/arXn52xnq Jc8AGmfPZ+M4qk1HRJmHwcR8mAD5IGMaCTqcOlxhFi4qd6UmgdffyOsQfDxk4vk/0a58 1LscTNEiNUe5g2CoWj3mF7BTJeTy9EYNl4Fg8= Received: by 10.102.226.1 with SMTP id y1mr1020mug.0.1274357086765; Thu, 20 May 2010 05:04:46 -0700 (PDT) Received: from debian ([79.114.106.90]) by mx.google.com with ESMTPS id e8sm38582604muf.9.2010.05.20.05.04.45 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 20 May 2010 05:04:45 -0700 (PDT) Received: from [127.0.0.1] (localhost [127.0.0.1]) by debian (Postfix) with ESMTP id CCBFE9EA7A; Thu, 20 May 2010 15:04:44 +0300 (EEST) Message-ID: <4BF5255C.5010605@gmail.com> Date: Thu, 20 May 2010 15:04:44 +0300 From: =?ISO-8859-1?Q?T=F6r=F6k_Edwin?= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100515 Icedove/3.0.4 MIME-Version: 1.0 To: Julien Signoles Cc: caml-list@yquem.inria.fr Subject: Re: [Caml-list] OCaml defunctorization and other optimizations References: <4BF3E071.9040901@gmail.com> <4BF519E4.8040402@gmail.com> In-Reply-To: X-Enigmail-Version: 1.0.1 OpenPGP: id=5379965D Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Spam: no; 0.00; ocaml:01 signoles:01 signoles:01 ocaml:01 contrib:01 coq:01 contrib:01 camlp:01 edwin:98 edwin:98 wrote:01 wrote:01 compilers:01 caml-list:01 modules:02 On 05/20/2010 02:40 PM, Julien Signoles wrote: > Hello, > > 2010/5/20 Török Edwin > > > > On 05/20/2010 11:41 AM, Julien Signoles wrote: > I think that'll have to be someone else than me, as I consider myself > just a beginner in OCaml. > However if you think that implementing AST transforms would be possible > for a beginner (in OCaml, I do have experience with compilers), I'm > willing to give it a try. > > > I wrote ocamldefun during my master project where I done both the theory > and the implementation of this tool: I was a beginner both in ocaml and > in functional programming since I only wrote a mini-compiler in ocaml > during my studies without any lecture on functional programming. That sounds encouraging. > But ok: > there were ocaml experts in my research team which provide me some > wonderful helps :-). > > > I think that if there is a defunctorizer written it should live in the > OCaml distribution itself (maybe in contrib/). > > > Ocaml is not Coq: there is no such "contrib/" directory ;-). OK, I haven't payed much attention to the structure of the OCaml package, I just assumed there was such a directory. > As far as I > know, the Ocaml development team does not accept so much external > contributions (for many good reasons). OK, then it'll have to be an external tool (if I decide to write it after all). > > > I certainly don't intend to write an external tool that uses OCaml > internal modules. > > > That is what ocamldefun actually does. Yes, but I was thinking of something that is using an exported and documented interface (like camlp4). I think it would be easier to keep up with new OCaml versions that way. Best regards, --Edwin