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 mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 6185ABBAF for ; Sat, 6 Feb 2010 13:44:46 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ah8CAFfzbEtV2gB4nGdsb2JhbACDM5gZAQEBAQEICwgJE6lrj1CBL4JKWwSDK4Yx X-IronPort-AV: E=Sophos;i="4.49,418,1262559600"; d="scan'208";a="55952923" Received: from emailfrontal1.citycable.ch ([85.218.0.120]) by mail4-smtp-sop.national.inria.fr with SMTP; 06 Feb 2010 13:44:46 +0100 Received: from [192.168.0.12] (unknown [85.218.92.99]) (Authenticated sender: guillaume.yziquel@citycable.ch) by emailfrontal1.citycable.ch (Postfix) with ESMTPA id 472E312C096; Sat, 6 Feb 2010 13:44:44 +0100 (CET) Message-ID: <4B6D6421.3000602@citycable.ch> Date: Sat, 06 Feb 2010 13:44:17 +0100 From: Guillaume Yziquel Reply-To: guillaume.yziquel@citycable.ch User-Agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090707) MIME-Version: 1.0 To: Tiphaine Turpin Cc: caml-list@yquem.inria.fr Subject: Re: [Caml-list] camlp4 References: <4B6D5D34.6070403@irisa.fr> In-Reply-To: <4B6D5D34.6070403@irisa.fr> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam: no; 0.00; guillaume:01 guillaume:01 camlp:01 camlp:01 ocaml:01 doable:01 hands-on:98 navigate:98 caml-list:01 jambon:01 functorial:02 library:03 up-to-date:05 i'd:06 extension:06 Tiphaine Turpin a =C3=A9crit : > Andy Ray a =C3=A9crit : >> What should one do? >> =20 > Complaining on the list about lack of camlp4 documentation is a good > start :-). To help you decide (and increase the pressure on the Ocaml > team), I would like to mention some of the difficulties that I > encountered when trying to understand camlp4 as a user: I fully agree. I've been working on understanding Camlp4 recently to=20 handle one of Mauricio Fernandez' library on relational algebras. You can, eventually, if you take time, get to understan how everything=20 works out. But that involves a lot of trial and error, and I still=20 believe I do not have the full picture in mind. I'd just keep two things in mind concerning camlp4: -1- It's not hugely different from Camlp5. It is different, but not=20 hugely, at least from the newcommer's point of view. So my advice is=20 simply to work on an existing camlp4 extension, and to try groking with=20 existing camlp5 documentation, while doing trials and errors the whole=20 way long. It is painful, but it's doable. -2- A good hands-on introduction, to be read in conjunction with=20 up-to-date camlp4 code: http://martin.jambon.free.fr/extend-ocaml-syntax.html Now, if someone, or a group of people, has the courage to update=20 Martin's page to the current camlp4, that would be hugely helpful: I'm=20 pretty sure there's quite a lot of people willing to use camlp4 that are=20 simply laid back by the lack of documentation. Concerning the functorial design of the source code of camlp4, I fully=20 agree with Tiphaine. It is probably a good design choice, and when you=20 get to study it closely, it is quite remarkably done. However, a *huge*=20 pain to read and to navigate through. All the best, --=20 Guillaume Yziquel http://yziquel.homelinux.org/