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-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,13ab88b30e0f779d X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-12-28 12:52:06 PST Newsgroups: comp.lang.ada Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!news-out.visi.com!hermes.visi.com!uunet!ash.uu.net!world!news From: Robert A Duff Subject: Re: Efficient Matrix? User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 Sender: news@world.std.com (Mr Usenet Himself) Message-ID: Date: Sat, 28 Dec 2002 20:51:25 GMT Content-Type: text/plain; charset=us-ascii References: <3e0b2a66_4@news.bluewin.ch> NNTP-Posting-Host: shell01.theworld.com Mime-Version: 1.0 Organization: The World Public Access UNIX, Brookline, MA Xref: archiver1.google.com comp.lang.ada:32368 Date: 2002-12-28T20:51:25+00:00 List-Id: Bill Findlay writes: > I meant it was good that the OP could get the array well packed. > It is bad in every other sense. 8-) ;-) > But I read 13.2 as normative, not binding: 13.2(6) says "should try" and ^^^^^^^^^ > 13.2(7) says "recommended". 13.3 is similarly worded w.r.t. Component_Size. I think you mean "nonnormative". Normative means binding. Probably a typo. Anyway, as I said in another post, 13.2(7) *is* binding if the compiler claims to support the SP annex. 13.2(6) is Implementation Advice, and therefore nonbinding. > Definitely something fishy here. > If the components of C and U had different sizes then a lot of run-time > packing would be needed to implement > > C.all := U.all; > > (and indeed the object code is enormous, but I don't know enough to say if > that's what it's doing - it certainly shouldn't be). Indeed. In other words, the compiler writer would have to go to more trouble to fail to pack the unconstrained one, than to do it right (given that the constrained one is clearly packed correctly). > How can we tell whether the size attributes are lying? Look at the machine code. Or, maybe print out the value of U.all(1,1)'Address and U.all(100,100)'Address, or something like that. - Bob