and as such it seems logical that a msg should retain its last known
state,
no. that's totally unrelated to being consistent.
so that when receiving a bang it would output its last stored values.
why? i think the current behaviour is very consistent though probably less convenient than some would like to have it.
...how is [$1] retains value and [msg] doesn't (except it does anything other than $n) consistent?
As you said, it's consistent in terms of having been Pd's dollarsign behavior "forever". Outside of that specific type of consistency across time--
i.e.,
backwards compatibility-- I see no valid argument that either way is
"more"
consistent. Both approaches are self-consistent. They (presumably) work exactly the same regardless of the context in which they get used in a particular patch.
Nevertheless, I think backwards compatibility is important. Here, the current "argument out of range" error gives helpful clues to patching mistakes. With Ivica's system if you set that out-of-range argument a single time then future mistakes that result in too few args to the message box would go
unnoticed.
(They'd get padded with the old value.)
Then, there are those situations where properly formed message is passed through the msg object with no reported errors but is still malformed according to the receiving object below msg. An error is thrown by the receiving object but one has no way of recreating and studying the offending message...
Another thought is that just like [$1] retains last data value during runtime, shouldn't [msg] too? After all [msg] retains the rest of the list inside it not only during runtime but also during save, so why would not it retain its last data during runtime?
Ico
-Jonathan
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list