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,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,f039470e8f537101 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-07-23 13:19:01 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!feed2.news.rcn.net!rcn!nntp.abs.net!ash.uu.net!spool.news.uu.net!not-for-mail Date: Wed, 23 Jul 2003 16:18:59 -0400 From: Hyman Rosen User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5a) Gecko/20030611 Thunderbird/0.1a X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Ariane5 FAQ References: <1058799152.775376@master.nyc.kbcfp.com> <1058810510.375902@master.nyc.kbcfp.com> <1058813341.841940@master.nyc.kbcfp.com> <1058816605.566685@master.nyc.kbcfp.com> <1058969472.350716@master.nyc.kbcfp.com> <1058982513.114816@master.nyc.kbcfp.com> <3F1ED712.2070405@attbi.com> In-Reply-To: <3F1ED712.2070405@attbi.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Organization: KBC Financial Products Message-ID: <1058991539.971642@master.nyc.kbcfp.com> Cache-Post-Path: master.nyc.kbcfp.com!unknown@nightcrawler.nyc.kbcfp.com X-Cache: nntpcache 3.0.1 (see http://www.nntpcache.org/) NNTP-Posting-Host: 204.253.250.10 X-Trace: 1058991540 26823 204.253.250.10 Xref: archiver1.google.com comp.lang.ada:40723 Date: 2003-07-23T16:18:59-04:00 List-Id: Robert I. Eachus wrote: > As I said, this was not arbitrary behavior, it was required behavior. *What* was required behavior? You have a piece of code that says integer_BH = convert(float_BH) The analysis and specification of the Ariane 4 gave a physical upper limit to float_BH, and the code was written in the "don't care" way - if for some reason float_BH does exceed the limit, let the code go ahead and do whatever the consequences of violating that limit imply. If float_BH is larger than the limit but smaller than the overflow value, the code keeps going, possibly failing at a later point or possibly not causing any harm. If float_BH is larget than the overflow value, the machine generates an operand fault. There's nothing wrong with having code like that if the situation warrants it, which was the case in Ariane 4, where they were trying to save the machine cycles that a limit check would have cost. It's just that this kind of code is brittle, so these dependencies on the state of external data need to be made very clear, otherwise future reuse attempts will stumble.