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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,5c1125c290d9dd14 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!feeder.news-service.com!feeder.news-service.com!nf02.dk.telia.net!starscream.dk.telia.net!news.tele.dk!news.tele.dk!small.news.tele.dk!bnewspeer01.bru.ops.eu.uu.net!bnewspeer00.bru.ops.eu.uu.net!emea.uu.net!newsfeed.arcor.de!newsspool3.arcor-online.net!news.arcor.de.POSTED!not-for-mail From: "Dmitry A. Kazakov" Subject: Re: ANN: Ada 2005 Math Extensions, 20100810 release Newsgroups: comp.lang.ada User-Agent: 40tude_Dialog/2.0.15.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Reply-To: mailbox@dmitry-kazakov.de Organization: cbb software GmbH References: <82ocd8m826.fsf@stephe-leake.org> <82sk2ivwa7.fsf@stephe-leake.org> <9b04znr94b2i$.pxsxi24sc9zv.dlg@40tude.net> <1mffa50u8u2xy$.1gvly4gmdy3f5.dlg@40tude.net> Date: Sun, 15 Aug 2010 20:18:04 +0200 Message-ID: <105oi361zdp2y$.uro3yvt9xpc3.dlg@40tude.net> NNTP-Posting-Date: 15 Aug 2010 20:18:02 CEST NNTP-Posting-Host: cfc5a156.newsspool3.arcor-online.net X-Trace: DXC=[3XS^d4E=l_YQ5E:l9]>7VGemO?6VT X-Complaints-To: usenet-abuse@arcor.de Xref: g2news1.google.com comp.lang.ada:13352 Date: 2010-08-15T20:18:02+02:00 List-Id: On Sun, 15 Aug 2010 18:06:51 +0100, Simon Wright wrote: > In this case I had to use Complex_Arrays.Real_Arrays.Real because of the > sort of problems you indicate. One part of that problem was that such names became mysteriously hidden upon instantiation in the generic bodies. The compiler claimed that Real was not declared in Real_Arrays, or that Real_Arrays was not declared in Complex_Arrays, or that Real does not match the type Real of Real_Arrays etc. It was the worst kind of error I ever had. You have 20+ generic units. Every body compiles. Then in a chain of 20 generic instantiations #15 fails. You try another variant, refactor this, that, rewrite parent's children to their parameters or reverse. Two weeks later #17 fails. You cannot test anything before a modification cycle is complete, because first 10 instantiations are always fine. Basically this is how we are accustomed to work with C++ templates, but not with Ada. It is stable now, but anxiety flows through my bones each time I try a new GNAT on it... -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de