comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Possible Ada deficiency?
Date: Tue, 11 Jan 2005 14:23:37 -0600
Date: 2005-01-11T14:23:37-06:00	[thread overview]
Message-ID: <_ZCdnTiNfpH0qHncRVn-2Q@megapath.net> (raw)
In-Reply-To: wccbrbx3qbp.fsf@shell01.TheWorld.com

"Robert A Duff" <bobduff@shell01.TheWorld.com> wrote in message
news:wccbrbx3qbp.fsf@shell01.TheWorld.com...
> "Randy Brukardt" <randy@rrsoftware.com> writes:
...
> >... inline is a hint and the
> > dependencies need not (and should not) be used. Do any inlining/macro
> > expansion at link-time.
>
> I don't see link-time as an improvement.  Whether you do this work at
> compile time or link time, it still costs in terms of rebuild time.
> And either way, you have to redo the work when the body changes.

Sure, but if the extra rebuild time isn't significant, who cares?

> >...Certainly I wasn't the only one who thought that was
> > the intent.
>
> But you're the only one who implemented it that way!

I certainly wasn't the only one to share generics by default. I'm pretty
sure the old Rational compiler worked the same way. I'm the only one
bull-headed enough to maintain that approach in the face of Ada 95, though.
:-)

> >...Machines of the era weren't really powerful enough to implement
> > that intent, thus the hacks of the generic dependency and the inline
> > dependency were allowed.
> >
> > Of course, Ada 95 came along and changed that intent.
>
> I don't understand that.  Maybe I don't understand what you mean by
> "that intent".  Which rules of Ada 95 are you talking about, here?

There are many rules of Ada 95 that make sharing impractical (not
impossible, just impractical). For instance, there was no reason in Ada 83
to make the size of generic formal types the same as the actual type. (Ada
95 requires that because of aliased objects.) Whereas, Ada 83 had just one
(the previously mentioned parameter passing style), and there never has been
a test written that could show the difference (such a test would be very
dubious anyway).

> >... Which is too bad, as
> > machines now are powerful enough to implement the Ada 83 intent!
>
> I don't understand that, either.  Are you saying that the run-time
> overhead of the always-share model is now acceptable?

