comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Composing tasks and protected objects
Date: Sat, 6 Aug 2005 20:27:01 -0500
Date: 2005-08-06T20:27:01-05:00	[thread overview]
Message-ID: <VM6dnfR2-48F_2jfRVn-tg@megapath.net> (raw)
In-Reply-To: wcchde4dyv4.fsf@shell01.TheWorld.com

"Robert A Duff" <bobduff@shell01.TheWorld.com> wrote in message
news:wcchde4dyv4.fsf@shell01.TheWorld.com...
> Florian Weimer <fw@deneb.enyo.de> writes:
>
> > * Robert A. Duff:
> > > The multi-way call feature was rejected primarily due to perceived
> > > difficulty of implementation, or perceived difficulty of *efficient*
> > > implementation.  I did not agree with that argument.
> >
> > I could understand that argument if this language feature caused
> > uniform overhead on all protected operations, even if it isn't used
> > anywhere in the program.  Is this really the case?
>
> I think I could implement multi-ways calls in such a way that there is
> zero or near-zero overhead for the currently-allowed features (plain
> calls, timed/conditional calls).  But I have not proven that by doing
> so!

The UI teams of the Ada 9X effort were asked to write reports on this
feature. None of them came up with an efficient implementation. Their
reports are still around somewhere (use the search engine to look in the
AdaIC archives - archive.adaic.com).

> Inefficiency is never a good reason to leave a feature out of a
> language.  What matters is distributed overhead (i.e. when a feature
> causes inefficiency when you *don't* use it).

I think that most of the possible efficient implementations did so by having
distributed overhead. But it was a long, long time ago, so I don't remember
the details anymore.

But I do remember that one of the major issues was that the people who were
pushing for the feature were hard-real-time types with strict timing
requirements. No one had an implementation that could meet those sorts of
requirements (polling seemed to be required). Having a feature that cannot
be efficicient enough for the customers is silly.

> There's also the issue that the implementation experiments done during
> the Ada 9X process were done on *existing* implementations, which were
> designed with the requirements of Ada 83 in mind.  Adding a feature to
> an existing implementation is sometimes a lot harder than implementing
> it in a from-scratch design where the designer knows the requirements

Possibly. I have to wonder if there wouldn't be too many conflicting
requirements to make that possible. The "Bob" language without task entries
would clearly make it easier to allow other sorts of things (although I
can't quite figure out how it would work). A clear sheet of paper helps
things in every dimension -- but that isn't going to happen for Ada, as
compatibility is important.

                                Randy.






  parent reply	other threads:[~2005-08-07  1:27 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-05 17:26 Composing tasks and protected objects Florian Weimer
2005-08-05 17:49 ` Robert A Duff
2005-08-05 18:09   ` Florian Weimer
2005-08-05 18:26     ` Robert A Duff
2005-08-05 19:20       ` Florian Weimer
2005-08-07  1:27       ` Randy Brukardt [this message]
2005-08-08 21:55         ` Robert A Duff
2005-08-06  5:52 ` Jeffrey Carter
2005-08-08  9:52   ` Florian Weimer
2005-08-08 20:50     ` Randy Brukardt
2005-08-08 22:14       ` Robert A Duff
2005-08-06  9:01 ` Dmitry A. Kazakov
replies disabled

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