"Unlike .local variables, the order and placement of the declarations matters. To a certain degree, Parrot’s default argument passing is positional. That is, it works like you expect; the first PMC parameter in the list at the point of the call is the first one you get in the parameter list.
Interestingly, order matters only within a register set. These two parameter lists are equivalent:
.param int count
.param pmc item_to_repeat
...
.param pmc item_to_repeat
.param int count"
-------------------------
I find the above a little confusing, if the default argument passing is positional, then surely the lists are not equivalent. Maybe I miss the contextual meaning of "order matters only within a register set". »