No, I was thinking of the time/space requirements for building such a
compiler "properly". We didn't really implement my design because our hosts
didn't have enough memory to store the intermediate code for the entire
program, and a disk-based solution would be way too slow. It would be
practical on modern machines (other than that I can't predict the
performance of the optimization pass, which would be critical to making the
scheme work. We'd have to build it to see).

Note that with the design that I had in mind, the run-time overhead of
"always share" (as you put it) would be greatly reduced by partial
evaluation and inlining optimizations -- done at link-time so that all of
the instantiations and calls are known. Plus, pragma Inline could be used to
reduce the overhead to nearly nil on critical stuff. The problem isn't the
run-time overhead so much as it is supporting the optimizations necessary to
mitigate it.

                                Randy.



> - Bob





  reply	other threads:[~2005-01-11 20:23 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-31 18:15 Possible Ada deficiency? danmcleran
2004-12-31 19:12 ` Jeffrey Carter
2005-01-01  1:52   ` danmcleran
2005-01-01  2:37     ` Jeffrey Carter
2005-01-01  2:02   ` danmcleran
2005-01-01 14:11     ` Martin Krischik
2005-01-01 15:27       ` danmcleran
2005-01-02 17:49         ` Martin Krischik
2005-01-01 15:30     ` Stephen Leake
2005-01-01 15:57       ` danmcleran
2005-01-03 23:37         ` Randy Brukardt
2005-01-07 17:26           ` Nick Roberts
2005-01-07 18:26             ` danmcleran
2005-01-07 21:32             ` Randy Brukardt
2005-01-08  3:56               ` Nick Roberts
2005-01-08 18:15                 ` Robert A Duff
2005-01-08 19:11                   ` Jeffrey Carter
2005-01-08 20:03                     ` Robert A Duff
2005-01-09  3:40                       ` Jeffrey Carter
2005-01-09 17:30                         ` Robert A Duff
2005-01-09 19:24                           ` Jeffrey Carter
2005-01-09 21:56                           ` Nick Roberts
2005-01-10 13:47                             ` Dmitry A. Kazakov
2005-01-10 16:46                               ` Duncan Sands
2005-01-10 17:58                                 ` Pascal Obry
2005-01-10 18:45                                   ` Dmitry A. Kazakov
2005-01-10 19:44                                     ` Pascal Obry
2005-01-11 10:05                                       ` Dmitry A. Kazakov
2005-01-11  7:24                                     ` Vinzent 'Gadget' Hoefler
2005-01-11  9:48                                       ` Dmitry A. Kazakov
2005-01-11 13:57                                         ` Vinzent 'Gadget' Hoefler
2005-01-11 21:52                                           ` Robert A Duff
2005-01-12 11:22                                           ` Dmitry A. Kazakov
2005-01-09 17:23                   ` danmcleran
2005-01-09 17:46                     ` Robert A Duff
2005-01-10  3:05                       ` danmcleran
2005-01-09 18:41                   ` Nick Roberts
2005-01-09 19:06                     ` Martin Krischik
2005-01-09 20:10                     ` Robert A Duff
2005-01-09 20:15                     ` Robert A Duff
2005-01-11 14:13                       ` Possible Ada deficiency? (goto) Peter Hermann
2005-01-11 14:54                         ` Nick Roberts
2005-01-11 22:15                         ` Robert A Duff
2005-01-12 10:17                           ` Peter Hermann
2005-01-15 17:34                             ` Robert A Duff
2005-01-15 17:58                               ` Dmitry A. Kazakov
2005-01-15 19:34                                 ` Robert A Duff
2005-01-10 20:15                   ` Possible Ada deficiency? Randy Brukardt
2005-01-10 21:51                     ` Robert A Duff
2005-01-11 20:23                       ` Randy Brukardt [this message]
2005-01-11 21:24                         ` Robert A Duff
2005-01-12 19:57                           ` Randy Brukardt
2005-01-02 15:51       ` Adrian Hoe
2005-01-04 16:06       ` Peter Hermann
2005-01-01 23:36     ` tmoran
2005-01-02  3:38       ` danmcleran
2004-12-31 19:16 ` Martin Dowie
2005-01-01  2:32   ` Jeffrey Carter
2004-12-31 23:23 ` Nick Roberts
2005-01-01  1:56   ` danmcleran
2005-01-01 11:43 ` Dmitry A. Kazakov
2005-01-01 15:46   ` danmcleran
2005-01-01 17:58     ` Larry Kilgallen
2005-01-01 19:43       ` danmcleran
2005-01-02  0:36         ` Ed Falis
2005-01-02  3:36           ` danmcleran
2005-01-02 15:53             ` Ed Falis
2005-01-07 18:31               ` danmcleran
2005-01-07 18:44                 ` Pascal Obry
2005-01-07 19:29                   ` danmcleran
2005-01-07 21:28                     ` Pascal Obry
2005-01-01 23:28   ` danmcleran
2005-01-02 10:26     ` Dmitry A. Kazakov
2005-01-02 15:51       ` danmcleran
2005-01-03 23:48     ` Randy Brukardt
2005-01-01 14:06 ` Martin Krischik
2005-01-01 15:53   ` danmcleran
2005-01-07 21:33 ` Robert A Duff
2005-01-09 17:15   ` danmcleran
2005-01-09 17:38     ` Robert A Duff
2005-01-10  3:16       ` danmcleran
2005-01-09 18:41     ` Martin Dowie
2005-01-10  3:18       ` danmcleran
2005-01-10 20:32         ` Randy Brukardt
2005-01-10 21:42           ` danmcleran
2005-01-10 21:36         ` Robert A Duff
2005-01-10 21:44           ` danmcleran
2005-01-09 19:01     ` Jeffrey Carter
2005-01-10  3:20       ` danmcleran
2005-01-10 22:16         ` Robert A Duff
2005-01-10 22:29           ` danmcleran
2005-01-11 20:12             ` Georg Bauhaus
2005-01-11 20:30               ` danmcleran
2005-01-11 21:44               ` Robert A Duff
2005-01-11  0:06           ` Jeffrey Carter
2005-01-11  0:46             ` Robert A Duff
2005-01-11 20:37           ` danmcleran
2005-01-11 21:08             ` Robert A Duff
2005-01-17  4:40 ` Tucker
2005-01-18 13:46   ` danmcleran
2005-01-18 21:29     ` Nick Roberts
2005-01-24 17:23   ` danmcleran
  -- strict thread matches above, loose matches on Subject: below --
2004-12-31 19:06 danmcleran
replies disabled

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