On Wed, 10 Aug 2005, Miller Puckette wrote:
Indeed, "C D B F G E A" (or one of the other 7) is the order loadbangs go off in... so something in my explanation was confusing, but you and I do agree on the meaning of "depth first"...
Well, ... no.
On Wed, Aug 10, 2005 at 06:13:13PM -0400, Mathieu Bouchard wrote:
On Tue, 9 Aug 2005, Miller Puckette wrote:
Loadbangs are "depth first", i.e., loadbangs in abstractions (and subpatches in general) go off before loadbangs in the parent. This is so that abstactions can initialize themselves before receiving messages coming from other loadbangs.
That's not the usual definition of depth-first. You mean post-order.
That post-order stuff is what Pd requires.
Pd also does it depth-first, but that's not a requirement, it's an implementation detail. Pd could use breadth-first or any hybrid of depth-first and breadth-first, and even picking randomly among all $0's that are ready for loadbanging (!!!), and it shouldn't make a difference, as long as the post-order requirement is satisfied.
It's like when running the "make" command. it's solving dependencies depth-first usually, but it doesn't have to, and in fact, if you use the -j option (multitasking), it will usually solve dependencies in a different order, due to tasks being of nonequal durations.
____________________________________________________________________ Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju Freelance Digital Arts Engineer, Montréal QC Canada