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.1 required=5.0 tests=AWL,SPF_NEUTRAL autolearn=disabled version=3.1.3 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 49581BC69 for ; Tue, 8 May 2007 11:19:20 +0200 (CEST) Received: from wr-out-0506.google.com (wr-out-0506.google.com [64.233.184.231]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l489JIFU008401 for ; Tue, 8 May 2007 11:19:19 +0200 Received: by wr-out-0506.google.com with SMTP id l58so1917827wrl for ; Tue, 08 May 2007 02:19:18 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=tQB6kgaQVyZJAtyf5euDi7jdsFVsOQSJZbq9s0pkiHIY4LwBBv44437xAthCgGEnR6jtQWnbQBr1Ngx8v/4uzCN98vtFFnhen0Go88HvVPWAuVXN8iXoKXBq3+q5fQUvsAP7zPwZk62kBO6c2tVGkrxg5yD1jgs/iuUd28LZ4VM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=c9c43eYHzAAh4tSalvIW+A5+fd5dIUpDpKtJoGn0j/Hw6iBCHaKLrm95Co6hfVzFJzWRSS+d9VwFoQfkSeDznPmQQR7baW9ee9hPzhQ8hJbPjBTnHW5NBSlyFR8NRqikfS6Ks2w9P2iztW/ltaGPozMjJUF18cY3r0+z96sPL+4= Received: by 10.115.74.1 with SMTP id b1mr2519532wal.1178615956674; Tue, 08 May 2007 02:19:16 -0700 (PDT) Received: by 10.114.183.11 with HTTP; Tue, 8 May 2007 02:19:11 -0700 (PDT) Message-ID: Date: Tue, 8 May 2007 11:19:11 +0200 From: "Nicolas Pouillard" To: micha Subject: Re: [Caml-list] using camlp4 Cc: caml-list@inria.fr In-Reply-To: <20070508001706.32a70243@hmmm.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_28820_13115000.1178615951599" References: <20070508001706.32a70243@hmmm.de> X-j-chkmail-Score: MSGID : 46404096.003 on concorde : j-chkmail score : XX : 0/20 2 0.000 -> 2 X-Miltered: at concorde with ID 46404096.003 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; camlp:01 camlp:01 endline:01 ocaml:01 lib:01 cmo:01 ocaml:01 cmo:01 ocamlc:01 -pp:01 cmo':01 ocamlc:01 -pp:01 cmo':01 syntax:01 X-Attachments: cset="UTF-8" cset="ANSI_X3.4-1968" name="pa_oo.ml" name="pa_oo.ml" ------=_Part_28820_13115000.1178615951599 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline On 5/8/07, micha wrote: > hi, > > I have classes which have many getter/setter methods. At the moment I > use two naming schemes intermixed: get_property / set_property and > property / set_property and I don't like that very much. > I would like to integrate one camlp4 extension which allows to define > the getter and setter methods for members, to be able to write: > > obj#prob <- xxx; > print_endline obj#prob; The pa_oo extension from Jacques Garrigue does exactly this kind of things: http://www.math.nagoya-u.ac.jp/~garrigue/code/ocaml.html I attach the upgraded to 3.10 extension. > Is this a good idea to integrate camlp4 macros in my project? No in particular when using clean and simple extensions pa_oo. > If someone who might use my lib also uses a camlp4 extension, can this > lead to trouble? No since people use a compiled version of your library, so all the sugar provided by macros is gone. Regards, -- Nicolas Pouillard ------=_Part_28820_13115000.1178615951599 Content-Type: text/plain; name=pa_oo.ml; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f1g5dw3c Content-Disposition: attachment; filename="pa_oo.ml" KCoKICBXaXRoIG9jYW1sYnVpbGQ6CiAgICBUbyBjb21waWxlICh1c2luZyB0aGlzIF90YWdzIGZp bGUpOgogICAgICBvY2FtbGJ1aWxkIHBhX29vLmNtbwogICAgVG8gdXNlOgogICAgICBvY2FtbCBj YW1scDRvLmNtYSAuL19idWlsZC9wYV9vby5jbW8KICAgIG9yCiAgICAgIG9jYW1sYyAtcHAgJ2Nh bWxwNG8gLi9fYnVpbGQvcGFfb28uY21vJwoKICBXaXRob3V0OgogICAgVG8gY29tcGlsZToKICAg ICAgb2NhbWxjIC1JICtjYW1scDQgLWMgLXBwIGNhbWxwNG9yZiBwYV9vby5tbAogICAgVG8gdXNl OgogICAgICBvY2FtbCBjYW1scDRvLmNtYSBwYV9vby5jbW8KICAgIG9yCiAgICAgIG9jYW1sYyAt cHAgJ2NhbWxwNG8gLUkgLiBwYV9vby5jbW8nCiopCgpvcGVuIENhbWxwNC5QcmVDYXN0Cgptb2R1 bGUgQ2FtbCA9IFN5bnRheAoKbGV0IGV4cGFuZF9hY2Nlc3MgX2xvYyBtdXQgaWQgZSBraW5kID0K ICBsZXQgaWQnID0gaWReIiciIGluCiAgbGV0IHJlYWRlciA9IDw6Y2xhc3Nfc3RyX2l0ZW08IG1l dGhvZCAkaWQkID0gJGxpZDppZCQgPj4KICBhbmQgd3JpdGVyID0KICAgIDw6Y2xhc3Nfc3RyX2l0 ZW08IG1ldGhvZCAkInNldF8iXmlkJCAkbGlkOmlkJyQgPSAkbGlkOmlkJCA6PSAkbGlkOmlkJyQg Pj4KICBpbgogIGxldCBhY2Nlc3NvcnMgPQogICAgbWF0Y2gga2luZCB3aXRoIE5vbmUgLT4gPDpj bGFzc19zdHJfaXRlbTw+PgogICAgfCBTb21lIGsgLT4gbWF0Y2ggayB3aXRoCiAgICAgIHwgYFIg LT4gcmVhZGVyCiAgICAgIHwgYFcgLT4gd3JpdGVyCiAgICAgIHwgYFJXIC0+IDw6Y2xhc3Nfc3Ry X2l0ZW08ICRyZWFkZXIkOyAkd3JpdGVyJCA+PgogIGluCiAgPDpjbGFzc19zdHJfaXRlbTwKICAg IHZhbHVlICRtdXRhYmxlOm11dCQgJGxpZDppZCQgPSAkZSQ7CiAgICAkYWNjZXNzb3JzJAogID4+ CgooKiBDb3BpZWQgZnJvbSBjYW1scDQvQ2FtbHA0UGFyc2Vycy9DYW1scDRPQ2FtbFJldmlzZWRQ YXJzZXIubWwgKikKbGV0IGJpZ2FycmF5X3NldCBfbG9jIHZhciBuZXd2YWwgPQogIG1hdGNoIHZh ciB3aXRoCiAgfCA8OmV4cHI8IEJpZ2FycmF5LkFycmF5MS5nZXQgJGFyciQgJGMxJCA+PiAtPgog ICAgICBTb21lIDw6ZXhwcjwgQmlnYXJyYXkuQXJyYXkxLnNldCAkYXJyJCAkYzEkICRuZXd2YWwk ID4+CiAgfCA8OmV4cHI8IEJpZ2FycmF5LkFycmF5Mi5nZXQgJGFyciQgJGMxJCAkYzIkID4+IC0+ CiAgICAgIFNvbWUgPDpleHByPCBCaWdhcnJheS5BcnJheTIuc2V0ICRhcnIkICRjMSQgJGMyJCAk bmV3dmFsJCA+PgogIHwgPDpleHByPCBCaWdhcnJheS5BcnJheTMuZ2V0ICRhcnIkICRjMSQgJGMy JCAkYzMkID4+IC0+CiAgICAgIFNvbWUgPDpleHByPCBCaWdhcnJheS5BcnJheTMuc2V0ICRhcnIk ICRjMSQgJGMyJCAkYzMkICRuZXd2YWwkID4+CiAgfCA8OmV4cHI8IEJpZ2FycmF5LkdlbmFycmF5 LmdldCAkYXJyJCBbfCAkY29vcmRzJCB8XSA+PiAtPgogICAgICBTb21lIDw6ZXhwcjwgQmlnYXJy YXkuR2VuYXJyYXkuc2V0ICRhcnIkIFt8ICRjb29yZHMkIHxdICRuZXd2YWwkID4+CiAgfCBfIC0+ IE5vbmUKCmxldCBleHBhbmRfc2V0IF9sb2MgZTEgZTIgPQogIG1hdGNoIGJpZ2FycmF5X3NldCBf bG9jIGUxIGUyIHdpdGgKICB8IFNvbWUgZSAtPiBlCiAgfCBOb25lIC0+IG1hdGNoIGUxIHdpdGgK ICAgIHwgPDpleHByPCAkbyQgIyAkeCQgPj4gLT4gPDpleHByPCAkbyQgIyAkInNldF8iXngkICRl MiQgPj4KICAgIHwgXyAtPiA8OmV4cHI8ICRlMSQgOj0gJGUyJCA+PgoKREVMRVRFX1JVTEUgQ2Ft bC5HcmFtIENhbWwuZXhwcjogU0VMRjsgIjwtIjsgQ2FtbC5leHByIExFVkVMICJ0b3AiIEVORDs7 CgpFWFRFTkQgQ2FtbC5HcmFtCiAgR0xPQkFMOiBDYW1sLmNsYXNzX3N0cl9pdGVtIENhbWwuZXhw ciBDYW1sLm9wdF9tdXRhYmxlIENhbWwuY3R5cDsKICBDYW1sLmNsYXNzX3N0cl9pdGVtOiBbCiAg ICBbICJ2YWwiOyAibXV0YWJsZSI7IGBMSURFTlQgbGFiOyBlID0gY3ZhbHVlX2JpbmRpbmc7IGtp bmQgPSBjdmFsdWVfa2luZCAtPgogICAgICBleHBhbmRfYWNjZXNzIF9sb2MgQXN0LkJUcnVlIGxh YiBlIGtpbmQKICAgIHwgInZhbCI7IGBMSURFTlQgbGFiOyBlID0gY3ZhbHVlX2JpbmRpbmc7IGtp bmQgPSBjdmFsdWVfa2luZCAtPgogICAgICBleHBhbmRfYWNjZXNzIF9sb2MgQXN0LkJGYWxzZSBs YWIgZSBraW5kIF0KICBdOwogIGN2YWx1ZV9raW5kOiBbCiAgICBbIGtpbmQgPSBPUFQgWyAid2l0 aCI7IGsgPQogICAgICAgWyAicmVhZGVyIiAtPiBgUiB8ICJ3cml0ZXIiIC0+IGBXIHwgImFjY2Vz c29yIiAtPiBgUlcgXSAtPiBrXSAtPgogICAgICBraW5kIF0KICBdOwogIGN2YWx1ZV9iaW5kaW5n OiBbCiAgICBbICI9IjsgZSA9IENhbWwuZXhwciAtPiBlCiAgICB8ICI6IjsgdCA9IENhbWwuY3R5 cDsgIj0iOyBlID0gQ2FtbC5leHByIC0+IDw6ZXhwcjwgKCRlJCA6ICR0JCkgPj4gXQogIF07CiAg Q2FtbC5leHByOiBMRVZFTCAiOj0iIFsKICAgIFsgZTEgPSBTRUxGOyAiPC0iOyBlMiA9IENhbWwu ZXhwciBMRVZFTCAidG9wIiAtPiBleHBhbmRfc2V0IF9sb2MgZTEgZTIgXQogIF07CiAgQ2FtbC5l eHByOiBMRVZFTCAic2ltcGxlIiBbCiAgICBbICJ7fCI7IGNmID0gTElTVDEgb2JqX3JlY29yZCBT RVAgIjsiOyAifH0iIC0+CiAgICAgICgqIHNlbGYgPSBPUFQKICAgICAgICBbICIoIjsgcCA9IHBh dHQ7ICI6IjsgdCA9IGN0eXA7ICIpIiAtPiA8OnBhdHQ8ICgkcCQgOiAkdCQpID4+CiAgICAgICAg fCAiKCI7IHAgPSBwYXR0OyAiKSIgLT4gPDpwYXR0PCAkcCQgPj4gXTsgKikKICAgICAgPDpleHBy PCBvYmplY3QgJEFzdC5jclNlbV9vZl9saXN0IGNmJCBlbmQgPj4gXQogIF07CiAgb2JqX3JlY29y ZDogWwogICAgWyAiaW5oZXJpdCI7IGNlID0gQ2FtbC5jbGFzc19leHByIC0+IDw6Y2xhc3Nfc3Ry X2l0ZW08IGluaGVyaXQgJGNlJCA+PgogICAgfCBtZiA9IENhbWwub3B0X211dGFibGU7IGBMSURF TlQgbGFiOyB0eSA9IE9QVCBbICI6IjsgdCA9IENhbWwuY3R5cCAtPiB0XTsKICAgICAgIj0iOyBl ID0gQ2FtbC5leHByIExFVkVMICJ0b3AiIC0+CiAgICAgICAgZXhwYW5kX2FjY2VzcyBfbG9jIG1m IGxhYiBlIChTb21lKGlmIG1mID0gQXN0LkJGYWxzZSB0aGVuIGBSIGVsc2UgYFJXKSkgXQogIF07 CkVORDs7Cgo= ------=_Part_28820_13115000.1178615951599--