From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Your wish list for Ada 202X
Date: Wed, 16 Apr 2014 09:52:44 +0200
Date: 2014-04-16T09:52:44+02:00 [thread overview]
Message-ID: <1wchtiw4r35px.1pwedxqesqlr4.dlg@40tude.net> (raw)
In-Reply-To: lik879$36b$1@loke.gir.dk
On Tue, 15 Apr 2014 16:27:05 -0500, Randy Brukardt wrote:
> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
> news:f2mjap6bd64o$.1kk55f3m1qbn1$.dlg@40tude.net...
>> On Mon, 14 Apr 2014 18:39:24 -0500, Randy Brukardt wrote:
>>
>>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
>>> news:9cm2e094hvj7.sj0t2sh2komn.dlg@40tude.net...
>>>> On Fri, 11 Apr 2014 16:44:13 -0500, Randy Brukardt wrote:
>>>>
>>>>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
>>>>> news:16388p09ph28u$.1mglp0rm7pli9$.dlg@40tude.net...
>>>>
>>>>>> Your example refers to overloading possible for operations on
>>>>>> unrelated
>>>>>> types. I don't see how this is scenario could be possible for a
>>>>>> primitive
>>>>>> MD operation. One of the requirements put on MD is that *all*
>>>>>> combinations
>>>>>> of tags up to the root of the inheritance tree be defined and checked
>>>>>> at
>>>>>> compile time. This requirement automatically precludes appearance of C
>>>>>> from
>>>>>> air. It cannot be primitive and thus the preference rules would not
>>>>>> apply
>>>>>> to it.
>>>>>
>>>>> Doesn't matter. First, you'd have to prevent adding or removing new
>>>>> primitive operations to a hierarchy. That seems like a nasty
>>>>> limitation.
>>>>
>>>> What? This limitation is with us since Ada 95! You cannot add a
>>>> primitive
>>>> operation after the freezing point in Ada. You cannot remove a primitive
>>>> operation at all.
>>>
>>> This is an issue with program maintenance, not with an unchanging
>>> declaration -- so freezing is completely irrelevant. If someone decides
>>> there is a need to add a primitive operation to the root (for instance),
>>> then a preference rule towrd the root could potentially silently change
>>> the
>>> behavior of a otherwise tested/proved program. That's the sort of thing
>>> that
>>> needs to be prevented, lest maintenance become too dangerous to allow in
>>> existing systems.
>>
>> It is not prevented now and cannot be prevented in the future. If you
>> change the package specification, which is the only way to add an
>> operation
>> you potentially change anything. This requires recompilation of all
>> clients, which is OK, as you said earlier. Thus the problem does not
>> exist.
>
> (A) we're specifically talking about a single addition or deletion, *not* a
> general "change".
And how is it different from single dispatch? Let you override f in S. Then
f(X), given X is of S, will call to the new body.
> (B) Of course we're changing the specification and recompiling. But we don't
> want the same client code to mean something different after that
> recompilation without detection -- in the case of a single addition or
> deletion (again, *not* a change).
It must mean something different. That was the *purpose* of the change to
make the client code mean it different *when* the clients use the types and
operations for which the change was made.
> The reason here is that maintainers need to be free to ADD new
> operations/entities without changing the behavior of any pre-existing client
> (which necessarily does not use those new operations/entities).
Again, no difference between SD and MD. If you add a new primitive
operation (not override an existing one), there cannot be any effect on the
clients because they did not use the operation.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2014-04-16 7:52 UTC|newest]
Thread overview: 240+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-25 21:41 Your wish list for Ada 202X Stoik
2014-03-25 22:14 ` Simon Wright
2014-03-26 6:25 ` Shark8
2014-03-26 20:41 ` Randy Brukardt
2014-03-27 9:20 ` Shark8
2014-03-27 21:50 ` Randy Brukardt
2014-03-28 1:54 ` Jeffrey Carter
2014-03-28 8:17 ` Dmitry A. Kazakov
2014-03-28 21:27 ` Randy Brukardt
2014-03-29 9:44 ` Dmitry A. Kazakov
2014-03-31 23:55 ` Randy Brukardt
2014-04-01 8:20 ` Dmitry A. Kazakov
2014-04-01 10:51 ` G.B.
2014-04-01 12:40 ` Dmitry A. Kazakov
2014-04-02 22:39 ` Randy Brukardt
2014-04-03 2:59 ` Shark8
2014-04-05 11:10 ` Dmitry A. Kazakov
2014-04-08 1:15 ` Randy Brukardt
2014-04-08 9:15 ` Dmitry A. Kazakov
2014-04-08 10:15 ` G.B.
2014-04-08 10:56 ` Dmitry A. Kazakov
2014-04-08 23:37 ` Randy Brukardt
2014-04-09 10:40 ` Dmitry A. Kazakov
2014-04-10 3:28 ` Randy Brukardt
2014-04-10 8:42 ` Georg Bauhaus
2014-04-10 21:52 ` Randy Brukardt
2014-04-10 15:31 ` Dmitry A. Kazakov
2014-04-10 22:08 ` Randy Brukardt
2014-04-11 6:20 ` Dmitry A. Kazakov
2014-04-11 21:34 ` Randy Brukardt
2014-04-10 22:39 ` Randy Brukardt
2014-04-11 6:40 ` Dmitry A. Kazakov
2014-04-11 21:44 ` Randy Brukardt
2014-04-12 8:45 ` Dmitry A. Kazakov
2014-04-14 23:39 ` Randy Brukardt
2014-04-15 7:55 ` Dmitry A. Kazakov
2014-04-15 21:27 ` Randy Brukardt
2014-04-16 7:52 ` Dmitry A. Kazakov [this message]
2014-04-16 21:53 ` Randy Brukardt
2014-04-17 7:39 ` Dmitry A. Kazakov
2014-04-17 17:29 ` Randy Brukardt
2014-04-17 19:54 ` Dmitry A. Kazakov
2014-04-11 19:04 ` Niklas Holsti
2014-04-11 20:43 ` Dmitry A. Kazakov
2014-04-11 22:04 ` Niklas Holsti
2014-04-12 8:20 ` Dmitry A. Kazakov
2014-04-12 8:39 ` Nasser M. Abbasi
2014-04-12 9:38 ` Dmitry A. Kazakov
2014-04-12 9:55 ` Georg Bauhaus
2014-04-12 10:45 ` Dmitry A. Kazakov
2014-04-14 23:45 ` Randy Brukardt
2014-04-12 10:17 ` Nasser M. Abbasi
2014-04-12 10:48 ` Dmitry A. Kazakov
2014-04-13 19:43 ` Niklas Holsti
2014-04-13 21:07 ` Dmitry A. Kazakov
2014-04-18 19:10 ` Niklas Holsti
2014-04-18 21:18 ` Dmitry A. Kazakov
2014-04-19 7:35 ` Niklas Holsti
2014-04-19 8:19 ` Dmitry A. Kazakov
2014-04-19 8:39 ` Dmitry A. Kazakov
2014-04-19 9:08 ` Niklas Holsti
2014-04-19 10:06 ` Dmitry A. Kazakov
2014-04-19 13:53 ` Niklas Holsti
2014-04-19 14:21 ` Dmitry A. Kazakov
2014-04-19 18:28 ` Niklas Holsti
2014-04-19 9:05 ` Niklas Holsti
2014-04-19 10:18 ` Dmitry A. Kazakov
2014-04-15 0:08 ` Randy Brukardt
2014-04-15 7:21 ` Natasha Kerensikova
2014-04-15 21:20 ` Randy Brukardt
2014-04-16 6:32 ` Niklas Holsti
2014-04-16 7:24 ` Natasha Kerensikova
2014-04-16 7:31 ` Dmitry A. Kazakov
2014-04-16 9:30 ` Redispatching (was: Your wish list for Ada 202X) J-P. Rosen
2014-04-16 19:53 ` Redispatching Niklas Holsti
2014-04-17 7:26 ` Redispatching Dmitry A. Kazakov
2014-04-17 8:22 ` Redispatching Georg Bauhaus
2014-04-18 20:08 ` Redispatching Niklas Holsti
2014-04-18 20:51 ` Redispatching Dmitry A. Kazakov
2014-04-19 9:17 ` Redispatching Georg Bauhaus
2014-04-19 10:58 ` Redispatching Dmitry A. Kazakov
2014-04-19 11:21 ` Redispatching Georg Bauhaus
2014-04-17 8:53 ` Redispatching J-P. Rosen
2014-04-16 21:44 ` Your wish list for Ada 202X Niklas Holsti
2014-04-16 22:27 ` Randy Brukardt
2014-04-18 19:59 ` Niklas Holsti
2014-04-18 21:28 ` Randy Brukardt
2014-04-19 8:14 ` Niklas Holsti
2014-04-21 23:09 ` Randy Brukardt
2014-04-22 6:08 ` Niklas Holsti
2014-04-22 8:02 ` Dmitry A. Kazakov
2014-04-22 8:30 ` Shark8
2014-04-22 9:14 ` Dmitry A. Kazakov
2014-04-22 23:23 ` Randy Brukardt
2014-04-23 7:45 ` Dmitry A. Kazakov
2014-04-23 19:43 ` Shark8
2014-04-23 20:00 ` Dmitry A. Kazakov
2014-04-23 21:28 ` Shark8
2014-04-24 7:30 ` Dmitry A. Kazakov
2014-04-24 15:20 ` Shark8
2014-04-24 16:19 ` Dmitry A. Kazakov
2014-04-24 16:50 ` Shark8
2014-04-24 16:57 ` Dmitry A. Kazakov
2014-04-19 10:02 ` Georg Bauhaus
2014-03-27 22:06 ` Randy Brukardt
2014-03-28 5:23 ` Shark8
2014-03-26 8:17 ` Dmitry A. Kazakov
2014-03-26 9:02 ` J Kimball
2014-03-26 9:27 ` Dmitry A. Kazakov
2014-03-26 10:30 ` Marius Amado-Alves
2014-03-26 15:11 ` G.B.
2014-03-26 21:55 ` Simon Clubley
2014-03-26 15:03 ` G.B.
2014-03-26 22:00 ` Simon Clubley
2014-03-26 16:01 ` Anh Vo
2014-03-26 17:04 ` Dmitry A. Kazakov
2014-03-27 15:03 ` Dan'l Miller
2014-03-27 16:02 ` Dmitry A. Kazakov
2014-03-26 16:17 ` Stoik
2014-03-26 17:15 ` Dmitry A. Kazakov
2014-03-26 18:04 ` G.B.
2014-03-26 18:47 ` Simon Wright
2014-03-26 19:51 ` Georg Bauhaus
2014-03-27 14:43 ` Jacob Sparre Andersen
2014-03-27 22:50 ` Randy Brukardt
2014-03-28 5:22 ` J-P. Rosen
2014-03-28 7:54 ` Jacob Sparre Andersen
2014-03-28 21:22 ` Randy Brukardt
2014-03-26 21:06 ` Randy Brukardt
2014-03-26 23:15 ` J Kimball
2014-03-27 8:26 ` Dmitry A. Kazakov
2014-03-27 10:54 ` Georg Bauhaus
2014-03-27 15:42 ` Dmitry A. Kazakov
2014-03-27 21:35 ` Randy Brukardt
2014-04-29 14:26 ` Tero Koskinen
2014-04-29 15:39 ` Dan'l Miller
2014-04-29 17:10 ` Simon Clubley
2014-04-29 17:13 ` Tero Koskinen
2014-04-29 19:42 ` Simon Clubley
2014-03-30 12:28 ` francois_fabien
2014-03-30 13:40 ` Luke A. Guest
2014-03-30 14:24 ` Simon Clubley
2014-03-30 18:48 ` Luke A. Guest
2014-03-30 19:22 ` Dmitry A. Kazakov
2014-03-30 14:28 ` Simon Clubley
2014-03-30 15:14 ` Peter Chapin
2014-03-30 18:48 ` Luke A. Guest
2014-03-30 18:48 ` Luke A. Guest
2014-03-30 23:41 ` Simon Clubley
2014-03-31 15:39 ` Adam Beneschan
2014-03-30 13:46 ` Simon Clubley
2014-03-30 19:02 ` Pascal Obry
2014-03-30 19:33 ` Dmitry A. Kazakov
2014-03-30 19:59 ` Pascal Obry
2014-03-31 15:13 ` Stoik
2014-03-31 16:22 ` Pascal Obry
2014-03-31 16:47 ` Pascal Obry
2014-03-31 18:59 ` Dmitry A. Kazakov
2014-04-05 8:28 ` Pascal Obry
2014-04-05 11:06 ` Georg Bauhaus
2014-04-05 11:20 ` Pascal Obry
2014-04-02 16:21 ` Britt
2014-04-02 22:53 ` Randy Brukardt
2014-04-03 0:01 ` Jeffrey Carter
2014-04-03 5:51 ` Pascal Obry
2014-04-03 6:27 ` Jeffrey Carter
2014-04-03 17:18 ` Pascal Obry
2014-04-03 19:11 ` Dan'l Miller
2014-04-03 19:18 ` Dan'l Miller
2014-04-03 21:17 ` Randy Brukardt
2014-04-04 0:29 ` Jeffrey Carter
2014-04-04 8:20 ` Stefan.Lucks
2014-04-04 19:52 ` J Kimball
2014-04-04 20:43 ` Randy Brukardt
2014-04-04 20:54 ` Shark8
2014-04-04 21:47 ` Luke A. Guest
2014-04-08 0:47 ` Randy Brukardt
2014-04-08 4:43 ` J Kimball
2014-04-08 5:25 ` Jeffrey Carter
2014-04-08 23:44 ` Randy Brukardt
2014-04-04 20:53 ` Randy Brukardt
2014-04-04 23:25 ` Jeffrey Carter
2014-04-03 6:30 ` Georg Bauhaus
2014-04-03 0:06 ` Britt
2014-04-03 15:15 ` Robert A Duff
2014-04-03 20:19 ` Qun-Ying
2014-04-03 22:56 ` Robert A Duff
2014-04-04 18:31 ` Dan'l Miller
2014-04-04 21:08 ` Randy Brukardt
2014-04-05 3:39 ` Peter Chapin
2014-04-04 20:27 ` Shark8
2014-04-14 4:59 ` J Kimball
2014-04-14 6:54 ` Shark8
2014-04-15 0:22 ` Randy Brukardt
2014-04-15 0:18 ` Randy Brukardt
2014-04-15 5:28 ` J Kimball
2014-04-14 22:36 ` Shark8
2014-04-15 8:41 ` J-P. Rosen
2014-04-18 0:55 ` Robert Love
2014-04-18 11:39 ` Simon Wright
2014-04-23 12:55 ` björn lundin
2014-04-23 13:57 ` J-P. Rosen
2014-04-23 14:32 ` björn lundin
2014-04-23 15:43 ` J-P. Rosen
2014-04-23 16:31 ` björn lundin
2014-04-23 16:42 ` J-P. Rosen
2014-04-23 17:51 ` björn lundin
2014-04-23 21:29 ` Pascal Obry
2014-04-23 22:00 ` J-P. Rosen
2014-04-23 23:48 ` Shark8
2014-04-24 5:28 ` J-P. Rosen
2014-04-23 20:11 ` Randy Brukardt
2014-04-23 20:03 ` Randy Brukardt
2014-04-24 9:08 ` björn lundin
2014-04-23 18:02 ` Jeffrey Carter
2014-04-23 20:14 ` Randy Brukardt
2014-04-24 9:16 ` björn lundin
2014-04-24 11:33 ` G.B.
2014-04-24 12:11 ` björn lundin
2014-04-24 12:32 ` G.B.
2014-04-23 14:38 ` Dmitry A. Kazakov
2014-04-23 15:46 ` J-P. Rosen
2014-04-23 16:27 ` Dmitry A. Kazakov
2014-04-23 16:40 ` J-P. Rosen
2014-04-23 17:39 ` Dmitry A. Kazakov
2014-04-23 21:40 ` J-P. Rosen
2014-04-24 7:42 ` Dmitry A. Kazakov
2014-04-24 9:18 ` J-P. Rosen
2014-04-23 14:06 ` Dmitry A. Kazakov
2014-04-23 14:44 ` björn lundin
2014-04-23 20:28 ` Randy Brukardt
2014-04-24 10:31 ` björn lundin
2014-04-25 1:22 ` Randy Brukardt
2014-04-25 2:19 ` Shark8
2014-04-25 7:31 ` Dmitry A. Kazakov
2014-04-23 14:58 ` björn lundin
2014-04-23 18:05 ` Jeffrey Carter
2014-04-23 19:48 ` Shark8
2014-04-24 9:03 ` G.B.
2014-04-25 1:27 ` 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