Hi Geert,
Thanks for your answer - I was starting to feel I'm entertaining a
monologue here ;)
On Mon, 2009-04-20 at 13:05 -0400, Geert Bosch wrote:
>
> While this may be an interesting idea, there are some fundamental
> assumptions in the compiler that each compilation indeed processes
> a single compilation unit, resulting in a single object and .ali
> file. It would be best to first contemplate what output a single
> invocation of the compiler, with multiple compilation units
> as arguments, should produce.
For an invocation
gnat1 a.adb b.adb c.adb
, the files a.{s,ali} b.{s,ali} c.{s,ali} are produced.
> How would you decide if a unit needs recompilation if there was no 1:1
> correspondence between compilation units and object/.ali files?
The correspondence is still 1:1, see above.
> Note that unlike many other languages, Ada requires checks to avoid
> including out-of-date compilation results in a program.
Certainly - but that's the job of gnatmake. I'm at the level of gnat1.
In the end, gnatmake would not generate a sequence of individual calls
to gcc but rather supply all files to be recompiled in a single call.
Oliver