Hi Alexandre and All,
I am not sure if the "using store '=' in functions with multiple arguments" bug has been reported or not. However, in Expr 0.5 which was included in Pd 0.47 an expression which would use the store operator '=" in a function with more than one argument such as the following
expr atan2($f1, x = $f2)
expr if ($f1, x = 1, 0)
would pass the creation process but upon execution would throw a "expr: FUNC_EVAL(766): bad left type 0" error
This is now fixed.
On a related note, if order to make the selective execution of the if() arguments to work, I had to make a few structural changes in parsing and execution of expressions. If you are using the new test version that Miller has put out, please let me know if you see any bugs that I may have introduced.
cheers, Shahrokh
On Tue, Jul 18, 2017 at 11:59 AM, Alexandre Torres Porres porres@gmail.com wrote:
Howdy Shahrokh, Miller and pd-list, the release notes of 0.48 mention this:
"The expr family (expr, expr~, fexpr~) got an update from Shahrokh Yadegari. I'm not sure when this first came about, but expr now can access "variable" objects as variables inside expressions. Expressions using "if" skip evaluating the argument that isn't used."
well, the expr family can access variable objects since version 0.4 (which I do not know when got into Pd). As from version 0.5 (which made into Pd by 0.47, I think), you could also give it a value by using the new "=" syntax. Like: [expr x = 3] changes the value of a [v x] object.
Now we have version 0.55 up, and I do not know what's new about variables, maybe nothing? So we could change the notes to what's asctually new. Here's a list Shahrokh sent me though, since I was testing and reporting a few bugs.
2017-07-14 21:08 GMT-03:00 Shahrokh Yadegari sdy@ucsd.edu:
- Expr Version 0.55 - The arrays now redraw after a store into one of their members - The "if()" function is reworked to only evaluate either the
left or the right arg depending on the truth value of the condition.
However, if the condition is a vector, both the left and the
right are evaluated regardless.
- The maximum number of inlet and outlets (MAX_VARS) is now set
at 100
- The bug of using store "=" in functions with multiple
arguments, which caused an error during execution, is fixed.
So, Shahrokh, I get all of this but the "bug of using store "=" in functions with multiple arguments", I don't think I reported that one, would you care to elaborate on it?
Miller, we seem to still have an issue creating [expr] with atanh() ,asinh() and acosh() on windows - such as in [expr atanh($f1)]. Are you working on it for the final release of Pd 0.48?
Thanks