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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,8f734cdbc8408497 X-Google-Attributes: gid103376,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: Gnat 2.06 Ada95 (unix) File format???? Date: 1996/06/23 Message-ID: X-Deja-AN: 162338166 references: <4pmfr5$epc@news3.digex.net> <4pte3s$ae5@news.erinet.com> <4qbu5h$p3f@felix.seas.gwu.edu> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada Date: 1996-06-23T00:00:00+00:00 List-Id: Ronald Cole said: Too late... Robert has already declared that 3.05 is a piece of shit and 3.06 will be here next week. If Walnut Creek were a respectable company, they would scrap all their current 3.05 CDs and immediately repress them when 3.06 comes out... I guess Ronald did not read my message carefully (not too surprising :-) In fact 3.05 is a big improvement on 3.04, and it was precisely to catch the Walnut Creek release that we put out 3.05, and the vast majority of GNAT users, including likely nearly all those getting GNAT from the CD ROM will be completely unaffected by the performance problem. Even in the case of serious production use of GNAT, most users will be unaffected by the performance issue in GNAT. As I described in my earlier message, the change we made in this area did indeed fix a functional bug, but it fixed it at the cost of performance for a certain class of programs (those that pass large records, as opposed to pointers to records). There is no comletely clean fix to this problem, given that we would like to use the C convention as the default for Ada. It just turns out that Ada programmers are much more likely than C programmers to pass large records. Note that in particular, if 3.05 is a "piece of shit" because of this behavior, then *all* C compilers are also a "piece of shit", since the ANSI C standard *requires* the worrisome behavior (copying all records when they are passed as value parameters). As I described in my previous note, this is enough of a peformance problem for a certain small fraction of Ada programs (e.g. those using bounded strings and passing them by value), that for 3.06 we have decided to abandon the absolute guarantee of Ada-C callings sequence compatibility by default for this particular case. There is certainly no point in Walnut Creek worrying about waiting for 3.06, and we already discussed this point. The only reason we are putting out a 3.06 fairly soon is to address the needs of what turns out to be a rather small number of affected users. Indeed, perhaps my original message was too arlamist, since only a small handful of users have noticed the performance problem (which can show up either as increased stack usage, or increased execution time), and we could have simply dealt with these users individually, but it seemed appropriate to send out a warning, even if it is helpful only to a small number of people. Ronald Cole said "I wonder if Robert has arranged to get a kick-back on the subscription arrangement... It seems that he's turning out substandard GNAT releases every few weeks now (instead of every month or so, like the good old days)." Well I am not sure Ronald increases his credibility with such accusations, and they probably do not even need answering, but just to prevent any possible confusions (new readers of newsgroups are not always familiar with the colorful characters inhabiting comp.lang.ada), of course neither I nor ACT get any kick back or royalty of any kind from Walnut Creek. On the contrary, we contribute our time to work with them to synchronize releases. Furthermore, Walnut Creek charges a very modest fee for this CD ROM, hardly enough to accomodate kick backs :-) I am certainly happy to recommend the Walnut Creek CD ROM to Ada users, they do an excellent job of updating it frequently, and we always have good interactions with that operation in terms of planning release schedules. So if you are looking for GNAT on CD ROM, this is definitely the best choice. If you get the latest CD ROM from Walnut Creek, you may not be absolutely at the latest release of GNAT. The only way to achieve that is FTP. But you will be very close to the latest. Current plans are as follows. SGI will ship the equivalent of 3.05 as their new manufacturing release, but with a patch to deal with the record passing problem (basically they will return to 3.04 behavior for this particular problem). They will number that release 3.06. To avoid any confusions, we will skip 3.06 at ACT and our next release which fixes the record problem, and contains other new features and fixes, including the new handling of generic messages, will be called 3.07 (we are reserving the move to 4.xx for the point when we validate against ACVC 2.0.1 on at least one target). We will start the normal release cycle on this version soon (which means about two weeks of customer testing, then the public release). For anyone running into the performance problem on 3.05, the work around is the same as it would be in C, pass a pointer to the record instead of the record itself. Robert Dewar Ada Core Technologies