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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,5752ba976f4dad11 X-Google-Attributes: gid103376,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: GNAT 3.01 Source For OS/2 Date: 1996/05/03 Message-ID: #1/1 X-Deja-AN: 152858660 references: organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada Date: 1996-05-03T00:00:00+00:00 List-Id: Frankly I did not bother to read this whole diatribe, though I have stashed it away in case I do later, but I will address one point: " This is my FIRST example of why I say the 3.03 executables you are putting out DON't match the 3.03 source. If they did and checking was turned on when the compiler was compiled, EVERY single 3.03 executable on cs.nyu.edu would not work !!!! Another possiblity is that you patched the code you used to make the 3.03 executables. If that is true I am correct without argument. The only other possibility is that ACT compiles the compiler with checks turned off when it produces its executables. The problem here has to do with the obvious implication that ACT is in the habit of TESTING thier compilers with checks TURNED OFF." In fact we debug and release with checks off and assertions on. Our assertion approach is very complete, and our experience was that constraint checks a) never found a single real bug b) did cause some bombs that were not real bugs in the sense that if constraint checks were off, the functoinality would be correct. All the cases we found were confusions between Natural and Integer, which of course are just fixed by using the right subtype. We prefer to test with exactly the same options we use for release, which is why we tend not to use the constraint checks for internal testing either. It is true that it would be a good idea to run occasionally to smoke out problems like this, but they are hardly high priority problems given that they don't affect user programs! But just to be clear, the 3.03 releases exactly match the 3.03 sources if you build in the standard manner, which everyone else seems to have no trouble doing. P.S. the problem with actual subtypes is subtle, not something I would expect to be easily noticed -- after all this fix was not put on till later. By the way, the 3.01 sources are and always have been at cs.nyu.edu as far as I know. Several people emailed me to tell me they were there! Going back to the constraint error situation, I can actually give the specific example where this caused trouble. In the 2.04 release, ew had a problem that certain error messages caused constraint errors. There weren't any instances of these messages in our regression suite so we had missed this (now of course there are dozens of instances of those messages). This turned out to be just a matter of natural vs integer. We had turned on constraint checks for the release to increase the reliability, and oddly, if had significantly decreased the reliability. That was the point at which we realized that constraint chceks had never been useful to us anyway given our assertions (which are pretty extensive, the front end spends 80-90% of the execution time executing assertion statements), so we removed them and never put them back. Actually in the near future, we may release without the assertion checks. It is possible that the constraint checks will then prove useful again, we are currently making some measurements to find out what the best apporach is. As for the unsatisfied customer here, I guess that just goes to show you cannot make everyone happy. We will be happy to refund what he paid for GNAT, since he does not think it is worth it :-) P.S. we just froze the sources for 3.04. We will be doing a few days of final beta testing (there should be a word like gamma testing), and then we will rlease the public SGI and Solaris versions at least in a few days, with other ports to follow along, including the DOS 3.04 with full tasking.