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]



Reply via email to