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=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: I am leaving Ada :-( because of GNAT bugs Date: Sat, 09 Dec 2017 09:35:22 +0000 Organization: A noiseless patient Spider Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: reader02.eternal-september.org; posting-host="3fa63b35a83c6a6a14bc49df96c0e1af"; logging-data="6851"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19N8svyDfLmayQ531Oy+QTLfJqbkQqqPnI=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (darwin) Cancel-Lock: sha1:01KKnQNA3DZVv/yRsB32qcm26es= sha1:jpHd0N3J9GysMZ8KNIEvViNtzJg= Xref: reader02.eternal-september.org comp.lang.ada:49432 Date: 2017-12-09T09:35:22+00:00 List-Id: bj.mooremr@gmail.com writes: > On Thursday, December 7, 2017 at 12:45:11 AM UTC-7, Victor Porton wrote: >> Yet one mysterious bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83310 > I am not sure which version of GNAT you are using, GPL for FSF. Both > are good quality compilers, but if you are running into compiler bugs > in one, it might be worth trying your source in the other. For your > source code, I was trying it out with GNAT GPL 2017. OP said 7.2.0, => FSF. > 2. For a number of the tagged types, the Parse function had the > controlling parameter as the second parameter. I think Ada might allow > that, but I generally put the controlling parameter (the one that has > the same type as the tagged type), at the beginning as the first > parameter. It has to be the first parameter for object prefix notation to work (ARM 4.1.3(9.1) - that took some finding!) > 9. In rdf-redland-query_results.ads, you declare a type derived from a > tagged type, but then try to apply a Pre'Class aspect. This apparently > is not legal, though the GPL 2016 compiler doesn't complain. I ran > into this, with my own code, that GPL 2017 told me with a compiler > error that the code was not legal. > > Pre'Class can only be applied to a root type apparently. See ARM 6.1.1(17.1/4), "Pre'Class shall not be specified for an overriding primitive subprogram of a tagged type T unless the Pre'Class aspect is specified for the corresponding primitive subprogram of some ancestor of T."