comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Inherited Methods and such
Date: Thu, 27 Sep 2007 19:44:28 -0500
Date: 2007-09-27T19:44:28-05:00	[thread overview]
Message-ID: <fdhik4$nur$1@jacob-sparre.dk> (raw)
In-Reply-To: 1190927328.753361.138630@d55g2000hsg.googlegroups.com

"Maciej Sobczak" <see.my.homepage@gmail.com> wrote in message
news:1190927328.753361.138630@d55g2000hsg.googlegroups.com...
> On 27 Wrz, 01:47, "Randy Brukardt" <ra...@rrsoftware.com> wrote:
>
> > No, the problem is quite obviously with T. (Re)-dispatching within
> > Initialize is a sure-fire way to have a disaster.
>
> 1. I don't have to redispatch from Initialize, I can do this from
> subprogram S1, which was called from S2, which was called from ... SN,
> which was called from Initialize.

Of course, that's why it can't be banned. But it is still wrong. I would go
so far as to suggest that *calling out* from Initialize with an object of
the type (or an ancestor) is wrong (with the single exception of calling a
parent's Initialize routine). But that might be going too far. (Still, that
is a rule that could be implemented by a style checker; it wouldn't be
possible for the language to do it because the body of Initialize doesn't
have to be explicitly declared: it could be a rename of something that is
used also for other purposes.).

> 2. The fact that there is a disaster is exactly my point. The
> interpretation differs, though. :-)

Doing something stupid often causes disasters. Education is often needed to
prevent them; it's not possible for a compiler to prevent them all.

> > I wouldn't go as far as Dmitry
> > and disallow all redispatching, but it surely should not happen until
the
> > object is fully constructed.
>
> Bingo. The only "issue" is that Ada does not acknowledge this
> "progressive" nature of construction and there is no recognized place
> for being not fully constructed.
>
> > (I suspect the same is true while it is being
> > finalized
>
> Yes. The tag should progressively "degrade" during subsequent stages
> of finalization.

No reason for messing with the tag or doing it "progressively". If
dispatching is wrong on Initialize, it is wrong in all of them, so it would
be banned until construction is finished, and similarly during destruction.
Construction and destruction are still single events: there is no
interruption in those events to do other things. (Remember that finalization
is even abort-deferred.) Even though the event of construction may include
many operations, it's still indivisible from the point of view of the
object.

                      Randy.





  reply	other threads:[~2007-09-28  0:44 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-17 14:26 Inherited Methods and such shaunpatterson
2007-09-17 15:11 ` Ludovic Brenta
2007-09-17 16:46   ` shaunpatterson
2007-09-17 19:07     ` Ludovic Brenta
2007-09-17 20:22   ` Maciej Sobczak
2007-09-17 21:07     ` Ludovic Brenta
2007-09-18 14:27       ` Maciej Sobczak
2007-09-18 14:27       ` Maciej Sobczak
2007-09-18 15:25         ` Dmitry A. Kazakov
2007-09-18 18:34           ` Ludovic Brenta
2007-09-18 19:29             ` Dmitry A. Kazakov
2007-09-18 19:39               ` Ludovic Brenta
2007-09-18 20:49                 ` Dmitry A. Kazakov
2007-09-18 21:10               ` Simon Wright
2007-09-18 20:39           ` Maciej Sobczak
2007-09-18 21:12             ` Dmitry A. Kazakov
2007-09-19 14:49               ` Maciej Sobczak
2007-09-19 15:16                 ` Dmitry A. Kazakov
2007-09-19 22:13                   ` Maciej Sobczak
2007-09-20  8:12                     ` Dmitry A. Kazakov
2007-09-20 13:52                       ` Maciej Sobczak
2007-09-20 16:22                         ` Dmitry A. Kazakov
2007-09-20 20:45                           ` Maciej Sobczak
2007-09-21 18:59                             ` Dmitry A. Kazakov
2007-09-21 21:02                               ` Maciej Sobczak
2007-09-22  8:48                                 ` Dmitry A. Kazakov
2007-09-22 21:53                                   ` Maciej Sobczak
2007-09-23  8:41                                     ` Dmitry A. Kazakov
2007-09-23 20:36                                       ` Maciej Sobczak
2007-09-24  9:32                                         ` Dmitry A. Kazakov
2007-09-24 15:02                                           ` Maciej Sobczak
2007-09-24 19:20                                             ` Dmitry A. Kazakov
2007-09-25 20:53                                               ` Maciej Sobczak
2007-09-26 10:42                                                 ` Dmitry A. Kazakov
2007-09-26 21:31                                                   ` Maciej Sobczak
2007-09-27 15:02                                                     ` Dmitry A. Kazakov
2007-09-27 21:02                                                       ` Maciej Sobczak
2007-09-26 12:21                                                 ` Robert A Duff
2007-09-26 12:54                                                   ` Dmitry A. Kazakov
2007-09-26 21:37                                                   ` Maciej Sobczak
2007-09-26 23:47                                                     ` Randy Brukardt
2007-09-27 21:08                                                       ` Maciej Sobczak
2007-09-28  0:44                                                         ` Randy Brukardt [this message]
2007-09-28 20:32                                                           ` Maciej Sobczak
2007-09-28 22:35                                                             ` Randy Brukardt
2007-09-29 23:58                                                             ` Robert A Duff
2007-09-26 12:26                                                 ` Robert A Duff
2007-09-26 21:50                                                   ` Maciej Sobczak
2007-09-26 22:20                                                     ` Ray Blaak
2007-09-27  0:01                                                     ` Randy Brukardt
2007-09-27 13:39                                                     ` Robert A Duff
2007-09-27 14:54                                                       ` Dmitry A. Kazakov
2007-09-28  0:35                                                         ` Randy Brukardt
     [not found]                                                           ` <7p6gc1s9imfa$.kmvwf5zyf8e9.dlg@40tude.net>
2007-09-28 22:53                                                             ` Randy Brukardt
2007-09-29 20:37                                                               ` Dmitry A. Kazakov
2007-09-27 21:23                                                       ` Maciej Sobczak
2007-09-28 19:12                                                         ` Robert A Duff
2007-09-28 19:02                                                     ` Robert A Duff
2007-09-28 19:42                                                       ` Robert A Duff
2007-09-28 20:44                                                         ` Maciej Sobczak
2007-09-28 22:40                                                           ` Randy Brukardt
2007-09-29 20:35                                                           ` Dmitry A. Kazakov
2007-09-29 20:52                                                             ` Maciej Sobczak
2007-09-30  8:38                                                               ` Dmitry A. Kazakov
2007-09-29 23:47                                                             ` Robert A Duff
2007-09-29 20:48                                                           ` Maciej Sobczak
2007-09-29 23:39                                                             ` Robert A Duff
2007-09-30  8:38                                                               ` Dmitry A. Kazakov
2007-09-29 23:42                                                           ` Robert A Duff
2007-09-25  1:59                                   ` Randy Brukardt
2007-09-25  8:59                                     ` Dmitry A. Kazakov
2007-09-25 21:02                                       ` Randy Brukardt
2007-09-26 12:42                                         ` Dmitry A. Kazakov
2007-09-18  4:03 ` Steve
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox