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,885dab3998d28a4 X-Google-Attributes: gid103376,public From: kst@thomsoft.com (Keith Thompson) Subject: Re: Ariane 5 failure Date: 1996/10/06 Message-ID: #1/1 X-Deja-AN: 187230289 sender: news@thomsoft.com (USENET News Admin @flash) x-nntp-posting-host: pulsar references: <96100111162774@psavax.pwfl.com> <32555A39.E38@lmtas.lmco.com> organization: Thomson Software Products, San Diego, CA, USA newsgroups: comp.lang.ada originator: kst@pulsar Date: 1996-10-06T00:00:00+00:00 List-Id: In dewar@schonberg.cs.nyu.edu (Robert Dewar) writes: > To the extent that checks are used for catching hardware failures this might > be true, but in practice the runtime checks of Ada are not a well tuned > tool for this purpose, although I have seen programs that work hard to take > more advantage of such checks. For example: > > type My_Boolean is new Boolean; > for My_Boolean use (2#0101#, 2#1010#); > > so that 1 bit errors cannot give valid Boolean values (check and see if your > compiler supports this, it is not required to do so!) But then there's still no guarantee that an invalid Boolean value will be detected. The code generated for an if statement, for example, is unlikely to check its Boolean condition for validity. Of course, there will probably be a runtime call to a routine that converts from My_Boolean to Boolean, and this routine will *probably* do something sensible (raise Program_Error) for an invalid argument. Anyone something this tricky presumably is already examining the generated code to make sure there are no surprises. -- Keith Thompson (The_Other_Keith) kst@thomsoft.com <*> TeleSoft^H^H^H^H^H^H^H^H Alsys^H^H^H^H^H Thomson Software Products 10251 Vista Sorrento Parkway, Suite 300, San Diego, CA, USA, 92121-2706 FIJAGDWOL