ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Conor MacNeill" <co...@cortexebusiness.com.au>
Subject RE: Incremental Compilation and ant
Date Fri, 21 Jul 2000 04:09:00 GMT
Arun,

There is a solution. It involves analyzing the dependencies between classes
to determine which files need to be recompiled. There have been two
proposals in the past which have sought to address this issue. I think there
are three ways to go

1. Add the dependency analysis to Javac and perhaps a switch to decide
whether to use it or not. This has been proposed by Vitaly Stulsky. I think
we still need to whole source code for this proposal.

2. Add a separate dependency task which generates a dependency file. Javac
would use that file to determine which files would need to be recompiled. I
proposed a patch for this approach. It decouples the dependency analysis
from the javac task

3. I think a third possible approach would be to have a dependency task
which removes out of date files. Javac would then recompile all necessary
files. This completely decouples the dependency analysis and action from the
Javac task. It could presumably be used to specify arbitrary dependencies.

I would like to have some discussion on this list about which approach, if
any, we should adopt for this issue. Class file analysis, to extract
dependencies, is not trivial and increases the amount of code in Ant quite a
bit. People may also want to consider source file analysis. Personally I
think class file analysis is both simpler and sufficient.

Conor

--
Conor MacNeill
conor@cortexebusiness.com.au
Cortex eBusiness
http://www.cortexebusiness.com.au

> -----Original Message-----
> From: Arun Katkere [mailto:katkere@praja.com]
> Sent: Friday, 21 July 2000 10:11
> To: ant-dev@jakarta.apache.org
> Subject: Incremental Compilation and ant
>
>
> Javac task filters the list of input source files to only those that are
> newer than corresponding .class files. Which is great. But, not all files
> that need to be recompiled are always recompiled. For instance,
> if we change
> a method signature of a base class, all subclasses are not automatically
> recompiled, creating an inconsistency.
>
> Is there are solution for this problem (other than deleting the
> entire class
> tree)?
>
> -arun
>


Mime
View raw message