From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: New aggregates with Ada 2022.
Date: Wed, 29 Jun 2022 09:24:36 +0200 [thread overview]
Message-ID: <t9gunm$97a$1@gioia.aioe.org> (raw)
In-Reply-To: t9gj5a$1bcln$1@dont-email.me
On 2022-06-29 06:07, Randy Brukardt wrote:
> What you say here is precisely how they should work. But you would make the
> cost of supporting that necessary on every array object, because one could
> not know when an array is passed as a parameter what sort of representation
> it has. So one has to use dispatching helper operations to implement all
> assignments. And that's way more expensive than traditional array
> implementation.
It is already there because Ada 83 arrays have definite and indefinite
representations. Adding a user-defined representation on top is nothing.
> If you didn't have slices that could be passed as array parameters, then
> that problem does not exist. And I don't think slices are sufficiently
> worthwhile to force expensive, unoptimizable code.
You still must be able to pass a definite array for indefinite argument
and conversely. Slices change nothing.
The language must expose subtype conversions per adding removing
constraints to the user. This is what definite/indefinite and slicing
does. But also, it is what the type tag could be for class-wide arrays
or scalar types. I am talking about Integer'Class. And it is what
measurement units constraints are.
There should be a universal mechanism of dealing with type constraints
unifying discriminants/tags/bounds.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2022-06-29 7:24 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-19 7:59 New aggregates with Ada 2022 Blady
2022-06-19 14:15 ` Simon Wright
2022-06-20 19:36 ` Blady
2022-06-20 22:01 ` Simon Wright
2022-06-20 21:47 ` Randy Brukardt
2022-06-20 22:18 ` Dmitry A. Kazakov
2022-06-21 23:28 ` Randy Brukardt
2022-06-22 9:04 ` Dmitry A. Kazakov
2022-06-23 1:06 ` Randy Brukardt
2022-06-23 9:32 ` Dmitry A. Kazakov
2022-06-23 10:53 ` G.B.
2022-06-24 1:21 ` Randy Brukardt
2022-06-24 1:24 ` Randy Brukardt
2022-06-24 6:50 ` Dmitry A. Kazakov
2022-06-25 3:13 ` Randy Brukardt
2022-06-25 8:50 ` Dmitry A. Kazakov
2022-06-27 21:37 ` Randy Brukardt
2022-06-28 5:36 ` Niklas Holsti
2022-06-29 4:01 ` Randy Brukardt
2022-06-29 8:30 ` Jeffrey R.Carter
2022-06-29 9:04 ` Dmitry A. Kazakov
2022-06-30 5:03 ` Randy Brukardt
2022-06-30 8:44 ` Dmitry A. Kazakov
2022-06-29 11:06 ` Niklas Holsti
2022-06-29 12:53 ` Jeffrey R.Carter
2022-06-30 5:07 ` Randy Brukardt
2022-06-30 5:14 ` Randy Brukardt
2022-06-30 8:31 ` Marius Amado-Alves
2022-07-01 5:20 ` Randy Brukardt
2022-06-30 10:30 ` Jeffrey R.Carter
2022-06-30 15:48 ` Marius Amado-Alves
2022-06-30 16:39 ` Jeffrey R.Carter
2022-07-01 0:07 ` Marius Amado-Alves
2022-06-28 7:52 ` Dmitry A. Kazakov
2022-06-29 4:07 ` Randy Brukardt
2022-06-29 7:24 ` Dmitry A. Kazakov [this message]
2022-06-30 5:00 ` Randy Brukardt
2022-06-21 23:39 ` Randy Brukardt
2022-06-22 8:26 ` Dmitry A. Kazakov
2022-06-23 1:10 ` Randy Brukardt
2022-06-23 9:32 ` Dmitry A. Kazakov
2022-06-20 22:10 ` Jesper Quorning
2022-06-20 22:59 ` Jesper Quorning
2022-06-21 23:20 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox