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 concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 3C67DBC6C for ; Mon, 20 Aug 2007 18:42:03 +0200 (CEST) Received: from mx1.polytechnique.org (mx1.polytechnique.org [129.104.30.34]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l7KGg2Pt014086 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Mon, 20 Aug 2007 18:42:02 +0200 Received: from localhost (is005115.intra.cea.fr [132.166.135.75]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTP id E5BF533182; Mon, 20 Aug 2007 18:41:59 +0200 (CEST) Date: Mon, 20 Aug 2007 18:41:59 +0200 From: Virgile Prevosto To: Thomas Gazagnaire Cc: Caml list Subject: Re: [Caml-list] Re: instanciation of functor using command line Message-ID: <20070820184159.3b569973@localhost> In-Reply-To: <46C99CC3.7000508@irisa.fr> References: <46BFA819.4010805@irisa.fr> <20070813071740.GA7554@zen> <200708130853.36664.jon@ffconsultancy.com> <20070820154932.1494498d@localhost> <46C99CC3.7000508@irisa.fr> X-Mailer: Sylpheed-Claws 2.6.0 (GTK+ 2.10.11; i486-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=MP_xHpQkqil87an0368sfprcd9 X-AV-Checked: ClamAV using ClamSMTP at djali.polytechnique.org (Mon Aug 20 18:42:00 2007 +0200 (CEST)) X-Org-Mail: virgile.prevosto.1996@polytechnique.org X-Miltered: at concorde with ID 46C9C45A.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; functor:01 irisa:01 ocaml:01 ocamlc:01 -pp:01 camlp:01 cmo:01 mlast:01 cmo:01 -impl:01 -impl:01 tutto:98 oggi:98 volta:98 syntactic:01 X-Attachments: cset="UTF-8" type="text/x-ocaml" name="choose_module.ml4" name="choose_module.ml4" --MP_xHpQkqil87an0368sfprcd9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Le lun 20 ao=C3=BB 2007 15:53:07 CEST, Thomas Gazagnaire a =C3=A9crit : > Virgile Prevosto a =C3=A9crit : > > In fact, I've written something like that some time ago. If someone > > is interested, I might try to find the code (and maybe adapt it to > > 3.10). > >=20 >=20 > I am interested :) OK. After re-reading the code, I'm not completely sure that it'll do exactly what you want, but it is attached to this mail, with a very small example of the syntactic constructions it defines. It should compile with ocaml 3.09.2 (ocamlc -c -pp "camlp4o pa_extend.cmo q_MLast.cmo -impl" -impl choose_module.ml4) --=20 E tutto per oggi, a la prossima volta. Virgile --MP_xHpQkqil87an0368sfprcd9 Content-Type: text/x-ocaml; name=choose_module.ml4 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=choose_module.ml4 KCogQ29weXJpZ2h0IChjKSAyMDA0LTIwMDcsIFZpcmdpbGUgUHJldm9zdG8NCiAqIEFsbCByaWdo dHMgcmVzZXJ2ZWQuDQogKg0KICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoNCiAq ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv dmUgY29weXJpZ2h0DQogKiAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQogKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgICAg bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp bWVyIGluIHRoZQ0KICogICAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCiAqICAgICAqIFRoZSBuYW1lcyBvZiBp dHMgY29udHJpYnV0b3JzIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUNCiAq ICAgICAgIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm aWMgcHJpb3INCiAqICAgICAgIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqDQogKiBUSElTIFNPRlRX QVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgQU5ZDQogKiBFWFBSRVNTIE9SIElNUExJRUQg V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEDQog KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQVJFDQogKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU SE9SUyBCRSBMSUFCTEUgRk9SIEFOWQ0KICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMNCiAqIChJTkNMVURJ TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP UiBTRVJWSUNFUzsNCiAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORA0KICogT04gQU5ZIFRIRU9SWSBPRiBM SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQN CiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTDQogKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCiAqKQ0KDQooKiogc3ludGFjdGljIHN1 Z2FyIHRvIGNob29zZSBtb2R1bGVzIGltcGxlbWVudGF0aW9uIGFjY29yZGluZyB0byBzb21lDQog ICAgY29uZGl0aW9uLg0KKikNCg0KKCogaW5jb21wYXRpYmxlIHdpdGggb2NhbWwgMy4xMC4gVXNh Z2U6DQogICBvY2FtbGMgLXBwIGNhbWxwNG8gY2hvb3NlX21vZHVsZS5jbW8gZmlsZS5tbA0KDQog ICBhZGRlZCBleHByZXNzaW9uczoNCg0KICAgY2hvb3NlX21vZHVsZSBNID0gbWF0Y2ggZSB3aXRo IEZvbyB3aGVuIHRydWUgLT4gTTEgfCBfIC0+IE1kZWZhdWx0IGluIE0ueA0KDQogICByZWdpc3Rl cl9tb2R1bGUgImlkZW50IiBNMSxNMixNMyBpbiBjaG9pY2UNCiAgIHNlbGVjdF9tb2R1bGUgQSBm cm9tIGNob2ljZSB1c2luZyBlIHdpdGggRiBpbiBBLngNCg0KICAgcmVnaXN0ZXIgYW5kIHNlbGVj dCB1c2UgYW4gaW50ZXJtZWRpYXRlIGZpbGUsIGNob2ljZS5wNG8sIHdyaXR0ZW4gYnkNCiAgIHJl Z2lzdGVyIGFuZCByZWFkIGJ5IHNlbGVjdC4gaWYgZSBpcyBlcXVhbCB0byAiaWRlbnQiLCB0aGVu IEEgd2lsbCBiZQ0KICAgYm91bmQgdG8gRihNMSxNMixNMykNCg0KKikNCg0Kb3BlbiBQY2FtbA0K DQpsZXQgY2hvaWNlcyA9IEdyYW1tYXIuRW50cnkuY3JlYXRlIFBjYW1sLmdyYW0gImNob2ljZXMi DQoNCigqIGV4dGVuc2lvbiBvZiBmaWxlIHN0b3JpbmcgbGlzdCBvZiBtb2R1bGUgY2hvaWNlcy4g KikNCmxldCBleHQgPSAiLnA0byINCg0KbGV0IG9wZW5fcGF0aCBvcGVuX2Z1bmMgZiA9DQogIGlm IFN5cy5maWxlX2V4aXN0cyBmIHRoZW4NCiAgICBvcGVuX2Z1bmMgZg0KICBlbHNlDQogICAgbGV0 IHJlYyB0cnlfZGlyIGxzdCAgPQ0KICAgICAgbWF0Y2ggbHN0IHdpdGgNCiAgICAgICAgICBbXSAt PiByYWlzZSBOb3RfZm91bmQNCiAgICAgICAgfCBhOjpsIC0+DQogICAgICAgICAgICBsZXQgZnBh dGggPSBGaWxlbmFtZS5jb25jYXQgYSBmIGluDQogICAgICAgICAgICAgIGlmIFN5cy5maWxlX2V4 aXN0cyBmcGF0aCB0aGVuDQogICAgICAgICAgICAgICAgb3Blbl9mdW5jIGZwYXRoDQogICAgICAg ICAgICAgIGVsc2UgdHJ5X2RpciBsDQogICAgaW4gdHJ5X2RpciAhT2R5bF9tYWluLnBhdGgNCg0K bGV0IG9wZW5faW5fcGF0aCA9IG9wZW5fcGF0aCBvcGVuX2luX2Jpbg0KbGV0IG9wZW5fb3V0X3Bh dGggPSBvcGVuX3BhdGggb3Blbl9vdXRfYmluDQoNCmxldCBtYWtlX29uZV9jaG9pY2UgYSBtb2Rf ZXhwciBleHAgPQ0KICBsZXQgX2xvYyA9IExleGluZy5kdW1teV9wb3MsIExleGluZy5kdW1teV9w b3MgaW4NCiAgICA8OmV4cHI8bGV0IG1vZHVsZSAkdWlkOmEkID0gJG1vZF9leHByJCBpbiAkZXhw JD4+DQoNCkVYVEVORA0KICAgIGV4cHI6IFtbDQogICAgICAgICAgICAiY2hvb3NlX21vZHVsZSI7 IGEgPSBVSURFTlQ7ICI9IjsgIm1hdGNoIiA7IGNvbmQgPSBleHByOyAid2l0aCI7DQogICAgICAg ICAgICBPUFQgInwiOyBsID0gTElTVDEgY2hvaWNlcyBTRVAgInwiOw0KICAgICAgICAgICAgImlu IjsgZSA9IGV4cHIgLT4NCiAgICAgICAgICAgICAgbGV0IG5ld19sID0gTGlzdC5tYXANCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChwYXR0LG9wdHdoZW4sZXhwcikgLT4NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAocGF0dCxvcHR3aGVuLCBtYWtlX29uZV9jaG9pY2Ug YSBleHByIGUpKSBsDQogICAgICAgICAgICAgIGluICA8OmV4cHI8IG1hdGNoICRjb25kJCB3aXRo IFskbGlzdDpuZXdfbCRdID4+DQogICAgICAgICAgfCAicmVnaXN0ZXJfbW9kdWxlIjsgb3B0PVNU UklORzsgbD1MSVNUMSBtb2R1bGVfZXhwciBTRVAgIiwiOyAiaW4iOw0KICAgICAgICAgICAgICAg ICAgc3RvcmUgPSBMSURFTlQgLT4NCiAgICAgICAgICAgICAgICAgICAgbGV0IGZpbGVuYW1lID0g c3RvcmUgXiBleHQgaW4NCiAgICAgICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRfdGFibGUgPQ0K ICAgICAgICAgICAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNo YW4gPSBvcGVuX2luX3BhdGggZmlsZW5hbWUgaW4NCiAgICAgICAgICAgICAgICAgICAgICAgIGxl dCByZXMgPSBNYXJzaGFsLmZyb21fY2hhbm5lbCBjaGFuIGluDQogICAgICAgICAgICAgICAgICAg ICAgICAgIGNsb3NlX2luIGNoYW47IHJlcw0KICAgICAgICAgICAgICAgICAgICAgIHdpdGggTm90 X2ZvdW5kIHwgRW5kX29mX2ZpbGUgLT4gSGFzaHRibC5jcmVhdGUgNw0KICAgICAgICAgICAgICAg ICAgICBpbg0KICAgICAgICAgICAgICAgICAgICAgIEhhc2h0YmwucmVwbGFjZSBjdXJyZW50X3Rh YmxlIG9wdCBsOw0KICAgICAgICAgICAgICAgICAgICAgIGxldCBjaGFuID0NCiAgICAgICAgICAg ICAgICAgICAgICAgIHRyeSBvcGVuX291dF9wYXRoIGZpbGVuYW1lDQogICAgICAgICAgICAgICAg ICAgICAgICB3aXRoIE5vdF9mb3VuZCAtPiBvcGVuX291dF9iaW4gZmlsZW5hbWUNCiAgICAgICAg ICAgICAgICAgICAgICBpbg0KICAgICAgICAgICAgICAgICAgICAgICAgTWFyc2hhbC50b19jaGFu bmVsIGNoYW4gY3VycmVudF90YWJsZSBbXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZsdXNo IGNoYW47IGNsb3NlX291dCBjaGFuOw0KICAgICAgICAgICAgICAgICAgICAgICAgPDpleHByPCAk c3RyOm9wdCQgPj4NCiAgICAgICAgICB8ICJzZWxlY3RfbW9kdWxlIjsgYSA9IFVJREVOVDsgImZy b20iOyBzdG9yZSA9IExJREVOVDsgInVzaW5nIjsNCiAgICAgICAgICAgICAgICAgIGNob2ljZSA9 IGV4cHI7DQogICAgICAgICAgICAgICAgICBwb3N0X3Byb2Nlc3MgPSBPUFQgWyJ3aXRoIjsgbSA9 IG1vZHVsZV9leHByIC0+IG1dOw0KICAgICAgICAgICAgICAgICAgImluIjsgZSA9IGV4cHIgLT4N CiAgICAgICAgICAgICAgICAgICAgbGV0IGFwcGx5IGYgeCA9IDw6bW9kdWxlX2V4cHI8ICRmJCAk eCQ+PiBpbg0KICAgICAgICAgICAgICAgICAgICBsZXQgY3JlYXRlX21vZF92YWx1ZSBsID0NCiAg ICAgICAgICAgICAgICAgICAgICBtYXRjaCBwb3N0X3Byb2Nlc3Mgd2l0aA0KICAgICAgICAgICAg ICAgICAgICAgICAgICBOb25lIC0+IExpc3QuaGQgbA0KICAgICAgICAgICAgICAgICAgICAgICAg fCBTb21lIHMgLT4gTGlzdC5mb2xkX2xlZnQgYXBwbHkgcyBsDQogICAgICAgICAgICAgICAgICAg IGluDQogICAgICAgICAgICAgICAgICAgIGxldCBzZWxlY3Rpb24gPQ0KICAgICAgICAgICAgICAg ICAgICAgIHRyeQ0KICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNoYW4gPSBvcGVuX2luX3Bh dGggKHN0b3JlIF4gZXh0KSBpbg0KICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlcyA9DQog ICAgICAgICAgICAgICAgICAgICAgICAgIE1hcnNoYWwuZnJvbV9jaGFubmVsIGNoYW4NCiAgICAg ICAgICAgICAgICAgICAgICAgIGluIGNsb3NlX2luIGNoYW47IHJlcw0KICAgICAgICAgICAgICAg ICAgICAgIHdpdGggTm90X2ZvdW5kIHwgRW5kX29mX2ZpbGUgIC0+DQogICAgICAgICAgICAgICAg ICAgICAgICBIYXNodGJsLmNyZWF0ZSAxDQogICAgICAgICAgICAgICAgICAgIGluDQogICAgICAg ICAgICAgICAgICAgIGxldCBwYXR0cyA9DQogICAgICAgICAgICAgICAgICAgICAgSGFzaHRibC5m b2xkDQogICAgICAgICAgICAgICAgICAgICAgICAoZnVuIHBhdHQgLT4gZnVuIG1vZF9leHByX2xp c3QgLT4gZnVuIGwgLT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICg8OnBhdHQ8JHN0cjpw YXR0JD4+LCBOb25lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2Vfb25lX2Nob2lj ZSBhDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3JlYXRlX21vZF92YWx1ZSBtb2Rf ZXhwcl9saXN0KSBlKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgOjogbCkNCiAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGVjdGlvbiBbIDw6cGF0dDwgXyA+PiwgTm9uZSwNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw6ZXhwcjwgZmFpbHdpdGgNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJub3QgYSB2YWxpZCBvcHRpb24gZm9yIHNlbGVj dGlvbiBvZiAiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gJHN0cjpz dG9yZSQpPj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdDQogICAgICAgICAg ICAgICAgICAgIGluIDw6ZXhwcjwgbWF0Y2ggJGNob2ljZSQgd2l0aCBbJGxpc3Q6cGF0dHMkXT4+ DQpdXTsNCg0KICBjaG9pY2VzOiBbWyBwPXBhdHQ7IHcgPSBPUFQgWyJ3aGVuIjsgZSA9IGV4cHIg LT4gZV07ICItPiI7IG0gPSBtb2R1bGVfZXhwciAtPg0KICAgICAgICAgICAgICAgIChwLHcsbSkN CiAgICAgICAgICAgIF1dOw0KRU5EDQo= --MP_xHpQkqil87an0368sfprcd9--