[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-dev] incremental support on the command-line

We put -sourceroots in place so that the command line incremental compiler can detect when a source file is deleted/moved/added and behave accordingly.  This seems like the common use case for incremental since it matches the way an IDE works.  The IDEs ‘emulate’ the behavior of -sourceroots by creating a “.lst” file for the changed source file structure on every build.


But it sounds like Wes is raising an RFE for incremental compilation of “.lst” files on the command line.  There is nothing fundamental about the –sourceroots requirement and implementing the RFE should be straightforward. Wes: could you create a report with a use case?


For now Adrian’s suggestions to improve change detection in incremental mode seem higher priority.




From: aspectj-dev-admin@xxxxxxxxxxx [mailto:aspectj-dev-admin@xxxxxxxxxxx] On Behalf Of Adrian Colyer
Sent: Tuesday, March 16, 2004 1:09 AM
To: aspectj-dev@xxxxxxxxxxx
Subject: Re: [aspectj-dev] incremental support on the command-line


I'm not sure of the historical reasons for that limitation (expediency of implementation?), but I can't immediately see any reason why we couldn't support incremental compilation using a list of source files as opposed to sourceroots (by the time we get to actually compile, the origin of the source files is lost anyway).  A full ".lst" file has more implications - it can contain a whole host of compiler directives. We also don't say in the docs (that I could find) whether we support injars, inpath and aspectpath with incremental compilation. They currently don't work (any changes in resources on these paths will be ignored I believe), but the compiler accepts them. Copying of resources (only an issue if inxxx  is allowed) is also broken under incremental (no changes detected again). We also allow the user to specify -outjar, but that's broken too.

[Just to qualify - when I say 'broken', I don't mean it all falls down in a heap, just that not all cases are handled correctly.]

All of these things will be needed by AJDT, and I propose to extend our incremental capability to cover them (even if in the very simplest case we simply revert back to a batch build on change detection). Once that is done and the tests are in place, I see no reason to continue to limit the command line (or ant) incremental compiles. AJDT has to cope with classpath etc. changes between compiles, and will follow the JDT rule - if any path element changes, then do a full build.

I raised bugs 54618, 54621, 54622, and 54625 last week to cover these issues. The next challenge is supporting tests of this nature in the test harness...

-- Adrian


Wes Isberg <wes@xxxxxxxxxxxxxx>
Sent by: aspectj-dev-admin@xxxxxxxxxxx

16/03/2004 01:40
Please respond to aspectj-dev

        To:        "aspectj-dev@xxxxxxxxxxx" <aspectj-dev@xxxxxxxxxxx>
        Subject:        [aspectj-dev] incremental support on the command-line

We used to say -sourceroots is required to support incremental on
the command-line, but we seem to be able to implement incremental
using .lst files in AJDT.  True?  Will there be a continued
need for this limitation on the command-line compiler in 1.2?

Thanks -

aspectj-dev mailing list