From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id DAA18606; Mon, 6 Sep 2004 03:40:28 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id DAA19485 for ; Mon, 6 Sep 2004 03:40:25 +0200 (MET DST) Received: from outbound28-2.lax.untd.com (outbound28-2.lax.untd.com [64.136.28.160]) by concorde.inria.fr (8.13.0/8.13.0) with SMTP id i861eNH4006339 for ; Mon, 6 Sep 2004 03:40:24 +0200 Received: from outbound28-2.lax.untd.com (smtp03.lax.untd.com [10.130.24.123]) by smtpout02.lax.untd.com with SMTP id AABAVZR9QA5CCTHS for (sender ); Sun, 5 Sep 2004 18:39:58 -0700 (PDT) Received: (qmail 15252 invoked from network); 6 Sep 2004 01:39:05 -0000 Received: from unknown (HELO vangogh) (4.242.105.170) by smtp03.lax.untd.com with SMTP; 6 Sep 2004 01:39:05 -0000 From: "Brandon J. Van Every" To: "caml" Subject: RE: [Caml-list] Announcing the OMake build system version 0.9.1 Date: Sun, 5 Sep 2004 18:50:04 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0) In-Reply-To: <20040906010601.GB20406@annexia.org> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 Importance: Normal X-ContentStamp: 14:7:2459629635 X-UNTD-OriginStamp: CI84cOLHFqh7Zd2QWkwvEFvwyO3T/pIsFsCrOjjLH84Gt8Kkuj51vFqJK9x+XYCM X-Miltered: at concorde with ID 413BC007.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; brandon:99 caml-list:01 cygwin:01 mingw:01 orient:99 autoconf:01 autoconf:01 preferrable:01 cygwin:01 mingw:01 dependencies:01 dependencies:01 python:01 strengthened:01 java's:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Richard Jones wrote: > > Can I stand up for 'make' (well, GNU make anyway) and point out > that whatever its philosophical problems, it: > > (a) works As per discussion, YMMV. > (b) works on lots of different platforms, including Windows Um, sorta. Getting a GNU Make that is bug-free, up-to-date, and plays well with MSVC is more problematic than you'd think. Well at least, I ran around and around in circles about it for awhile. Somewhere somehow I came up with a valid one, and I'm not sure where I got it. There are some longstanding bugs pertaining to Windows that are still extant in the GNU source code, that they're not resolving "because it's not enough to make another release out of." This has been true for a few years. Other people have made patches, but these don't get incorporated into canonical builds and aren't readily distributed anywhere. It is more accurate to say that GNU Make works fine in a Cygwin / Mingw environment. That isn't really Windows, it's UNIX viralling into Windows. Many projects also orient themselves towards GNU Autoconf, which again is problematic in a pure MSVC environment. One of these days I may port Autoconf to MSVC, or track down someone else's effort. Last time I looked at that problem, I failed to get it done. It didn't look like such an easy problem, because m4 wasn't so easy to move over. But, solving *that* problem would be preferrable to going through the same UNIX dependency-and-elimination headaches one has to do anytime one moves a project from Cygwin / Mingw to MSVC. At least if Autoconf worked in the pure MSVC enviornment and targetted the right header files, you'd know how much of the Cygwin / Mingw project isn't portable. Then you could decide if it's trivial to eliminate UNIX dependencies, a lot of work, or impossible. So if someone came up with an OCaml-centric build tool that resolved configuration dependencies, was written in OCaml, worked well under all platforms including *native* Windows, and lotsa people used it, I'd be DAMN HAPPY. I think the Python community is strengthened in this regard. Seemingly they can run their stuff on all the platforms, they really don't have to care much at all which platform it's on. Getting OCaml to the point where it's really platform neutral is a worthy goal. I don't see GNU Make as part of that goal. I see it as a stepping stone that many of us would like to step over already, for all of our various reasons. > (c) works with lots of different languages (except Java, but that's > Java's fault), including our favorite OCaml, and Agreed. > (d) is familiar and simple to use for most developers Gimme a break. I put a *HUGE* learning curve into GNU Make, once upon a time. It's not simple, it's just familiar to a lot of UNIXen. Ok, it's simple for trivially sized projects. When you start getting into multiple directories, auto-generating dependencies, and keeping debug vs. release builds separated from one another, you end up doing tons of manual labor that IDEs like Visual Studio simply solve. > Sorry, just had to point out that sometimes the perfect tool fails for > practical reasons. Yes, again see my question on critical mass. Cheers, www.indiegamedesign.com Brand*n Van Every S*attle, WA Praise Be to the caml-list Bayesian filter! It blesseth my postings, it is evil crap! evil crap! Bigarray! Unboxed overhead group! Wondering! chant chant chant... Is my technical content showing? // return an array of 100 packed tuples temps int $[tvar0][2*100]; // what the c function needs value $[tvar1]; // one int value $[tvar2]; // one tuple int $[tvar3] // loop control var oncePre eachPre $[cvar0]=&($[tvar0][0]); eachPost $[lvar0] = alloc(2*100, 0 /*NB: zero-tagged block*/ ); for(int $[tvar3]=0;$[tvar3]<100;$[tvar3]++) { $[tvar2] = alloc_tuple(2); $[tvar1] = Val_int($[cvar0][0+2*$[tvar3]]); Store_field($[tvar2],0,$[tvar1]); $[tvar1] = Val_int($[cvar0][1]); Store_field($[tvar2],1,$[tvar1+2*$[tvar3]]); Array_store($[lvar0],$[tvar3],$[tvar0]); } oncePost ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners