From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: GNAT or Language Problems?
Date: Thu, 22 Jun 2023 04:51:17 -0500 [thread overview]
Message-ID: <u715id$38rs5$1@dont-email.me> (raw)
In-Reply-To: u6jtue$16d9e$1@dont-email.me
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" <spam.jrcarter.not@spam.acm.org.not> 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
>
next prev parent reply other threads:[~2023-06-22 9:51 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-30 16:36 GNAT or Language Problems? Jeffrey R.Carter
2023-06-17 7:28 ` Randy Brukardt
2023-06-17 9:21 ` Jeffrey R.Carter
2023-06-17 17:50 ` Bill Findlay
2023-06-17 20:49 ` Jeffrey R.Carter
2023-06-22 9:51 ` Randy Brukardt [this message]
2023-06-22 12:56 ` Jeffrey R.Carter
2023-06-23 9:55 ` Randy Brukardt
2023-06-24 12:23 ` Jeffrey R.Carter
2023-06-26 21:42 ` Randy Brukardt
2023-06-27 10:16 ` Jeffrey R.Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox