ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Donald <pe...@apache.org>
Subject Re: 1.1 compat ( was Re: Death of a mutant ...
Date Fri, 12 Jul 2002 13:56:16 GMT
At 08:00 AM 7/12/2002 -0500, you wrote:
>>This is because Ant1.x delays evaluation of some constructs until they 
>>are referenced. Where as in Ant2 the idea was to unify all evaluation of 
>>"build model" to when execution occurs. So in Ant2, the <path/> data type 
>>would be evaluated imediately before any target was executed and thus 
>>would generate an exception regardless of target.
>
>That seems like a very undesirable change.  Referencing datatypes is 
>primarily used to minimize boilerplate constructs and having a reference 
>to a datatype mean something different than the same content expanded 
>inline seems very undesirable.  That would mean resorting to entity 
>expansion to use the same boilerplate constructs in different contexts.

I think you misunderstood. Currently, when <path/> appears in build file 
there may not be a physical object instantiated ever. Instead a tree of 
UnknownElements (or is it RuntimeElements, I can never remember) may be 
created. This may only be resolved to a real object the first time the 
object is referenced. ie an instance of o.a.t.a.types.Path is only created 
when the object is referenced. If it is never referenced then it is never 
instantiated.

Any clearer?

>>Other build systems GNUMake (and CONS from what I hear) explicitly allow 
>>user to declare whether filesets are re-evaluated every reference or just 
>>once etc. I would love for Ant to get to the same level of clarity.
>
>I would think the easiest way would be to control the timing of the 
>fileset evaluation by its placement in targets, but allow the result set 
>from a previous evaluation to be used.  Maybe something like:

Quite possible - other people have favoured the "live" interpretation like 
make defaults to. Whatever the case it is incompatible with the way ant1.x 
works. Changing the way ant1.x works now would break oodles of build files 
and is not really an option.

Cheers,

Peter Donald
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Faced with the choice between changing one's mind,
and proving that there is no need to do so - almost
everyone gets busy on the proof."
              - John Kenneth Galbraith
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


--
To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


Mime
View raw message