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: a07f3367d7,dbbbb21ed7f581b X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!u-picardie.fr!news.ecp.fr!news.jacob-sparre.dk!pnx.dk!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Operation can be dispatching in only one type Date: Thu, 19 Nov 2009 17:54:40 -0600 Organization: Jacob Sparre Andersen Message-ID: References: <025105f2-5571-400e-a66f-ef1c3dc9ef32@g27g2000yqn.googlegroups.com> <94e76749-c49c-45aa-b7dc-386da0d71c66@e4g2000prn.googlegroups.com> <1u0im1tdws15u.1n9v9rz7bu4t4$.dlg@40tude.net> <39kf90ha60px$.d7746cf5cx6h.dlg@40tude.net> <691d6892-bc5e-4d81-8025-c36556bf2593@13g2000prl.googlegroups.com> <1h9hilcg5i6il.12edpgu4szw1h.dlg@40tude.net> <1wtsriaxu0s4s$.ikwnnz5teukp$.dlg@40tude.net> <1iipp3bn16fe2.yqa1gz1ru17a$.dlg@40tude.net> NNTP-Posting-Host: static-69-95-181-76.mad.choiceone.net X-Trace: munin.nbi.dk 1258674882 23640 69.95.181.76 (19 Nov 2009 23:54:42 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Thu, 19 Nov 2009 23:54:42 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5512 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Xref: g2news1.google.com comp.lang.ada:8161 Date: 2009-11-19T17:54:40-06:00 List-Id: "Dmitry A. Kazakov" wrote in message news:1iipp3bn16fe2.yqa1gz1ru17a$.dlg@40tude.net... > On Wed, 18 Nov 2009 18:27:42 -0600, Randy Brukardt wrote: > >> "Dmitry A. Kazakov" wrote in message >> news:1wtsriaxu0s4s$.ikwnnz5teukp$.dlg@40tude.net... >> ... >>>> OK, I don't understand this. First, I don't understand what about >>>> accessibility checks was a disaster; >>> >>> Because they are the major contributor to hours spent on debugging >>> unhandled exceptions. >> >> That seems odd to me. I rather *like* getting unhandled exceptions, >> because >> it is almost always easy to see what the problem is from the exception >> name >> and the traceback. > > Only theoretically. Practically, the existing handlers of "legal" > exceptions get perplexed, the stack gets wound up causing a cascade of > exceptions in Finalize's. That might be true in general, but definitely not in this case: a handler for Program_Error is *always* wrong (unless it is a global handler for *any* exception), as Program_Error always represents a program bug. So I don't see how "existing" handlers can be confused. It is necessary to treat all Adjust and Finalize routines like task bodies in that they need a "when others" handler -- otherwise the exceptions are sucked up and you get completely lost. Our programming standard requires such handlers (generally, they output Exception_Information to the logging facility - and almost every significant Ada system needs some sort of logging facility). ... > The difference is that for string bound there is a way to do it safe and > for 'Access there is none (and I also agree with Robert's response.) Well, Ada 2012 (or whatever it will be called) should help that out by giving you a way to compare accessibilites (via memberships). So at least you will be able to make checks to avoid the problem. Better than nothing, but still not ideal. The better way to avoid the problem is to never, ever use anonymous access types. (Named access types have checks that are always made at compile-time for most compilers -- but not Janus/Ada, because of generic sharing.) Randy.