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 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id 64F3EBC69 for ; Sun, 5 Aug 2007 18:41:13 +0200 (CEST) Received: from smtp6-g19.free.fr (smtp6-g19.free.fr [212.27.42.36]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l75GfDdb021496 for ; Sun, 5 Aug 2007 18:41:13 +0200 Received: from smtp6-g19.free.fr (localhost.localdomain [127.0.0.1]) by smtp6-g19.free.fr (Postfix) with ESMTP id DD7D3B89F8; Sun, 5 Aug 2007 18:41:12 +0200 (CEST) Received: from [192.168.1.2] (che78-2-82-237-71-191.fbx.proxad.net [82.237.71.191]) by smtp6-g19.free.fr (Postfix) with ESMTP id 9D44AB8A18; Sun, 5 Aug 2007 18:41:12 +0200 (CEST) Message-ID: <46B5FDA8.6060805@inria.fr> Date: Sun, 05 Aug 2007 18:41:12 +0200 From: Xavier Leroy User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050317) X-Accept-Language: en-us, en MIME-Version: 1.0 To: David Allsopp Cc: OCaml List Subject: Re: [Caml-list] Sorted list References: <46B4485B.7040406@menta.net> <46B454ED.700@philippewang.info><1186226538.14440.105.camel@rosella.wigram><46B48F3C.1040904@menta.net><1186242141.11801.10.camel@rosella.wigram><20070804162135.GA7370@furbychan.cocan.org><1186250087.6025.41.camel@rosella.wigram> <20070804191654.GI23762@furbychan.cocan.org> <000c01c7d77c$d5adeb50$6a7ba8c0@treble> In-Reply-To: <000c01c7d77c$d5adeb50$6a7ba8c0@treble> X-Enigmail-Version: 0.91.0.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Miltered: at discorde with ID 46B5FDA9.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; recursive:01 o'caml:01 stdlib:01 ocaml:01 recursion:01 constructors:01 compiler:01 trivial:01 versioning:01 ocaml:01 amusing:01 variants:01 sunos:01 genius:98 unix:01 > ExtList is underpinned by Obj.magic - Agreed. > its "tail recursive" implementations > work by manipulating the internal representation of a list rather than > writing "proper" O'Caml (it's a piece of genius and frankly is how the > StdLib ought to do it...). I don't think so -- basically, Obj.magic isn't part of the OCaml language and should not be used unless there is absolutely no other option. The Queue module is the standard library uses Obj.magic for additional performance, but this is really sending the wrong message. If tail recursion elimination modulo constructors (what Extlib is doing manually) is really important, I believe it should be done by the compiler, under the hood. (That's not trivial, mind you.) >>Well, Windows is a world apart. It has no packaging system to speak >>of, no versioning, no centralised repository, no installation policies >>of note. In other words, it's where Linux was circa 1993. > > Spoken by someone who sounds like he hasn't used Windows since 1993? :o) I reluctantly but regularly use Windows to maintain the Windows port of OCaml, and agree with Richard Jones's assessment. Windows is geared towards the installation of big, standalone programs like Office or games, but has nothing comparable to the package management facilities of Linux or BSD. > My understanding is that in 1993 finding any PC hardware capable of > running Linux was the amusing game... rose-tinted spectacles, > perhaps? Replace "Linux circa 1993" by "Unix variants circa 1993" (SunOS, Ultrix, etc) if you wish. But for the record, I was running NetBSD on a bog-standard 486 PC in 1993, and installed Slackware Linux on the same PC in 1994. - Xavier Leroy