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,7769c087a4d30c0e X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local01.nntp.dca.giganews.com!nntp.megapath.net!news.megapath.net.POSTED!not-for-mail NNTP-Posting-Date: Tue, 12 Jul 2005 15:27:00 -0500 From: "Randy Brukardt" Newsgroups: comp.lang.ada References: <1120751455.846822.141050@z14g2000cwz.googlegroups.com> <1xuh1gs97pwwg$.1v4w9ruw1n2x$.dlg@40tude.net> <1PidncjOa5cWA1DfRVn-1Q@megapath.net> <28m5yx3jhzvu$.16u6va8093srl.dlg@40tude.net> <29tci5buk8ik.12z8wzs6awbnb.dlg@40tude.net> Subject: Re: Unchecked_Conversion and task pointer. Date: Tue, 12 Jul 2005 15:30:08 -0500 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4952.2800 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4952.2800 Message-ID: NNTP-Posting-Host: 64.32.209.38 X-Trace: sv3-pEMpsvgvXvF5XAYs2g0PIYdOrMa13dYzWw0bkmYBSjN0eB07hRaBsMdnZ4sWZXSe/aRyhTCBVC8QDpH!Q+rivwmFXDE267et186Dg6O+cNW+J+ZBhMSbk49weky+Rexqjctf+vIn0Esd062wUt2XFQIUGJD8 X-Complaints-To: abuse@megapath.net X-DMCA-Complaints-To: abuse@megapath.net X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.31 Xref: g2news1.google.com comp.lang.ada:12028 Date: 2005-07-12T15:30:08-05:00 List-Id: "Dmitry A. Kazakov" wrote in message news:29tci5buk8ik.12z8wzs6awbnb.dlg@40tude.net... > On Mon, 11 Jul 2005 13:28:42 -0500, Randy Brukardt wrote: > > > Well, you can't ignore the prefix (it determines whether it is an internal > > or external requeue). > > This must be fixed anyway. There is no safe way to statically determine if > a requeue is internal (in Ada 95 it had a quite nasty consequences, like a > program which legality was dependent on whether at run-time a barrier was > open or not.) This is confused. "Legality" is a compile-time concept; there is no such thing as legality being determined by something happening at runtime. Perhaps you meant something about whether an exception was raised, but that doesn't seem any different than an array bounds check. > For class-wide objects the idea of protected actions should be refined: let > A extend B. Is a protected action on X of A, the same or a different action > on B(X)? What about B'Class(X), A'Class(X)? Further, for multi-methods, let > both tagged arguments resolve to the same type tag, but different objects. > Will it start two actions? Ada 200Y doesn't allow extensions of task or protected types, specifically because the tasking operations don't compose well. You can make a set of rules, but any that are picked either will violate the expectations of the base type, or will be too restrictive on the extending type. Moreover, however that is done will make the locking behavior of programs much harder to understand. Keeping all of the locking in one place is much better in terms of being able to analyze the effects. So your question cannot arise, because B necessarily is an interface, and interfaces have no "protected actions". Randy.