Jose Alberto Fernandez wrote:
From: Peter Reilly [mailto:[EMAIL PROTECTED]
Jose Alberto Fernandez wrote:
As per other approaches to local properties, unless we go
and define a
real semantic for them (like any other well design
programming language
out there) I see they creating more problems than solutions, in
particular in our BC constrained world.
I do not think that the problems are too bad (but I would say that!).
I would like to have the thread-local property
implementation, however there was a lot of discussions about syntax.
How about haing the two, and see which one works better? As I said
before <let/> is a very small change to <macrodef/> with no other
dependencies.
As the main use case for local properties is <macrodef> we
could just implement them for macrodefs, and if necessary
extend them later to be the free style properties.
So the syntax would be:
<macrodef name="show_length">
<attribute name="filename">
<local-property name="local-prop"/>
<sequential>
<length file="@{filename}" property="${local-prop}"/>
<echo>The length of file '@{filename}' is ${local-prop}</echo>
</sequential>
</macrodef>
In your example above, are you sure you mean 'property="${local-prop}"'
and not 'property="local-prop"'?
Yikes!, you are correct.
(note to self, always test pro-offered examples!)
We could write this with let as:
<macrodef name="show_length">
<attribute name="filename">
<let name="local-prop"/>
<sequential>
<length file="@{filename}" property="@{local-prop}"/>
<echo>The length of file '@{filename}' is [EMAIL PROTECTED]</echo>
</sequential>
</macrodef>
And in this case the scope of "@{local-prop}" is well defined as
the body of "show-length".
We could implement this as a trial in ant cvs and pull it if
there are
too many issues.
Peter
Wouldn't mind having the two, and see what works best. :-)
Sounds good, but is it possible to get a different name than "let" ?
Peter
Jose Alberto
---------------------------------------------------------------------
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]