From: "Robert I. Eachus" <rieachus@attbi.com>
Subject: Re: Crosspost: Help wanted from comp.compilers
Date: Tue, 22 Jul 2003 05:02:53 GMT
Date: 2003-07-22T05:02:53+00:00 [thread overview]
Message-ID: <3F1CC567.5000407@attbi.com> (raw)
In-Reply-To: 3b1Ta.14846$0F4.12183@nwrdny02.gnilink.net
Hyman Rosen wrote:
> I'm starting to remember an earlier discussion on this subject, (that
> I don't think I was involved in). If I recall correctly, it's valid to
> define "exist in the environment" as "source code is readable" and to
> define "compile" as "check that the code is legal". Then object file
> generation doesn't have to be tied to the requirements that you are
> talking about, so the issue can be sidestepped (while still remaining
> true to both the letter and spirit of the Ada requirements).
NO! Wrong. You can define a simple text copy as putting a unit in the
environment. In effect GNAT among others does this for package specs.
But there is no way to get around the ordering requirements, and there
should not be. Some people get confused by the situation with generics.
Modifying a generic body may seem like it should invaldate instances
of the generic, but that is why the generic contract model is there.
An implementation can however make the "compile" process a simple
check-in and defer code generation until link time. I think Rational
may still do that. But the whole dependency checking thing is one of
the major strengths of Ada. Trying to short-cut it has been discovered
time and again to not be worth the effort--whether or not it can be made
to work.
Similarly there was a lot of screaming about "elaboration checks" and
access-before-elaboration issues in early Ada. The elaboration rules in
Ada 83 (and Ada 95) were adopted fairly late in the standardization
process. But once compiler vendors got used to them, the issue
disappeared from most Ada programmer's event horizons.
This is in part why I say that at least 80% of the Reference Manual
deals with what happens when you try to shoot yourself in the foot. For
most programmers who understand basic software engineering principles,
all they need to know about overload resolution is that it works. All
they need to know about semantic dependence is that sometimes when they
call gnatmake (or whatever compiler) it will recompile some units they
didn't touch. And they may never see Program_Error raised by an
elaboration check, because almost all of the work is done in the main
program, not in the sequence of statements of a package body. (In fact,
I wonder how many package bodies even have a sequence of statements...)
--
Robert I. Eachus
�In an ally, considerations of house, clan, planet, race are
insignificant beside two prime questions, which are: 1. Can he shoot? 2.
Will he aim at your enemy?� -- from the Laiden novels by Sharon Lee and
Steve Miller.
next prev parent reply other threads:[~2003-07-22 5:02 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-15 5:46 Crosspost: Help wanted from comp.compilers John R. Strohm
2003-07-15 13:30 ` Hyman Rosen
2003-07-15 14:07 ` Larry Kilgallen
2003-07-15 21:02 ` John R. Strohm
2003-07-15 23:00 ` Robert I. Eachus
2003-07-16 1:52 ` Jeffrey Carter
2003-07-16 4:45 ` John R. Strohm
2003-07-16 3:21 ` Hyman Rosen
2003-07-16 17:15 ` Robert I. Eachus
2003-07-16 17:38 ` Larry Kilgallen
2003-07-16 18:04 ` Hyman Rosen
2003-07-16 21:05 ` John R. Strohm
2003-07-16 21:23 ` Hyman Rosen
2003-07-16 23:23 ` Marin David Condic
2003-07-17 1:39 ` Hyman Rosen
2003-07-17 12:25 ` Marin David Condic
2003-07-17 1:48 ` Randy Brukardt
2003-07-17 2:06 ` Hyman Rosen
2003-07-17 6:44 ` tmoran
2003-07-17 7:59 ` Hyman Rosen
2003-07-17 18:02 ` tmoran
2003-07-19 16:51 ` Richard Riehle
2003-07-20 10:38 ` Marin David Condic
2003-07-22 20:29 ` Simon Wright
2003-07-17 8:37 ` tmoran
2003-07-17 14:10 ` Larry Kilgallen
2003-07-17 18:02 ` tmoran
2003-07-17 18:14 ` Larry Kilgallen
2003-07-17 19:29 ` Robert A Duff
2003-07-17 13:12 ` Frank J. Lhota
2003-07-17 13:33 ` Hyman Rosen
2003-07-17 4:29 ` John R. Strohm
2003-07-17 4:58 ` Hyman Rosen
2003-07-17 6:44 ` tmoran
2003-07-17 7:50 ` Hyman Rosen
2003-07-17 18:02 ` tmoran
2003-07-17 18:14 ` Ed Falis
2003-07-17 18:35 ` David C. Hoos
2003-07-17 19:13 ` Ed Falis
2003-07-17 19:24 ` Robert A Duff
2003-07-17 19:39 ` Ed Falis
2003-07-17 20:20 ` Robert A Duff
2003-07-17 20:31 ` Ed Falis
2003-07-17 19:40 ` tmoran
2003-07-17 19:47 ` Ed Falis
2003-07-17 21:23 ` tmoran
2003-07-17 22:38 ` Ed Falis
2003-07-17 6:46 ` Lutz Donnerhacke
2003-07-17 9:50 ` Preben Randhol
2003-07-17 21:45 ` Hyman Rosen
2003-07-18 1:22 ` John R. Strohm
2003-07-18 3:15 ` Hyman Rosen
2003-07-18 6:18 ` John R. Strohm
2003-07-18 14:43 ` Hyman Rosen
2003-07-19 5:25 ` Robert I. Eachus
2003-07-20 14:42 ` Hyman Rosen
2003-07-20 18:46 ` Chad R. Meiners
2003-07-21 15:37 ` Hyman Rosen
2003-07-21 17:59 ` Chad R. Meiners
2003-07-20 23:06 ` Robert I. Eachus
2003-07-21 15:14 ` Hyman Rosen
2003-07-21 20:11 ` Robert I. Eachus
2003-07-22 2:19 ` Hyman Rosen
2003-07-22 4:54 ` John R. Strohm
2003-07-22 5:02 ` Robert I. Eachus [this message]
2003-07-22 11:53 ` Marin David Condic
2003-07-22 17:58 ` Randy Brukardt
2003-07-22 19:16 ` Hyman Rosen
2003-07-23 7:20 ` Vinzent Hoefler
2003-07-23 14:27 ` Hyman Rosen
2003-07-23 15:08 ` Vinzent Hoefler
2003-07-21 16:00 ` tmoran
2003-07-21 23:54 ` Robert I. Eachus
2003-07-18 11:31 ` Larry Kilgallen
[not found] ` <bf83qt$ju3@library2.airnews.netOrganization: LJK Software <lSNU7JdZau5p@eisner.encompasserve.org>
2003-07-18 14:43 ` Robert I. Eachus
2003-07-18 11:28 ` Larry Kilgallen
2003-07-16 23:14 ` Marin David Condic
2003-07-17 4:08 ` John R. Strohm
2003-07-17 9:42 ` Preben Randhol
2003-07-18 17:18 ` Robert I. Eachus
2003-07-18 17:42 ` Hyman Rosen
2003-07-15 21:59 ` Christopher Browne
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox