[openbeos] [ANN] Jam Updated

  • From: "Ingo Weinhold" <bonefish@xxxxxxxxxxxxxxx>
  • To: "OBOS" <openbeos@xxxxxxxxxxxxx>
  • Date: Wed, 20 Nov 2002 01:46:09 CET (+0100)

Hi,

I commited some changes to our modified jam (current/src/tools/jam), 
intended to reduce the build time overhead caused by jam. Here they 
are:

* As you certainly know, jam has the nice feature to automatically scan 
source files for included files (recursively) in order to be able to 
recompile a file, also when only one of the files it includes has been 
modified. I imported some code by Matt Armstrong that introduces a 
cache for the dependencies found by header scanning. This speeds up the 
process significantly.

* I implemented a cache for the Jamfiles (BTW, almost 300 in our build 
system). On my machine I win a few seconds.

* I removed an superfluous statement in jam's code for execution of 
rules under on a target. Some more seconds...

Concrete numbers: When running jam on my machine on an already up to 
date tree, the old version needs ca. 70 seconds to find out, that 
nothing has to be done, the new one needs only about 35 seconds once 
the caches have been build. When supplying an invalid target (so that 
jam does not even need to do header scanning) the time drops from ca. 
20 to 10 seconds (the measured times heavily depend on what the file 
system has cached though).

Note: Run a `cvs up' on your tree -- Jamrules has been modified and the 
cache files are stored in the newly created directory current/build. 
That's also where the file BuildConfig is expected to reside now -- 
move your old BuildConfig or re-run ./configure.

Have fun.

CU, Ingo



Other related posts:

  • » [openbeos] [ANN] Jam Updated