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,a00006d3c4735d70 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2004-02-23 17:55:42 PST Path: archiver1.google.com!news2.google.com!newsfeed2.dallas1.level3.net!news.level3.com!crtntx1-snh1.gtei.net!news.gtei.net!newsfeed1.easynews.com!easynews.com!easynews!cyclone1.gnilink.net!spamkiller2.gnilink.net!nwrdny03.gnilink.net.POSTED!0e8a908a!not-for-mail From: Hyman Rosen User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: In-Out Parameters for functions References: <1075390647.405841@master.nyc.kbcfp.com> <1075405582.982776@master.nyc.kbcfp.com> <1075482385.142744@master.nyc.kbcfp.com> <1075732402.294581@master.nyc.kbcfp.com> <1075741279.952497@master.nyc.kbcfp.com> <16nu1099ekujjbpe9dqvs3noi9sdcfja6e@4ax.com> <1075817212.745748@master.nyc.kbcfp.com> <1075824683.769215@master.nyc.kbcfp.com> <1075851506.238480@master.nyc.kbcfp.com> <4020C947.81A6D703@0.0> <1075907239.138068@master.nyc.kbcfp.com> <402232E9.3EE15B4B@0.0> <1075987360.225622@master.nyc.kbcfp.com> <40236C0B.E988E003@0.0> In-Reply-To: <40236C0B.E988E003@0.0> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: Date: Tue, 24 Feb 2004 01:55:41 GMT NNTP-Posting-Host: 162.83.229.159 X-Complaints-To: abuse@verizon.net X-Trace: nwrdny03.gnilink.net 1077587741 162.83.229.159 (Mon, 23 Feb 2004 20:55:41 EST) NNTP-Posting-Date: Mon, 23 Feb 2004 20:55:41 EST Xref: archiver1.google.com comp.lang.ada:5756 Date: 2004-02-24T01:55:41+00:00 List-Id: Stuart Palin wrote: > ... allowing compilers to find an optimal implementation order!??? But as you go on to quote me, the cases where the compiler would not be permitted to do this are relatively rare, and involve the presence of multiple function calls within an expression. In such a case, how much optimization will operand reordering buy? >>>- including concurrent computation. Where does Ada permit the concurrent execution of multiple function calls of an expression? > if the rules you introduce are too complex the cure is worse > than the disease. Fortunately, the rules I introduce are not. > There is some merit in having a set of rules that are perhaps > imperfect, but are simpler to understand: at least you are sure > of where you stand. Yes, that's what my rules would accomplish. There are many people who are astonished to realize that in a := f(a(0)) + g(b(1)); the only constraints are that a is called before f and b before g, but nothing else is required, so that six orders are possible: abfg abgf afbg bafg bagf bgaf > XY := doublet'(x => a+b, y => c+d); > > If they are truly unconnected objects then perhaps they > should be processed in separate tasks. I will leave it to the people who describe Ada code as readeable to tell me whether turning a sequence of assignments into an aggregate or a pair of tasks is a good idea.