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,38fc011071df5a27 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-09-27 07:59:58 PST Path: news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!newshub.sdsu.edu!elnk-nf2-pas!newsfeed.earthlink.net!stamper.news.pas.earthlink.net!stamper.news.atl.earthlink.net!newsread1.news.atl.earthlink.net.POSTED!not-for-mail Message-ID: <3F75A5E3.6040505@noplace.com> From: Marin David Condic User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.1) Gecko/20020823 Netscape/7.0 (OEM-HPQ-PRS1C03) 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> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Date: Sat, 27 Sep 2003 14:59:58 GMT NNTP-Posting-Host: 209.165.22.24 X-Complaints-To: abuse@earthlink.net X-Trace: newsread1.news.atl.earthlink.net 1064674798 209.165.22.24 (Sat, 27 Sep 2003 07:59:58 PDT) NNTP-Posting-Date: Sat, 27 Sep 2003 07:59:58 PDT Organization: EarthLink Inc. -- http://www.EarthLink.net Xref: news1.google.com comp.lang.ada:34 Date: 2003-09-27T14:59:58+00:00 List-Id: O.K. Every other language I knew at the time had a square root routine somewhere in what it considered its "standard library" or intrinsic functions. Most of them had log and trig functions as well (I can't remember if Cobol did or not.) Along comes Ada83 and says "We're not going to specify a standard, portable set of calls to functions you get automagically in every other major language in use today..." How well was that received by the general programming public? All it really needed was a standard package specification so that people weren't writing things dependent on different vendor's interpretations of what was the best name to call the package or its routines & parameters. Perhaps the libraries were terrible. But people were going to hook up to them and use them anyway - terrible or not. In fact, they did. There just weren't any two implementations that had the same package name and function names. Perhaps Ada was standing around saying "But because I can't *precisely* specify some behavior because of the crappy libraries out there, I'm not going to specify anything at all..." This was incredibly useless to the average developer. I'd have been real happy with a standard package spec, standard function names and standard parameter lists and a definition of "Implementation Defined - including monkeys flying out of your anus when you call these routines" At least the calls would have been source-code portable and it would have been up to me to figure out if a given implementations natural log function did me any good. We see similar problems with the standard today - wherein because it is difficult to get something specified down to some precise, testable, verifiable behavior, we end up not doing anything at all - while other languages plough ahead and give the end-user important capabilities that may not be 100% perfect, but have the *infinitely* more important characteristic of "existence". That's why I think Ada needs some additional mechanism other than the ARM for specifying things that ought to be part of Ada. If back in 83 Ada had said "O.K., we can't specify a math library well enough today to make it part of the standard. But over here, on the side, we have the 'Conventional Ada Library' that is a reference implementation used by all vendors...." we could have had some sort of square root routine that was interface-compatible across all implementations. Eventually, the standard could have cought up - but in the mean time, the users would have had *something* that might have actually worked. MDC Robert I. Eachus wrote: > > Mine, along with a lot of other people. The problem wasn't bad > implementations of square root, it was truly horrible libraries of the > other standard transendental functions. The choice was to delay the > standard until we knew what sort of a math library to put in, or > standardize now (in 1982) and set up the NRG (back then the NumWG) to > figure out what a good math library should look like, and standardize > that separately. > > That was done. It took a lot longer than expected but ended up with a > proposal, and a fast portable implementation of it, that had > significantly better error limits for most of the functions than was > known to be possible in 1982. Most of those new better algorithms and > limits were developed by the NumWG or NumWG members. SC22 then set up > the WG11 to do the same thing for all languages, and also incorporate > some of the IEEE 754 work. The result is the Language Independent > Arithmetic standards. > > Most Ada 83 compiler vendors followed the NumWG/NRG work, and provided a > standard package that used the current state of the NumWG work. But in > early Ada days it was definitely a moving target. I remember one > meeting where several of the accuracy limits were reduced by a factor of > eight. > -- ====================================================================== Marin David Condic I work for: http://www.belcan.com/ My project is: http://www.jsf.mil/NSFrames.htm Send Replies To: m c o n d i c @ a c m . o r g "All reformers, however strict their social conscience, live in houses just as big as they can pay for." --Logan Pearsall Smith ======================================================================