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,54889de51045a215 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-10-19 23:12:10 PST Path: archiver1.google.com!news2.google.com!news.maxwell.syr.edu!wn14feed!wn13feed!worldnet.att.net!204.127.198.203!attbi_feed3!attbi.com!rwcrnsc53.POSTED!not-for-mail Message-ID: <3F937C9E.4070403@comcast.net> From: "Robert I. Eachus" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20021120 Netscape/7.01 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: += in ada References: <3F7316F7.219F@mail.ru> <17cd177c.0310010606.52da88f3@posting.google.com> <3F8BC74F.2CFBFF37@0.0> <1066312000.671303@master.nyc.kbcfp.com> <1066322883.139702@master.nyc.kbcfp.com> <3F8F372D.9040801@comcast.net> <3F8F4559.50306@noplace.com> <3F92BB1A.202@comcast.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit NNTP-Posting-Host: 24.34.139.183 X-Complaints-To: abuse@comcast.net X-Trace: rwcrnsc53 1066630328 24.34.139.183 (Mon, 20 Oct 2003 06:12:08 GMT) NNTP-Posting-Date: Mon, 20 Oct 2003 06:12:08 GMT Organization: Comcast Online Date: Mon, 20 Oct 2003 06:12:08 GMT Xref: archiver1.google.com comp.lang.ada:1175 Date: 2003-10-20T06:12:08+00:00 List-Id: Hyman Rosen wrote: > This statement means that we get to talk about the Ariane 5 again. > If you recall, this involved careful case-by-case analysis of every > aritmetic statement in a module to determine which ones could have > their range checks disabled, in order to free up a few more machine > cycles. No "delegation to the compiler" there. No, but unless you missed the last discussion of Ariane 5, you would know that the problem with Ariane 5 was not spending enough time on things other than counting machine cycles. And the machine cycle counting, which are never wrong in a hard-real-time system was done right in the Ariane 4 context where it occurred. Ariene 4 is/was a great success and is still being used today. There have been several Ariane 5 failures since the first, and each of them has eventually been traced back to the Ariane 5 development team skimping on requirements analysis at the highest levels. > We can also bring up protected types. Apparently the real-time > community felt that leaving efficiency to the compiler and using > rendezvous was not acceptable. If you don't understand protected types, I'm not going to try to explain it all here. But to vastly shorten the discussion, some Ada (83) compilers supported special optimizations for what were called things like monitor tasks (Verdix). Basically these were tasks with a special structure that allowed the compiler to produce more efficient code. All of the code ran in the stacks of calling tasks, none in the monitor task, so it didn't need some resources, including a task control block, or any visibility to the scheduler. Protected types are basically a cleaner notation for what many programs did with monitor tasks. I once said that tasks in Ada were like rabbits, once you had two or more, if you didn't kept them segregated, you started finding baby tasks everywhere. Protected objects and protected types make this distinction clean. There are tasks which contain threads of control, and protected objects that are used for syncronization and communication between them. If you find the name funny, maybe now you understand why it is so perfect. ;-) -- Robert I. Eachus "Quality is the Buddha. Quality is scientific reality. Quality is the goal of Art. It remains to work these concepts into a practical, down-to-earth context, and for this there is nothing more practical or down-to-earth than what I have been talking about all along...the repair of an old motorcycle." -- from Zen and the Art of Motorcycle Maintenance by Robert Pirsig