Hi Adam,

I would not remove the "-a" even if the UP-TO-DATE check is optimized. It is a useful and working feature.

Your ideas for the UP-TO-DATE check are very good. Is there a JIRA issue for this.

I profiled the UP-TO-DATE and found, that a new compileJava was faster than the UP-TO-DATE check.

I called "gradle clean" and then twice "gradle --profile build" and the first "compileJava" takes "2:11" and the second takes "2:14".

So the UP-TO-DATE check really needs optimization.

regards,
Mathias Kalb


Am 12.01.2011 00:33, schrieb Adam Murdoch:

On 11/01/2011, at 7:40 PM, Mathias Kalb wrote:

Hi Adam,

I often used the "-a" during my creation of the build scripts.

I have a multiproject with project dependencies.

If the first two subprojects works fine and the third has a problem I only want to build the third subproject "gradle -a :subproject3:compileJava".

Without the "-a" gradle has to check the other two subprojects and the UP-TO-DATE check takes a long time (> 1 minute on a fast machine).

I guess we'll have to keep -a for a while longer, then.

Over time, we will make these up-to-date checks faster, so that eventually -a ends up making no difference. There are certainly things we can do here. For example:

* Perform the checks asynchronously, so that we are invalidating queued tasks while executing another task.

* Aggregate tasks together and check only the inputs and outputs of the aggregate, rather than intermediate files. For example, in the case of project dependency, you generally only care if the jar is up-to-date wrt its transitive inputs. You don't care if a class file has been deleted or changed, as it is essentially a temporary file for the purposes of building the jar.

* Often, the output of one task is the input to another task (or tasks). We can merge the checks into a single pass.

* The daemon can listen for file system changes, and invalidate tasks in the background. We should be able to end up with a pre-built model, with the checks already performed.




Mathias Kalb

Am 10.01.2011 22:08, schrieb Adam Murdoch:
Hi,

There are a few command-line options which have been superseded by incremental build, and I'd like to remove them. The options are:

-A/--dep-tasks
-a/--no-rebuild
--no-opt

Anyone have a reason to keep them?





---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to