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-Thread: 103376,703c4f68db81387d X-Google-Thread: 109fba,703c4f68db81387d X-Google-Thread: 115aec,703c4f68db81387d X-Google-Thread: f43e6,703c4f68db81387d X-Google-Attributes: gid103376,gid109fba,gid115aec,gidf43e6,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!news.glorb.com!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!news-rtr.nyroc.rr.com!news-out.nyroc.rr.com!twister.nyroc.rr.com.POSTED!53ab2750!not-for-mail From: "REH" Newsgroups: comp.lang.ada,comp.lang.c++,comp.realtime,comp.software-eng References: <4229bad9$0$1019$afc38c87@news.optusnet.com.au> <1110032222.447846.167060@g14g2000cwa.googlegroups.com> <871xau9nlh.fsf@insalien.org> <3SjWd.103128$Vf.3969241@news000.worldonline.dk> <87r7iu85lf.fsf@insalien.org> <1110052142.832650@athnrd02> <42309456$1@news.broadpark.no> <1110569032.207770@athnrd02> <1110607809.837000@athnrd02> <1110608948.651588@athnrd02> <1110609321.686344@athnrd02> <1136ao15lb0go9c@corp.supernews.com> Subject: Re: [OT] Re: Teaching new tricks to an old dog (C++ -->Ada) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.2527 X-RFC2646: Format=Flowed; Response X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2527 Message-ID: Date: Sat, 12 Mar 2005 23:17:31 GMT NNTP-Posting-Host: 66.24.208.111 X-Complaints-To: abuse@rr.com X-Trace: twister.nyroc.rr.com 1110669451 66.24.208.111 (Sat, 12 Mar 2005 18:17:31 EST) NNTP-Posting-Date: Sat, 12 Mar 2005 18:17:31 EST Organization: Road Runner Xref: g2news1.google.com comp.lang.ada:9272 comp.lang.c++:45362 comp.realtime:1395 comp.software-eng:4959 Date: 2005-03-12T23:17:31+00:00 List-Id: "CTips" wrote in message news:1136ao15lb0go9c@corp.supernews.com... > REH wrote: > Thats another problem with Ada's run-time checking. If you're using it in > an environment where the hardware may "fail" [e.g. alpha particles > randomizing memory], the checks are quite often in the wrong place. > > For example, look at the Ada equivalent of the following code. > typedef enum {0, 1, 2, 3} four_val; > four_val x; > > x = (four_val) some_int; > .... > assert( x < 4); > > The compiler will drop in a check at the cast to ensure that the wrong > value is not getting stored into x. Then, it will proceed to eliminate the > check that x < 4, because it knows that 0..3 are the only legal values of > x. However, if there is a hardware bug, the value of x will get changed > between the definition point and the use point. > > When bringing up hardware, I like to have a little more control over where > the run-time checks are going to be placed. This is another niche > situtation in which the compiler's "automatic" checking does the wrong > thing. You continue to make illogical arguments in some misguide attempt to prove you are somehow better than those who program in Ada. Next you are going to complain because Ada can recover from your hardware catching fire. You are just being ridiculous.