Assaf Arkin wrote:

On Thu, Oct 16, 2008 at 8:13 AM, Ittay Dror <[EMAIL PROTECTED]> wrote:
Currently, in buildr:initialize (project.rb), all projects are invoked. This
is done so that if I write 'buildr <project task>', it will be already known
(where project task is something like foo:bar:build).

Actually this is done to create a graph of all the tasks and wire them
together, so whatever task you invoke from the command line, all the
wired dependencies are invoked as well.  There's no lazy evaluation
going on, which of course means everything gets computed whether you
need it or not.  On the other hand, it keeps the code simple.
Since I'm writing the code once and it is used many times afterwards by developers, I don't mind paying a price for making their life easier.

Maybe add a way of "exporting" tasks (with a way to do it repeatedly for all projects), so that these tasks can be run from the command line and only then will they invoke the projects they depend on?

Ittay
assaf

In large build environments, a developer will usually want to invoke just a
small subst of projects (build a component with only the modules it
requires). In contrast, such a large environment will contain many modules
and so invoking all projects becomes expensive (in my case, it takes 50% of
the time when building a single module). Is there a way to avoid this?


I also tried this with a buildfile for the abdera project (a very simple
project with only jars). For a simple module the initialization is 1 second
and the building of the module is 4 seconds (20% overhead), there are 24
modules.


I'm using Windows, which may have a part in this.


Ittay


--
--
Ittay Dror <[EMAIL PROTECTED]>





--
Ittay Dror <[EMAIL PROTECTED]>
Tikal <http://www.tikalk.com>
Tikal Project <http://tikal.sourceforge.net>

Reply via email to