I think there is indeed plenty of build scripts that rely on the order of the target in the depends attribute (we can maybe even talk of pattern). So clearly a parallelisation it must be explicit.
To make it explicit, I liked the use of '|' replacing the ',' as mentioned earlier. However, I'm not sure that ant is ready to support multithreaded build. We could give it a try, but it will be a nightmare to debug, and I'm not sure we have the right debugging tool. Multithread is workable in most language. But most of the time, those languages have a strong support for scoping (shared object are often the exception, most manipulated object are usually local to a thread). In Ant the primary things that we manipulate is the file system, the properties and the ids. All will be shared by all the threads. Gilles > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: mardi 18 décembre 2007 12:33 > To: user@ant.apache.org > Subject: AW: AW: extended parallelism > > > >> <target name="a" depends="b,c,d"/> > > >> If such a dependency did exist, it should be incorporated in > > >> the depends attribute of the 'b' & 'c' target declarations. > > > > > > Thats the meaning - unordered list. > > > > > > > > >> Assuming in the example above that targets b, c & d have no > > >> dependencies of their own, they should be eligable for > > >> parallel execution automatically without any need for > > >> additions to the syntax. > > > > > > Thats the ParallelExecutor implementation ;) > > > > > > > > > > Hmm, interesting view. I was under the impression that there is an > implicit > > order of the targets listed in the "depends" attribute. Two sentences > in [1] > > suggest the same: > > > > [...] > > > > Ant tries to execute the targets in the depends attribute > > in the order they appear (from left to right) > > > > [...] > > > > It is a good practice to place your tstamp tasks in > > a so-called initialization target, on which all other > > targets depend. Make sure that target is always the > > ^^^^^^^^^^^^^^^^^^^^^^^^^ > > first one in the depends list of the other targets. > > ^^^^^^^^^ > > In this manual, most initialization targets have > > the name "init". > > > > [...] > > > Oh, have to have a look at that. If I change the semantic this has to be > made explicit ... > (It can be done because you have to specify the executor for your own > ...) > > "Ant tries to execute the targets in the depends attribute in the order > they appear (from left to right)." [1]. > Ant 'tries' - so I wouldnt rely on that ... ;) > Especially if you read the example direclty under that: the order doesnt > matter if the dependend targets have dependencies for their own. > > > The note about the "init" target is an old one - not invalid, but no > more needed: you can place tasks directly under <project> (since 1.6). > The next two sentences "always first element in depends clause" + "in > the depends clause of each target" are redundant: if I specify that init > in each target, it does not matter where I put it in the depends-list. > > > Target.setDepends(String s): (basically) > List deps; > for(String s2 : s.split(",")) { > deps.add(s2); > } > > > Manual is not clear (as clear in a "specification") but the code sais > that there is an order. > So I would just document that. It is the users possibility of using the > executor or not. > > Or do you have another idea for parallelizing? > > > > Jan > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]