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=none autolearn=disabled version=3.1.3 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 50947BBB7 for ; Sat, 4 Oct 2008 20:40:38 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlsBACNV50hA6ba7k2dsb2JhbACBcU2QZT4BAQEBCQkKCREDnj2GSgEC X-IronPort-AV: E=Sophos;i="4.33,361,1220220000"; d="scan'208";a="18213809" Received: from nf-out-0910.google.com ([64.233.182.187]) by mail1-smtp-roc.national.inria.fr with ESMTP; 04 Oct 2008 20:40:37 +0200 Received: by nf-out-0910.google.com with SMTP id b11so1002810nfh.13 for ; Sat, 04 Oct 2008 11:40:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:organization:to:subject:date :user-agent:references:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:message-id:from; bh=+iZK843edJWWSNsqlgyp4AJY9Syt8HJlYiYBDNG1MOQ=; b=K5U0TUu3YdETHpLF1K6ZIT5UMGO/UDAsuUT4+WbDyMFpdko4e79lyYUsJvFBRv+8yF G+rfJnTqAih+v/r4zRY6n1aWFbeuVTj4LOq+mrD9ibz5FueL7YeMS3JRI0g/JCInVJaQ zc4DWnvdIWGaBvOr2aiqkh6RijcwbCgPvEmKI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=organization:to:subject:date:user-agent:references:in-reply-to :mime-version:content-type:content-transfer-encoding :content-disposition:message-id:from; b=G3/AmSlOrbbz7IKZDjmCb5Cq2Yn7IO7Mw1UZJxwFeCBCYGzCMFAXzIlv7yPfzqJdky Yd6clrcJ6wN2ESySF1PGrwrEnx293RviygA5tAN8lhV8PNDVS8V5C0Lwo1aEswsQUroy 1js9XHfN1Gu37ikFqjXl4/ABIEI8kBcJ1T+5k= Received: by 10.210.124.15 with SMTP id w15mr3387274ebc.115.1223145637392; Sat, 04 Oct 2008 11:40:37 -0700 (PDT) Received: from leper.local (host86-139-250-145.range86-139.btcentralplus.com [86.139.250.145]) by mx.google.com with ESMTPS id m5sm8423410gve.3.2008.10.04.11.40.36 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 04 Oct 2008 11:40:37 -0700 (PDT) Organization: Flying Frog Consultancy Ltd. To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] Metaprogramming features Date: Sat, 4 Oct 2008 20:41:35 +0100 User-Agent: KMail/1.9.9 References: <48E62D5B.3060400@mcmaster.ca> <200810041531.18370.jon@ffconsultancy.com> <20081004135715.GA29077@annexia.org> In-Reply-To: <20081004135715.GA29077@annexia.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200810042041.35499.jon@ffconsultancy.com> From: Jon Harrop X-Spam: no; 0.00; 0100,:01 weis:01 non-ocaml:01 ocaml:01 camlp:01 ocaml's:01 ocaml:01 compiler:01 inria's:01 bug:01 compiler:01 wiki:01 cvs:01 trivial:01 reimplement:01 On Saturday 04 October 2008 14:57:16 Richard Jones wrote: > On Sat, Oct 04, 2008 at 03:31:18PM +0100, Jon Harrop wrote: > > I asked if it would be worth doing so before I even attempted it and was > > told that it would not be worth attempting by Pierre Weis. Xavier Leroy > > told me that copyright issues in French law essentially prohibit > > contributions from non-French programmers. > > I'm collaborating at the moment with a couple of French programmers on > a [non-OCaml] FSF project, so this seems unlikely to me (and yes, both > the FSF and Red Hat provide lawyers to check this sort of thing out). Did you transfer copyrights? > > > Where did you nurse the patch through many iterations, > > > as the language designers asked you to fix one thing and another, > > > before the final patch was rejected? > > > > I would like to think that the OCaml community has try..finally pinned > > down now. It is the first example on every Camlp4 tutorial after all... > > Std.finally in extlib? Sure, many of OCaml's standard libraries contains a reimplementation. > I've used it precisely twice, ever, so I'm not convinced that try/finally is > the one thing missing from OCaml that would propel it to mass adoption. Indeed, OCaml has many such issues that the community could easily fix and that would help adoption. > > I'm not saying that there is anything wrong with having a language > > implementation written by language researchers for language research but > > almost all users would benefit enormously from a variety of simple > > improvements that the community could easily implement themselves were it > > feasible to get changes absorbed upstream more quickly. Now that OCaml is > > gaining traction in industry there are also a growing number of people > > willing to throw money around to get improvements made and we could all > > be benefitting from that. > > You still don't get the whole open source thing though. You need to > make the patches yourself, or get FF Consultancy to pay someone to > develop them. Deep compiler changes don't just happen because someone > demands them. Whether we're talking about INRIA's busy researchers or > volunteers maintaining Perl & Ruby in their spare time, they don't > have time to just implement stuff because people shout loudly. > Instead they review patches submitted through the standard bug > tracking system. > > Despite your claims, there are lots of features currently being > tracked through mantis. I've submitted a couple of minor ones myself, > both of which will appear in 3.11. But I didn't just demand they > happen - for both of them I submitted patches, listened to feedback, > modified things ... > > http://caml.inria.fr/mantis/ > http://et.redhat.com/~rjones/how-to-supply-code-to-open-source-projects/ > > So here's an idea: > > (1) Start a project to list all the things you think are missing from > the compiler or language. I'd join this project, because I've got a > few things of my own. > > (2) Enumerate them on a wiki or editable web page somewhere, ask > others to join, argue about the features you think are priorities. > > (3) WRITE PATCHES to implement them in the CVS version of the OCaml > compiler (or library, or wherever they need to be implemented). > > (4) Submit the patches, and detailed rationales for the changes, > through the bugtracker. > > (5) Listen to feedback, modify your patches as appropriate. Some will > get rejected, some accepted straightaway, most will need to go through > many iterations. > > When you've done all the above, in about a year I would say, and > nothing has been accepted, then you will be in a position to make wild > claims about OCaml upstream being too slow for your liking. I submitted the following trivial fix over a year ago: http://caml.inria.fr/mantis/view.php?id=4338 It was completely reimplemented by Xavier (thus avoiding copyright issues) and will be available in 3.11 well over a year after I fixed the problem. In fact, I'm not sure there would have been any point in creating a patch rather than posting code given that the code gets reimplemented anyway. I believe we can improve upon having Xavier reimplement trivial fixes himself and users having to wait for a year before they can benefit from such fixes. > And you can fork the project to make FlyingCaml++ the way you want it (ain't > open source great like that? -- try forking F# some time and find out how > hard the lawyers come down on you). That will not help merge parts of MetaOCaml (which is already a fork of OCaml) into upstream OCaml. -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e