From: "Robert I. Eachus" <rieachus@attbi.com>
Subject: Re: Crosspost: Help wanted from comp.compilers
Date: Fri, 18 Jul 2003 17:18:28 GMT
Date: 2003-07-18T17:18:28+00:00 [thread overview]
Message-ID: <3F182BDC.9070208@attbi.com> (raw)
In-Reply-To: slrnbhcrs9.jt.randhol+abuse@kiuk0152.chembio.ntnu.no
Preben Randhol wrote:
> Perhaps I misunderstand you, but if you make the .ali files read-only
> the library won't be recompiled when you with a unit in your program. If
> it needs to be due to change of compiler or some other reason the
> compiler will stop compiling and tell you it is needed. But I guess you
> were refering to something else?
You misunderstood. The specifications of all units, usually packages,
that you with are recompiled everytime. This does not affect the status
of that unit. It is just that it is faster and easier to do those
recompiles than to store an intermediate representation of the spec.
To compare the two approaches:
Old way:
When you compile a package specification, a library entry is created
containing a processed version of the package spec.
When you compile a unit that withs that package, the processed version
is found and loaded into the compiler.
GNAT way:
IF you compile a package specification, the compiler checks it for
errors and does nothing else. (Well it gives you a message saying no
code generated. Go do gnatmake foo.ads for some package specification
you have lying around to try it.)
When you compile a body (foo.adb) the complier creates a transitive
closure of the with clauses, compiling each specification as found. The
compiler then compiles the body, including any subunits, creates an
object file (and other files) and puts them in the directory (program
library).
Are there cases where doing things the old way would be faster? Sure.
But in the majority of cases the new GNAT approach, shared by some other
Ada 95 compilers is faster. And as far as I am concerned, it is better
for actual Ada programmers. This goes back to a very old paper,
"Nesting in Ada is for the Birds," by L. Clarke, J. Wileden & A. Wolf,
ACM SIGPLAN Notices 15, 11 (1980), 139-145. (How's that for Googling
an old reference out of nowhere. ;-) In Ada trees tend to become
shorter and bushier as programmers get more familiar with Ada style. So
for all I know, compiling specs into the library was the right model for
Ada 83, but the new model is better now.
--
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-18 17:18 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
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 [this message]
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