From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,a8985ede8fe3d111 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-10-05 09:35:08 PST Path: bga.com!news.sprintlink.net!redstone.interpath.net!ddsw1!panix!zip.eecs.umich.edu!newsxfer.itd.umich.edu!europa.eng.gtefsd.com!swiss.ans.net!cmcl2!thecourier.cims.nyu.edu!thecourier.cims.nyu.edu!nobody From: dewar@cs.nyu.edu (Robert Dewar) Newsgroups: comp.lang.ada Subject: Re: Ada compared to C++ Date: 5 Oct 1994 08:02:25 -0400 Organization: Courant Institute of Mathematical Sciences Message-ID: <36u4kh$s2k@gnat.cs.nyu.edu> References: <36h4pc$9dd@starbase.neosoft.com> <36msgr$qq2@starbase.neosoft.com> <36thvr$m3d@rational.rational.com> NNTP-Posting-Host: gnat.cs.nyu.edu Date: 1994-10-05T08:02:25-04:00 List-Id: Of course the key here is not out-of-date, but inconsistent, and indeed Ed's arguments would be clearer with this modification. Make is, as I have found out, having used it for GNAT for some time now, totally inadequate. The fundamental problem is that the comparison of greater than on time stamps just doesn't work. If you go back to a previous version of the source with an old time stamp, then make thinks it's up to date. Of course in the GNAT case, the binder complains, so you can't actually build the inconsistent application that make thinks is just fine (but of course you could in C or C++). Now of course I realize that there are much more sophisticated tools than make for ensuring consistency (e.g. clearcase from SGI, recently mentioned in this newsgroup). If someone will promise me that all C++ applications are built with such tools, and no one uses make or worse still, nothing at all, then all would be well, but you know perfectly well this is not the case (or perhaps I should say not the clearcase :-) With Ada on the other hand, I know that everyone is using tools to ensure consistency because you can't get around them (without doing something very deliberate). Note that there is nothing to stop the Ada approach from being grafted into C++. An interesting project in the GCC world would be to make g++ share the same consistency mechanisms that are used by GNAT. However, it is clear that there is a real advantage in having these mechanisms clear at the language level. Going back to GNAT, we will continue to use make files indefinitely (unless someone follows the GCC thoughts in the previous paragraph), since GNAT is a mixed C/Ada application, and we need the make for the C part (and in any case we use make for higher level control like building distributions and running bootstraps). However, the explicit list of dependencies in the GNAT makefile for the compiler Ada sources is very irritating. For one thing, it is always one step out of date, it is yesterdays dependencies, not todays. The solution of course is a decent make program, and we are now working on one (its actually quite simple to do) called gnatmake, and then the make file will simply call gnatmake.