-
Notifications
You must be signed in to change notification settings - Fork 99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow greedy property evaluation #284
Conversation
@rhaschke I discovered the possible terrible consequences of lazy evaluation today, and due to that, broke code. |
No, it is more general than that. It just enforces immediate evaluation of the value expression of the to-be-defined property.
Could you become more precise? What was so terrible about lazy evaluation? |
then lazy=false seems appropriate
I suppose because I am used to C++ compilation helping me find my mistakes, and when there are some mistakes in property definition that do not get evaluated (lazy evaluation), xacro expansion and error checkings do not show up those mistakes. I suppose the problem is not in lazy evaluation but on the person who needs to account for its consequences before hand. |
This can be used, to redefine a property from its previous value, e.g. for normalization: ```xml <xacro:property name="prop" value="${prop.lower()}" greedy="true"/> ``` Without this option, due to lazy evaluation, it would be an attempt to recursively evaluate the property.
... if lazy evaluation results in circular resolution
Re-trigger CI |
Looks like a straightforward enough addition.
👍 to this. As evidenced by the comments posted by @guihomework, the term
|
This can be used, to redefine a property from its previous value, e.g. for normalization:
Without this option, due to lazy evaluation, it would be an attempt to recursively evaluate the property.
@gavanderhoorn + @guihomework: Please comment, particularly about the attribute name. Alternatively, we could use
lazy="false"
.UPDATE: I decided for the attribute
lazy_eval="false"
now.TODO