comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: The Dreaded "Missing Subunits"
Date: Thu, 19 Sep 2002 15:34:02 -0500
Date: 2002-09-19T15:34:02-05:00	[thread overview]
Message-ID: <uokd3ep47r4obd@corp.supernews.com> (raw)
In-Reply-To: wccfzw6n914.fsf@shell01.TheWorld.com

Robert A Duff wrote in message ...

>Every time you tell the tool to re-analyze the world, it has to do
this:
>(1) Expand the wildcard(s), to see if there are any new files or any
>files have been deleted.  Then (2) check the timestamp on each source
>file to see if it has been changed.  Then it has to re-parse all the
>files that have changed, or are new (and it has to forget about
>information related to deleted files).  This process is quite fast,
even
>for large programs.  It's essentially what 'make' does when you say
>'make main_program', or what 'gnatmake' does when told to build a
>program.


Careful! Don't assume that these steps are faster than just parsing the
file. When we were (re)designing our make tool, we found that reading a
timestamp took about the same amount of time as parsing 500 lines of a
file (this was on MS-DOS/Windows 95, I think). Moreover, saving the
gathered information on disk was complex enough that it cost the same as
parsing another 1000 lines of a file. Not many Ada files are bigger than
1500 lines. So we don't even try to save information about source files;
reparsing and rebuilding the information in memory is generally faster.

This is essentially the basis of Xtreme Programming, after all: don't
build something complex until you've proven that the simple version is
too slow. (Just another piece of common sense that someone is making a
lot of money selling to people without it.)

         Randy Brukardt







  parent reply	other threads:[~2002-09-19 20:34 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-12 22:49 The Dreaded "Missing Subunits" Peter Richtmyer
2002-09-13  8:16 ` Peter Amey
2002-09-13  8:51   ` Ada2005 temp solo child (was: " Peter Hermann
2002-09-14  2:33     ` Robert A Duff
2002-09-13  9:24   ` Emmanuel Briot
2002-09-13 20:46     ` Simon Wright
2002-09-14  0:25     ` Chad R. Meiners
2002-09-14  2:53     ` Robert A Duff
2002-09-14 20:20       ` Simon Wright
2002-09-16 13:48         ` Ted Dennison
2002-09-16 16:33           ` Keith Thompson
2002-09-17  2:42             ` Ted Dennison
2002-09-18 20:56           ` Robert A Duff
2002-09-19  8:26             ` Emmanuel Briot
2002-09-19  9:55             ` Preben Randhol
2002-09-19 10:53             ` Marc A. Criley
2002-09-19 11:26             ` Marin David Condic
2002-09-19 21:49             ` Dmitry A.Kazakov
2002-09-19  9:47               ` Preben Randhol
2002-09-20  2:42                 ` Dmitry A.Kazakov
2002-09-19 15:33                   ` Stephen Leake
2002-09-19 15:36                   ` Preben Randhol
2002-09-20 22:31                     ` Dmitry A.Kazakov
2002-09-16 15:10       ` Emmanuel Briot
2002-09-18 21:17         ` Robert A Duff
2002-09-18 22:41           ` Stephen Leake
2002-09-19  0:00             ` Robert A Duff
2002-09-19  1:39               ` Keith Thompson
2002-09-19 15:19                 ` Stephen Leake
2002-09-19  4:02               ` Larry Kilgallen
2002-09-19 15:24               ` Stephen Leake
2002-09-19 20:34               ` Randy Brukardt [this message]
2002-09-19 14:44           ` Peter Richtmyer
2002-09-19 20:25           ` Randy Brukardt
2002-09-13 17:15 ` Mark Johnson
2002-09-13 20:56 ` Stephen Leake
2002-09-13 20:58 ` Simon Wright
2002-09-16 17:28   ` Peter Richtmyer
2002-09-19 20:05     ` Brian Gaffney
  -- strict thread matches above, loose matches on Subject: below --
2002-09-19  1:41 Alexandre E. Kopilovitch
2002-09-19 14:25 ` Peter Hermann
2002-09-19 11:37 Grein, Christoph
2002-09-20  6:03 Grein, Christoph
2002-09-20  7:30 ` Preben Randhol
2002-09-20 14:01   ` Robert A Duff
2002-09-20  9:05 Grein, Christoph
replies disabled

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