We have added some improved statistics to the virtual machine interpreter related to work stealing and region usage, and a command "stats" to view the statistics without exiting the interpreter, and "stats clear" to view and zero-out the statistics. We will shortly be posting another blog entry about some of the more interesting results of these new statistics.
Additional updates in this release:
- The conditional expression "(if X then Y)" is now equivalent to "(if X then Y else null)"
- We now use the "<|=" operator, if available, when building up an aggregate with an iterator inside, such as "[for I in 1..10 => I*5]". Before we used the "var_indexing" operator instead if both "<|=" and "var_indexing" were available, using the value of "I" as the index. This didn't make much difference when building up a vector, but was somewhat limiting in other cases.
- We now allow "reverse" when defining an aggregate with an iterator, such as "[for I in 1..10 reverse => I * 5]," allowing the creation of a reverse-order vector, for example.
- We have fixed a bug which meant that certain annotations were ignored if they immediately preceded or followed a call on an operation.