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=AWL autolearn=disabled version=3.1.3 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 8E6CCBBAF for ; Sat, 4 Oct 2008 15:57:18 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhUDAOsS50jAXQIniGdsb2JhbACTYQEBARUipUSBaA X-IronPort-AV: E=Sophos;i="4.33,360,1220220000"; d="scan'208";a="29900089" Received: from concorde.inria.fr ([192.93.2.39]) by mail4-smtp-sop.national.inria.fr with ESMTP; 04 Oct 2008 15:57:18 +0200 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id m94DvH3U028561 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Sat, 4 Oct 2008 15:57:18 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhUDAEcT50hQRFuwiGdsb2JhbACTYQEBARUipUOBaA X-IronPort-AV: E=Sophos;i="4.33,360,1220220000"; d="scan'208";a="17657967" Received: from furbychan.cocan.org ([80.68.91.176]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES256-SHA; 04 Oct 2008 15:57:17 +0200 Received: from rich by furbychan.cocan.org with local (Exim 4.63) (envelope-from ) id 1Km7dE-0007kN-8e for caml-list@inria.fr; Sat, 04 Oct 2008 14:57:16 +0100 Date: Sat, 4 Oct 2008 14:57:16 +0100 To: caml-list@inria.fr Subject: Re: [Caml-list] Metaprogramming features Message-ID: <20081004135715.GA29077@annexia.org> References: <48E62D5B.3060400@mcmaster.ca> <200810040303.04559.jon@ffconsultancy.com> <20081004082346.GA18277@annexia.org> <200810041531.18370.jon@ffconsultancy.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200810041531.18370.jon@ffconsultancy.com> User-Agent: Mutt/1.5.13 (2006-08-11) From: Richard Jones X-Miltered: at concorde with ID 48E7763D.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; 0100,:01 weis:01 non-ocaml:01 ocaml:01 camlp:01 ocaml:01 compiler:01 inria's:01 bug:01 compiler:01 wiki:01 cvs:01 absorbed:98 listened:98 ain't:98 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). > > 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? 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. > 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. 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). Rich. -- Richard Jones Red Hat