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,90108ed846e3f1bf X-Google-Attributes: gid103376,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx02.iad.newshosting.com!newshosting.com!newsfeed.icl.net!newsfeed.fjserv.net!oleane.net!oleane!news.ecp.fr!news.jacob-sparre.dk!pnx.dk!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Language lawyer question: task activation Date: Fri, 27 Feb 2009 17:29:10 -0600 Organization: Jacob Sparre Andersen Message-ID: References: <1dusr7frk73m7.nlsagplge0hk.dlg@40tude.net> <09a7aab3-d105-4a40-b25b-e2824cb12f89@j1g2000yqi.googlegroups.com> <24bdd0df-9554-49de-9c5e-99572c9cdf34@g38g2000yqd.googlegroups.com> <1v0f2pkso7p50.vein84avao5t.dlg@40tude.net> <499ede41$0$32665$9b4e6d93@newsspool2.arcor-online.net> <1lhxmo6l2ypux.bei2ffp1m3e$.dlg@40tude.net> <499f2c59$0$31868$9b4e6d93@newsspool3.arcor-online.net> <1vcaimc8kjj30$.kf3rsd670ebp$.dlg@40tude.net> NNTP-Posting-Host: static-69-95-181-76.mad.choiceone.net X-Trace: munin.nbi.dk 1235777352 22077 69.95.181.76 (27 Feb 2009 23:29:12 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Fri, 27 Feb 2009 23:29:12 +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:3833 Date: 2009-02-27T17:29:10-06:00 List-Id: "Dmitry A. Kazakov" wrote in message news:1vcaimc8kjj30$.kf3rsd670ebp$.dlg@40tude.net... ... >> When a procedure P(Object: out T) returns, there >> is a yield (in Object). > > No, it is not so. The actual of Object out T is constructed *prior* to > call > to P. In contrast the "actual" of F return T is not constructed (when T is > limited). This is exactly the thing that worries me. Because it makes out > T > and return T different, while they are evidently same. To you, maybe, but not in Ada. Even in Ada 83, "out T" and "return T" are different: procedure Foo (P : out String); function Bar return String; Bar creates a *new* object with unknown bounds; Foo takes an *existing* object with whatever bounds it has. Totally different animals. Build-in-place is a rather natural extension to this model. (It's annoying that we don't have a way to do return-by-reference as well, but that's another topic). Now, I realize you have rather firm ideas about what represents a "proper type model", but that's pretty much irrelevant to the Ada type model (which isn't going to change for obvious compatibility reasons). Randy.