From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: Your wish list for Ada 202X
Date: Sat, 19 Apr 2014 12:05:09 +0300
Date: 2014-04-19T12:05:09+03:00 [thread overview]
Message-ID: <bresi5Fqsk7U1@mid.individual.net> (raw)
In-Reply-To: <9b0anu6u678j.kfliatroezt0$.dlg@40tude.net>
On 14-04-19 11:19 , Dmitry A. Kazakov wrote:
> On Sat, 19 Apr 2014 10:35:36 +0300, Niklas Holsti wrote:
>
>> On 14-04-19 00:18 , Dmitry A. Kazakov wrote:
>>> On Fri, 18 Apr 2014 22:10:50 +0300, Niklas Holsti wrote:
>>>
>>>> (Apologies for a delayed reply.)
>>>>
>>>> On 14-04-14 00:07 , Dmitry A. Kazakov wrote:
>>>>> On Sun, 13 Apr 2014 22:43:47 +0300, Niklas Holsti wrote:
>>>>>
>>>>>> On 14-04-12 11:20 , Dmitry A. Kazakov wrote:
>>>>>
>>>>>>> I don't deny
>>>>>>> existence of the problem. I am against the solution, which is inherently
>>>>>>> unsafe and constraining (precludes by-copy semantics).
>>>>>>
>>>>>> But class-wide operations which contain dispatching calls also preclude
>>>>>> by-copy semantics, don't they?
>>>>>
>>>>> Not at all. There is no problem for a class-wide operation to act on
>>>>> by-copy types.
>>>>>
>>>>> A by-copy class-wide object is a tuple (tag, type-specific value). Upon
>>>>> dispatch the value is passed copy-in/copy-out to the type specific
>>>>> operation.
I think I misunderstood you here. I now think you meant that only the
type-specific value (the second component of the tuple) is passed
copy-in/copy-out (but the tag is not passed). I misunderstood and
thought that you meant passing the entire tuple value (tag,
type-specific value) by copy-in/out.
>>>> OK, but from the implementation point of view, that form of by-copy
>>>> passing could be used for all operations of a tagged class, whether
>>>> class-wide or primitive, with or without redispatching.
If the tag is not passed (as I now understood you meant), then
redispatch is not possible, I agree.
>>> Re-dispatching presumes the same object.
>>
>> No it doesn't. Why should it? Redispatch merely selects an operation
>> based on the actual type (tag) of the parameter value.
>
> This is called dispatch.
Yes, redispatch is a form of dispatch.
>> Whether the
>> operation acts on the same object or on a copy is a separate question.
>
> "Re-" presumes that dispatch happens again. What is in common to these two
> instances of dispatch what makes it re-dispatch?
The fact that the calling operation has been reached by a dispatch on
the parameter's tag, and now a new dispatching call is made (dynamically
within the first dispatching call) based on this same tag.
This feature -- a first choice based on the tag, with a nested second
choice based on the same tag -- was a feature of redispatching that you
criticized in earlier discussions.
> It is 1) the same
> polymorphic operation and 2) the same object. Take either away and it is
> not re-dispatch anymore:
>
> 1. Different operations:
>
> X.Foo;
> X.Bar; -- This is not re-dispatch!
Agreed, because the call to X.Bar does not occur in the body of Foo, so
it does not occur dynamically within the first dispatching call.
> 2. Different objects:
>
> X.Foo;
> Y.Foo; -- This is not re-dispatch!
Of course not.
> In particular, the case, which is especially interesting and important for
> by-copy types, when the derived type has a representation completely
> different from the base. For instance:
>
> type Wide_Wide_Character is ...; -- Full Unicode
> function Is_Digit (X : Wide_Wide_Character) return Boolean;
> function Is_Letter (X : Wide_Wide_Character) return Boolean;
> function Is_Alphanumeric (X : Wide_Wide_Character) return Boolean;
>
> type Character is new Wide_Wide_Character without parent's mess ...;
> overriding function Is_Digit (X : Character) return Boolean;
> overriding function Is_Letter (X : Character) return Boolean;
>
> Let you wanted re-dispatch in Is_Alphanumeric to Is_Digit and Is_Letter.
Could you complete your thought here? I don't see a claim or a question yet.
--
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
. @ .
next prev parent reply other threads:[~2014-04-19 9:05 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
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 [this message]
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