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


Reply via email to