comp.lang.ada
 help / color / mirror / Atom feed
From: dewar@merv.cs.nyu.edu (Robert Dewar)
Subject: Re: Source files organisation using gnat
Date: 1997/07/01
Date: 1997-07-01T00:00:00+00:00	[thread overview]
Message-ID: <dewar.867762535@merv> (raw)
In-Reply-To: 5p9jci$eb9@top.mitre.org


Michael Brenner says

<<Organizing the directory tree. Because of the design decision that
gnat requires one compilation unit per file, much of the organization
that the Ada language provides (that is, configuration management)
is absent in gnat. Unfortunately, in the latest version, gnat 3.07DOS,
there is also an incomplete design that it is not possible to put
the sources in one set of directories and the objects in another
set of directories. I have been told that this is still the case in
the un*x release 3.10. Therefore, there are several approaches:
(1) use an external configuration management tool to organize files
together instead of releasing them in multi-unit files in multiple
directories
>>


First, the idea that "configuration management" is present in the Ada
language at all is pretty thin, as previously discused in detail on CLA.

Second, the idea that this CM relies on having multiple compilation units
per file is even thinner:

  (a) The Ada language has never required multiple compilation units per file.
      In fact it has nothing to say at all about files and source 
      representation issues.

  (b) Most Ada style guidelines, including AQ&S, advise in any case the
      style of one compilation unit per file (to do otherwise underrmines
      the intent of the independent compialtion design in Ada).

Third, it is perfectly easy to set up appropriate scripts to deal with
multiple compilation units per file if that is what you really want. 
Error messages and debugging information can refer to the original file
in this case. We do this e.g. with the ACVC suite, but very rarely 
otherwise, since our style guidelines, like AQ&S, require one unit per file.

Finally, the idea that you cannot have souces in one set of directories
and objects in another is completely wrong. This is a normal setup used
by us and by many others for a long long time.

Robert Dewar
Ada Core Technologies

P.S. it is true that the use of a classical Ada 83 library system gives
some kind of very thin CM-related help, but that has nothing at all to
do with multiple units per file. If you want to duplicate this semantics
with GNAT it is pretty easy to do so (Jean-Pierre Rosen has a little
set of scripts that duplicate the effect of an Ada 83 library, it is
pretty easy to do). But in practice this is not of much interest, because
it makes better sense to design precisely the setup of directories and
"library" handling that you want. Most GNAT users do not want something
that duplicates Ada 83 semantics (including for examle the requirement
that compilations be done in the "right" order).





  reply	other threads:[~1997-07-01  0:00 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-06-30  0:00 Source files organisation using gnat Laurentau
1997-06-30  0:00 ` Robert Dewar
1997-07-01  0:00   ` Samuel T. Harris
1997-07-04  0:00     ` Robert Dewar
1997-07-05  0:00       ` Michael Feldman
1997-07-03  0:00   ` Steve Doiel
1997-07-04  0:00     ` Robert Dewar
1997-07-04  0:00       ` Michel Gauthier
1997-07-04  0:00         ` Robert Dewar
1997-07-03  0:00   ` David Haslam
1997-07-03  0:00     ` Robert Dewar
1997-07-09  0:00       ` Robert I. Eachus
1997-06-30  0:00 ` Robert Dewar
1997-07-01  0:00 ` Michel Gauthier
1997-07-05  0:00   ` Robert Dewar
1997-07-06  0:00     ` Geert Bosch
1997-07-07  0:00       ` Tucker Taft
1997-07-08  0:00       ` Robert Dewar
1997-07-08  0:00         ` nabbasi
1997-07-08  0:00           ` Robert Dewar
1997-07-01  0:00 ` Michael F Brenner
1997-07-01  0:00   ` Robert Dewar [this message]
1997-07-02  0:00   ` Wes Groleau
1997-07-07  0:00     ` Michael F Brenner
1997-07-01  0:00 ` Geert Bosch
1997-07-02  0:00   ` Source files organisation using gnat: more Laurentau
1997-07-02  0:00     ` Robert B. Love 
1997-07-02  0:00       ` nasser
1997-07-03  0:00     ` Ian Caldwell
1997-07-03  0:00     ` Michael F Brenner
replies disabled

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