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,436e4ce138981b82 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2004-03-16 08:16:26 PST Path: archiver1.google.com!news2.google.com!fu-berlin.de!border1.nntp.ash.giganews.com!border2.nntp.sjc.giganews.com!border1.nntp.sjc.giganews.com!nntp.giganews.com!local1.nntp.sjc.giganews.com!nntp.comcast.com!news.comcast.com.POSTED!not-for-mail NNTP-Posting-Date: Tue, 16 Mar 2004 10:16:24 -0600 Date: Tue, 16 Mar 2004 11:16:24 -0500 From: "Robert I. Eachus" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: abstract sub programs overriding References: <1078776213.376775@master.nyc.kbcfp.com> <1078839257.157439@master.nyc.kbcfp.com> <5cmr40t76va200betf07b7bd6er05ltto9@4ax.com> <1078845298.702789@master.nyc.kbcfp.com> <0ipr40thtf86b520a0qdi003aj87gtuhd4@4ax.com> <1078849973.701176@master.nyc.kbcfp.com> <1078924150.268074@master.nyc.kbcfp.com> <1078934469.744922@master.nyc.kbcfp.com> <1078949096.760629@master.nyc.kbcfp.com> <1079013337.572283@master.nyc.kbcfp.com> <9_mdnfzBlfEC3M_d4p2dnA@comcast.com> <1079361579.900651@master.nyc.kbcfp.com> In-Reply-To: <1079361579.900651@master.nyc.kbcfp.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: NNTP-Posting-Host: 24.128.39.153 X-Trace: sv3-0T22PyK2ecTei3+vOO5yIPrFPKYGB3TlUX4aaLsAJx3hp9a4My+bsovNCAHI7YUeXMMQOBDC3f70f79!hqMjKAM1Js1LtLBLd8kLKF3+1fAV4dFzzdaIoxEM2Cf+rFwosaYbmBUNLrv3oA== X-Complaints-To: abuse@comcast.net X-DMCA-Complaints-To: dmca@comcast.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.1 Xref: archiver1.google.com comp.lang.ada:6350 Date: 2004-03-16T11:16:24-05:00 List-Id: Hyman Rosen wrote: > I think I still don't understand. If you say 'a := b;' and a has a > Controlled type, isn't Finalize called on a before its bits are > clobbered? So in your Initilaize example, when you say > 'Object := (Parent_Type with ...);', isn't Finalize called on Object > before its bits are replaced with the extension aggregate? And since > we're in the first Initialize of Object, doesn't that mean that Finalize > will be called on it before its first Initialize is complete? Interesting thought. RM 7.6 (17, 17.1, and 21) permit an implementation to omit that Finalization, and requires that it be omitted in some cases. But you are right that a compiler could actually do that call in some circumstances. You could write up an example and sent it to Ada Comment. I can't imagine it being treated as high priority unless there are compilers that actually do the finalization. Dimitry's two-stage initialization should mean that the unnecessary Finalize call is harmless, but there should probably be an AI to allow/require compilers to omit it in all cases. (The problem as I see it is that Initialize should really have an out parameter instead of an in out parameter.) -- Robert I. Eachus "The only thing necessary for the triumph of evil is for good men to do nothing." --Edmund Burke