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.4 required=5.0 tests=BAYES_00,SUBJ_ALL_CAPS autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Bill Findlay Newsgroups: comp.lang.ada Subject: Re: GNAT GPL 2014 Date: Tue, 13 May 2014 23:04:15 +0100 Message-ID: References: <9b878576-efa3-42ca-9614-ef67713ecd78@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Trace: individual.net 0PjFbI4dOO9b1LDjePZSTARI4JVOe0LcSI1a4OBcf6OtTvyzDz Cancel-Lock: sha1:VYzGukxupE16ZWvy0M3c8ble+fE= User-Agent: Microsoft-Entourage/12.36.0.130206 Thread-Topic: GNAT GPL 2014 Thread-Index: Ac9u90dYgXSCTR6Al02VN9g8IuVB/A== Xref: news.eternal-september.org comp.lang.ada:19817 Date: 2014-05-13T23:04:15+01:00 List-Id: On 13/05/2014 17:48, in article 9b878576-efa3-42ca-9614-ef67713ecd78@googlegroups.com, "Martin" wrote: > On Tuesday, May 6, 2014 9:13:13 PM UTC+1, Martin wrote: >> http://libre.adacore.com teasing with a 2014 banner but no sign of the 2014 >> configurations yet on the download page... > > And it's now out!! Form an orderly queue... :-) Type resolution in conditional expressions by GNAT GPL 2012/2013 was not all it should have been. E.g. I had to make the second 0 into a qualified expression in: function XR (X : M.i04) return M.i64 is begin return (if X = 0 then M.i64'(0) else GR(X)); end XR; because GNAT could not otherwise deduce its intended type, even though GR(X) and the expected return type are both M.i64. I am happy to say this is now fixed in GNAT GPL 2014. But, I still have to write this: for s in slice'Range loop exit when slice(s) = all_blanks_code; h := rotate_left(h, 2) + slice(s); end loop; To avoid this: for s of slice loop exit when s = all_blanks_code; | >>> warning: variable "s" is not modified in loop body >>> warning: possible infinite loop h := rotate_left(h, 2) + s; end loop; So that bug remains. -- Bill Findlay with blueyonder.co.uk; use surname & forename;