From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Calling inherited primitive operations in Ada
Date: Fri, 2 Sep 2022 10:48:53 +0200 [thread overview]
Message-ID: <tesg1k$1i84$1@gioia.aioe.org> (raw)
In-Reply-To: 672e9bc6-1e53-42cb-a339-9230ab949de9n@googlegroups.com
On 2022-09-02 10:35, amo...@unizar.es wrote:
> On Thursday, September 1, 2022 at 11:33:47 PM UTC+2, Jeffrey R.Carter wrote:
>> On 2022-09-01 20:54, Emmanuel Briot wrote:
>
>> As presented, this seems very over complicated. Elements and Definite_Elements
>> add no value, and this is just a complex way of writing
>
> Going in a tangent, and I guess you know perfectly well, but this is caused by the painful duplication of code that Ada pushes you to by not having a native way to abstract storage of definite vs indefinite types. So the provider of a generic library very soon faces this conundrum about duplicating most interfaces, if not implementations, or resort to non-trivial generics, or accept an unnecessary penalty for definite types, or push to the client the definite storage matter. There's simply no satisfying solution here [that I know of]. The duplication of every standard container to have both [in]definite variants is a strong indictment.
>
> I can understand the desire to have full control of allocation and object sizes, but that there's not a language way to work around this duplication, with appropriate restrictions to go with it, is... bothersome. Not making a dig at the ARG, which I understand is overstretched as it is.
Containers should be implementable without generics. Just saying.
> There was a proposal circulating some time ago that seemed promising, that I can't quickly find. Something like
>
> type Blah is record
> Dont_care_if_in_heap: new Whatever_Definiteness; -- Would apply to indefinite types or formals
> end record;
I would prefer constraint propagation/management support + tuples instead:
type Blah (Parameters : Whatever_Definiteness'Constraints) is
Sill_Care : Whatever_Definiteness (Parameters);
end record;
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2022-09-02 8:48 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-31 8:15 Calling inherited primitive operations in Ada Emmanuel Briot
2022-08-31 17:11 ` DrPi
2022-08-31 19:13 ` Dmitry A. Kazakov
2022-09-01 6:56 ` Emmanuel Briot
[not found] ` <67b32db0-c4db-466c-ac13-e597e008c762n@googlegroups.com>
2022-09-01 10:02 ` Dmitry A. Kazakov
2022-09-01 11:59 ` Jeffrey R.Carter
2022-09-01 12:37 ` Dmitry A. Kazakov
2022-09-01 13:37 ` Jeffrey R.Carter
2022-09-01 14:10 ` Emmanuel Briot
2022-09-01 15:50 ` amo...@unizar.es
2022-09-01 16:03 ` Jeffrey R.Carter
2022-09-01 16:07 ` Emmanuel Briot
2022-09-01 16:17 ` Jeffrey R.Carter
2022-09-01 18:54 ` Emmanuel Briot
2022-09-01 21:33 ` Jeffrey R.Carter
2022-09-02 6:11 ` Emmanuel Briot
2022-09-02 10:55 ` Jeffrey R.Carter
2022-09-02 11:20 ` Emmanuel Briot
2022-09-02 14:28 ` Jeffrey R.Carter
2022-09-03 0:16 ` Randy Brukardt
2022-09-03 0:07 ` Randy Brukardt
2022-09-03 8:59 ` Jeffrey R.Carter
2022-09-07 0:42 ` Randy Brukardt
2022-09-03 19:00 ` Simon Wright
2022-09-05 6:56 ` Emmanuel Briot
2022-09-05 7:34 ` Dmitry A. Kazakov
2022-09-05 9:30 ` Jeffrey R.Carter
2022-09-07 0:51 ` Randy Brukardt
2022-09-02 8:35 ` amo...@unizar.es
2022-09-02 8:48 ` Dmitry A. Kazakov [this message]
[not found] ` <9484a755-f55d-407e-a40b-92421b0bcafbn@googlegroups.com>
2022-09-02 9:55 ` Dmitry A. Kazakov
2022-09-02 10:41 ` Jeffrey R.Carter
2022-09-02 11:04 ` Dmitry A. Kazakov
2022-09-03 0:12 ` Randy Brukardt
2022-09-03 8:23 ` Dmitry A. Kazakov
2022-09-03 0:01 ` Randy Brukardt
2022-09-05 8:53 ` amo...@unizar.es
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox