Hallo,
I don't like <textarea> so I'll just post only here for now.
SourceForge.net hat gesagt: // SourceForge.net wrote:
Comment By: Matteo Sisti Sette (sistisette) Date: 2007-02-11 15:24
Message: Logged In: YES user_id=1709568 Originator: NO
But now we have a problem, if a message tries to commit suicide and thus deletes the node that according to Pd's language rules and logic needs to be evaluated again, after the "depth first tree" has come to an end!
When the moments come to evaluate the "second branch" of a node which has been deleted as a result of the execution of its first branch, the object no more exists, so the most logical action to take (seems to me) would be just not to execute the pending "future branches". The tree does finish. Another acceptable option would be to output an error message that says that the message tree can't be completed. Indeed that would be the same thing, with or without an error message in the output.
The part you quote from the manual says that the message tree has to come to an end. It does not say that nothing must change until it comes to an end, as far as i see. You are adding that part. You may be correct, but that's not a consequence of the depth first message passing. Neither the self-clearing patch nor my "find f,cut" example try to generate a tree that does not end.
Not to mention that in theese examples the branch that ends up with the deletion of the message is the last branch, so the evaluation of the next branch would be just to detect that it didn't exist anyway.
To be able to do this Pd has to save the current branching node somehow to come back there later, when the first branch has finished.
Yeah. It is the "somehow" that has been chosen that does not take into account the possibility of dinamically deleting objects.
That's not true at all: You can delete objects just fine in almost every way possible, you just aren't allowed to initiate this deletion from the object to be deleted itself without [delay], because this would create a loop and a "chicken-and-egg" problem because the message that initiates the suicide happens at the same logical time as the suicide. This is a tree that does not end because it is cyclic.
Ciao