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,38fc011071df5a27 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-09-28 10:56:52 PST Path: news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!newshub.sdsu.edu!elnk-nf2-pas!newsfeed.earthlink.net!wn14feed!worldnet.att.net!204.127.198.203!attbi_feed3!attbi_feed4!attbi.com!sccrnsc01.POSTED!not-for-mail Message-ID: <3F7720D3.6020609@comcast.net> From: "Robert I. Eachus" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20021120 Netscape/7.01 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: How to get a =?ISO-8859-1?Q?=BBConventional_Ada_Library=AB?= =?ISO-8859-1?Q?_=28Was=3A_Ideas_for_Ada_200X=29?= References: <6a90b886.0305262344.1d558079@posting.google.com> <3ED4A94C.2020501@noplace.com> <3ED6A852.75AC0133@adaworks.com> <3ED74ED3.4020505@noplace.com> <3ED7C8C5.3070902@cogeco.ca> <3ED826BB.9010509@noplace.com> <3F61BA28.3060507@crs4.it> <3F6205B8.3070402@attbi.com> <3F6316DC.7080106@noplace.com> <3F743AE7.5050305@noplace.com> <3F74E2A6.6020907@comcast.net> <3F75A5E3.6040505@noplace.com> <3F761DC6.3050801@comcast.net> <3F76F66C.80009@noplace.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit NNTP-Posting-Host: 24.34.139.183 X-Complaints-To: abuse@comcast.net X-Trace: sccrnsc01 1064771811 24.34.139.183 (Sun, 28 Sep 2003 17:56:51 GMT) NNTP-Posting-Date: Sun, 28 Sep 2003 17:56:51 GMT Organization: Comcast Online Date: Sun, 28 Sep 2003 17:56:51 GMT Xref: news1.google.com comp.lang.ada:79 Date: 2003-09-28T17:56:51+00:00 List-Id: Marin David Condic wrote: > I like having the standard and the ARM being as thorough as it is. I'd > just like to see a mechanism for getting things like library components > "standardized" across compilers without needing to go through all the > rigamarole that has to happen in order to update the ARM. Had such a > mechanism been in place, getting the numerics packages added at a > post-Ada83 date would have been a piece of cake. It would also enable us > to get extensions to the language capabilities done in some cycle time > smaller than 10 years. We (meaning the ARG and compiler vendors) have been getting better at that. But even with unlimited money, standards move very slowly. The other thing that you have to remember is that the programming culture around Ada had not developed when the original ANSI standard was produced. I was surprised, and so were a lot of other people, at how the Ada culture developed in a way that was loathe to use almost anything that wasn't in the standard. Even more surprising was the antipathy towards using representation attributes and other Chapter 13 features. By the time the 9X effort was underway, no one was really surprised by the number of change requests that basically translated to, "We want to do unchecked conversions, but our coding standards don't allow us to use Unchecked_Conversion." A sort of funny story about this happened when Dave Emery, Ben Brosgol and I published the ADAR components. I got a call from Rational. My code wouldn't compile because it had an Unchecked_Conversion to an access type, and the Rational compiler didn't allow that. I explained nicely that this particular use would be eliminated in Ada 9X by child packages, and I had done it to keep the visible package interface clean. Then I told him how to modify the code to work in the Rational environment. Afterwards, I asked why Rational thought it was so important to protect users from this particular use of Unchecked_Conversion. He explained how Rational mananged storage and how it would be broken by converting an address to a pointer.* I said, "But in this case I am using Unchecked_Conversion to convert to an object of a private type to itself!" He looked at the code a bit more and said, "Maybe we should allow converting access types to access types..." I don't know if Rational did modify their compiler. But the point is that Rational, and their customers, thought that limiting the use of Unchecked_Conversion was a good thing. Even in this case, where as I said, in Ada 95, one package would be a child of the other, so no conversion, checked or otherwise, would be required. *Yes, they did garbage collection on the Rational hardware, but I don't think Rational does full garbage collection anymore. -- Robert I. Eachus "Quality is the Buddha. Quality is scientific reality. Quality is the goal of Art. It remains to work these concepts into a practical, down-to-earth context, and for this there is nothing more practical or down-to-earth than what I have been talking about all along...the repair of an old motorcycle." -- from Zen and the Art of Motorcycle Maintenance by Robert Pirsig