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-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,53ce549c3b1907c1 X-Google-Attributes: gid103376,public X-Google-Thread: 101deb,702e716e8c4544e8 X-Google-Attributes: gid101deb,public X-Google-ArrivalTime: 2003-03-31 18:36:40 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!wn14feed!worldnet.att.net!204.127.198.203!attbi_feed3!attbi.com!sccrnsc02.POSTED!not-for-mail Message-ID: <3E88FB6B.6010006@attbi.com> 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.pl1,comp.lang.ada Subject: Re: Ada Versus PL/I - The debate continues References: <3E73F755.79E9723B@adaworks.com> <3E764F5F.4A025D83@yahoo.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit NNTP-Posting-Host: 24.62.164.137 X-Complaints-To: abuse@attbi.com X-Trace: sccrnsc02 1049164599 24.62.164.137 (Tue, 01 Apr 2003 02:36:39 GMT) NNTP-Posting-Date: Tue, 01 Apr 2003 02:36:39 GMT Organization: AT&T Broadband Date: Tue, 01 Apr 2003 02:36:39 GMT Xref: archiver1.google.com comp.lang.pl1:4648 comp.lang.ada:35841 Date: 2003-04-01T02:36:39+00:00 List-Id: John W. Kennedy wrote: > Robin believes that it is a _good_ thing that PL/I allows the run-time > ON statement to alter the currently-assigned error recovery, and that > PL/I allows return to point of error, and will not be convinced that > both of these were excluded from Ada (and every other language I know of > with error handling) precisely because experience with PL/I was > unfortunate. Let me add a data point here. When I was working at Stratus, to support Ada style error handling, some changes had to be made in VOS, Stratus OS, which was written in PL/I so VOS could support both Ada exception handling and PL/I condition handling, mix and match, in the (user and OS) stack. At the code review for the OS changes, there was a lot of discussion about what the timing effects on the OS would be. In cases where an ON was ended by leaving the scope, performance would be improved, but if a violation of "strict" nesting of condition handlers occured, there would be a serious performance impact. (The nested handlers that were not turned off would have to be added back to the stack.) So we took a few benchmark suites and ran them on a modified version of VOS, the average was a 2% reduction in time spent in the OS.) This was very surprising--we hadn't realized that the OS spent that much time setting and removing condition lists, and walking the stack. So we wrote a quick lisp tool to check the OS source for condition handlers. Over 99% of the condition handlers were terminated by exiting the block. (The remaining cases mostly mapped to the Ada idiom of using a declare block to attach an exception handler to a single statement.) What about the wonderful RESUME feature? We didn't find a single instance in VOS. (I also fixed a known bug in which repeatedly hitting the break key could get you to the default_error_handler, even when you were not supposed to be able to get there. Testing that was fun. The test program, of course, could not be exited, except by rebooting the computer. Even then we had to put in an OS feature to allow some programs not to be restarted after a power failure.)