comp.lang.ada
 help / color / mirror / Atom feed
* Re: separate keyword and separate compilation with GNAT?
@ 1996-07-10  0:00 W. Wesley Groleau (Wes)
  1996-07-10  0:00 ` Robert Dewar
  1996-07-10  0:00 ` Robert A Duff
  0 siblings, 2 replies; 5+ messages in thread
From: W. Wesley Groleau (Wes) @ 1996-07-10  0:00 UTC (permalink / raw)



Someone complained about the incredible length of time it would take to
compile a "large" system with GNAT due to GNAT's method of also compiling
subunits.  A similar complaint could be made about the need to "re-compile"
EVERYTHING higher on the dependency tree.

HOWEVER: I know of TWO (independent) commercial compilers with "library"
systems which get corrupted any time you make the slightest change to the
dependency tree.  Add a 'with' or a 'separate' and you have to remove
the library and start over.  One of the compilers was used for a system
that had 14,000+ source files and took 16 hours to compile.  That particular
library structure also seemed to get corrupted if a resource problem
(not an Ada error) interrupted compilation of one unit.  Subsequent units
would raise complaints about other units (already with-ed many times).
Start over! (sigh).

The moral of the story is ... GNAT's not so bad!  GNAT's ADVANTAGE in the
above scenario is that it can compile in parallel as many files as you have
CPUs--both of the above compilers severely restricted multiple access to
libraries.

P.S. Some don't include spelling on their list of talents.  Let's do
them a favor and not propagate examples of incorrect spelling
(i.e., "seperate").  (But I'm NOT suggesting we flame the person whose
typo has been propagated.)
--
---------------------------------------------------------------------------
W. Wesley Groleau (Wes)                                Office: 219-429-4923
Magnavox - Mail Stop 10-40                               Home: 219-471-7206
Fort Wayne,  IN   46808              elm (Unix): wwgrol@pseserv3.fw.hac.com
---------------------------------------------------------------------------




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: separate keyword and separate compilation with GNAT?
  1996-07-10  0:00 separate keyword and separate compilation with GNAT? W. Wesley Groleau (Wes)
  1996-07-10  0:00 ` Robert Dewar
@ 1996-07-10  0:00 ` Robert A Duff
  1996-07-10  0:00   ` Robert Dewar
  1 sibling, 1 reply; 5+ messages in thread
From: Robert A Duff @ 1996-07-10  0:00 UTC (permalink / raw)



In article <9607101354.AA04329@most>,
W. Wesley Groleau (Wes) <wwgrol@PSESERV3.FW.HAC.COM> wrote:
>P.S. Some don't include spelling on their list of talents. ...

I once worked on an Ada compiler with a guy who said, in response to
another compiler-writer griping about subunits, "It's easier to
implement subunits than to spell the word 'separate'."

- Bob




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: separate keyword and separate compilation with GNAT?
  1996-07-10  0:00 ` Robert A Duff
@ 1996-07-10  0:00   ` Robert Dewar
  0 siblings, 0 replies; 5+ messages in thread
From: Robert Dewar @ 1996-07-10  0:00 UTC (permalink / raw)



GNAT knows how to spell :-)

     1. seperate (q)
        |
        >>> Incorrect spelling of keyword "separate"

     2. procedure j is
     3. begin
     4.    null;
     5. end;






^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: separate keyword and separate compilation with GNAT?
  1996-07-10  0:00 separate keyword and separate compilation with GNAT? W. Wesley Groleau (Wes)
@ 1996-07-10  0:00 ` Robert Dewar
  1996-07-10  0:00 ` Robert A Duff
  1 sibling, 0 replies; 5+ messages in thread
From: Robert Dewar @ 1996-07-10  0:00 UTC (permalink / raw)



Wes said

"Someone complained about the incredible length of time it would take to
compile a "large" system with GNAT due to GNAT's method of also compiling
subunits.  A similar complaint could be made about the need to "re-compile"
EVERYTHING higher on the dependency tree."

Let's not confuse two things here. The issue of requiring a complete
subtree to be present for compiling is quite a different issue from
"recompiling" withed units from source.

Yes, I have heard people complain that this must be "incredibly 
inefficient" or somesuch, but in fact I am not at all sure it is
even slightly inefficient. The trouble with the library approach is
that:

  first: you have to write the library when you compile, a step that
	we avoid completely.

  second: you have to read in all the data from the library. Often the
	library data is much bigger than sources, and just the I/O
	can be significant.

  third: you have to process/relocate etc. the data, which can be
	time consuming.

It is not at *all* obvious that recompiling from source is slower.

As I have noted before, the only versions of GNAT that anyone uses are
debugging versions which are dramatically slowed down by huge amounts
of debugging junk (we can be talking about a factor of several in
speed here). Still GNAT seems quite reasonably fast, and indeed it
is still typically the case that more time is spent in the backend
than the frontend, especially if optimization is turned on. Code
is not compiled for withed units, so any alledged slow down from
recompiling withed units can only affect the frontend time anyway.

As Wes notes, there are many other advantages of the source based
approach -- and indeed improved compilation performance may be
one of them :-)





^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Separate keyword and separate compilation with GNAT?
@ 1996-07-11  0:00 Sundog Software
  0 siblings, 0 replies; 5+ messages in thread
From: Sundog Software @ 1996-07-11  0:00 UTC (permalink / raw)



John Herro said
>     Second, Janus/Ada 83 for DOS has a compiler/linker switch to tell the
>system that the whole program will fit into a .COM file, so it can
>generate shorter jumps"

Robert said :
>Perhaps you mean that specifying small model allowed shorter calls? if so
>that is clearly true, but not something that is relevant any more these
>days.

I think he was refering to the small vs medium memory models that
R.R. Software can generate for the relavent CPU's - 8086, 80186, 80286.
They are of course significantly cheaper than a 32bit chip for embedded
systems and have more low power/heat options than the 32bit part of
the family (and unlike RR's 32bit version there is NO ROYALTY needed for
a DOS extender).
Regretably the implementation of 16bit Tag's has delayed the release of an
Ada95 version of that compiler to complement the 32bit versions.

Isaac
Sundog.Software@Msn.FullFeed.Com




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~1996-07-11  0:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-07-10  0:00 separate keyword and separate compilation with GNAT? W. Wesley Groleau (Wes)
1996-07-10  0:00 ` Robert Dewar
1996-07-10  0:00 ` Robert A Duff
1996-07-10  0:00   ` Robert Dewar
  -- strict thread matches above, loose matches on Subject: below --
1996-07-11  0:00 Separate " Sundog Software

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