Yeah, good point. The "connection order" statement should really be a
footnote. [trigger] should really be introduced before talking about
the connection order.
.hc
On Aug 10, 2009, at 4:44 PM, Jonathan Wilkes wrote:
I think there is a problem in section 2.3.2 of the Pd Manual:
"It is indeterminate which of "B" or "C" is done first; this depends
on what order you made the connections in (in Max, it's automatically
sorted right to left)."First of all, the part before the semicolon contradicts the part that follows the semicolon.
Second of all, the next paragraph talks about infinite loops;
[trigger] isn't addressed until the following section, momentarily making it
seem as if "the order you made the connections in" is an feature of the language that is somehow analogous to Max's right-to-left sorting.This may seem nitpicky, but I think the analogous Pd feature in this case is Pd's reliance on [trigger] as the main way to specify execution order. I think [trigger] should be mentioned before the the quoted material above (or at least immediately
following) so that the comparison to Max is as follows:Max: When multiple connections are made from an object, they are
executed in right-to-left order. This makes it easy to know the execution
order simply by looking at a patch, but can make it tricky to reorganize the patch (unless [trigger] is used explicitly).Pd: When the execution order needs to be specified, the user
explicitly uses a [trigger] object. This means you can look at a patch and tell
the execution order, _and_ (aside from [inlet] and [outlet]) objects
can be reorganized without the risk of changing the execution order. Finally, if there are multiple connections from an object and
[trigger] is not used, it can be assumed that either execution order shouldn't matter in that instance, or that the person making the patch has
forgotten to specify it (in which case it is an error and [trigger] should be utilized).The fact that Pd executes in the order the connections were made only makes sense in light of the explicit use of [trigger]. Even if Pd
rolled some virtual dice to determine execution order when multiple connections are coming from a single object, most of our patches would work the same because we all use [trigger] explicitly in Pd, right?I know the Pd manual doesn't make assumption about how someone
_should_ use Pd, but I think this is an exception, because anyone who is
relying on the order they make connections is going to have a hard time
getting anywhere. Plus, it seems like an unusual number of people have said (or written) that Pd "relies" on the order in which you make
connections for the execution order, which isn't true.Does this make sense?
-Jonathan
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
News is what people want to keep hidden and everything else is
publicity. - Bill Moyers