From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on ip-172-31-65-14.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00,T_SCC_BODY_TEXT_LINE, XPRIO autolearn=ham autolearn_force=no version=3.4.6 Path: eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: GNAT or Language Problems? Date: Thu, 22 Jun 2023 04:51:17 -0500 Organization: A noiseless patient Spider Message-ID: References: Injection-Date: Thu, 22 Jun 2023 09:51:09 -0000 (UTC) Injection-Info: dont-email.me; posting-host="c6087f7335e2480a72f4c4a2827b41ef"; logging-data="3436421"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+NewLqrAiSgVbji7FWrnzToNMHEHo9844=" Cancel-Lock: sha1:LRv1pGO8mSlRQIl24B7V0eCLtsY= X-RFC2646: Format=Flowed; Response X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7246 X-MSMail-Priority: Normal X-Priority: 3 X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 Xref: news.eternal-september.org comp.lang.ada:65339 List-Id: You missed my point: The requirement that the subtypes are statically compatible was newly added. That applies to *all* subtypes, not just those with predicates. The reason the requirement was added had to do with predicates, but it might affect some marginal cases beyond that. It's a weaker requirement than static matching, but stronger than no requirement at all. As I said the other day, you need to check if 4.9.1 allows or disallows your example (that's where the definition of static compatibility is found). If it allows it, then it's a compiler bug, if it doesn't allow it, it's an incompatibility with a language fix and you need to find a different way to do whatever it is you are doing. I don't have the energy tonight to go through that exercise myself (I apparently brought back a bug from Lisbon, and have spent much of the last several days in bed - but for some reason I seem to only be able to sleep during the day. Really louses up life...). Randy. "Jeffrey R.Carter" wrote in message news:u6jtue$16d9e$1@dont-email.me... > On 2023-06-17 09:28, Randy Brukardt wrote: >> Regarding your second problem, refer to AI22-0041-1. >> >> Essentially, there are problems if predicates are involved. We changed >> the >> rule to require static compatibility (as a Binding Interpretation). I >> don't >> have the energy to look up what "static compatibility" requires in this >> case >> (enjoy figuring out 4.9.1). In some cases, it requires static matching, >> in >> others, it has weaker requirements. > > There are no predicates involved. One can cut it down to just the type and > constant: > > package B_Strings_Prob is > type B_String (Max_Length : Positive := 1_000) is tagged limited > private; > > Null_B_String : constant B_String; -- A string of zero characters > private -- B_Strings_Prob > type B_String (Max_Length : Positive := 1_000) is tagged limited record > Len : Natural := 0; > Value : String (1 .. Max_Length) := (1 .. Max_Length => ' '); > end record; > > Null_B_String : constant B_String := (Max_Length => 1, others => <>); > end B_Strings_Prob; > > and still get the error: > > $ gnatmake -gnatc b_strings_prob.ads > x86_64-linux-gnu-gcc-13 -c -gnatc b_strings_prob.ads > b_strings_prob.ads:12:04: error: subtype does not statically match > deferred declaration at line 5 > gnatmake: "b_strings_prob.ads" compilation error > > I don't see any mention of AI22-0041-1 in ARM 7.4. > >> I don't have the time or energy tonight to look into your other problem. >> (I'm waiting for a backup to finish, or I would have already gone home -- >> since I only got back from Lisbon last night, I'm not equipped for my >> usual >> late night work...) > > I'm surprised you're this functional already. > > -- > Jeff Carter > "I was in love with a beautiful blonde once, dear. > She drove me to drink. That's the one thing I'm > indebted to her for." > Never Give a Sucker an Even Break > 109 >