On Sun, 9 Aug 2009, Jonathan Wilkes wrote:
--- On Sun, 8/9/09, Hans-Christoph Steiner hans@at.or.at wrote:
Check the Pd Definitions wiki on http://puredata.info/dev for some discussion on this stuff. And please add anything there that you think should be there.
On the Pd Definitions wiki, they are referred to as elements, and I've already changed the reference patches to reflect this.
I wouldn't quite advocate using the PdDefinitions as they are now. Much of the way people talk about pd is ambiguous, and that includes Miller too. The Pd Manual itself has a fair amount of vague talk, but then, the PdDefinitions page handpicks quotes in it without regard to whether "the definition of float" is about float-values, float-atoms, floatatom-objects, the floatatom class, the strings recognised as floats, or the strings that floats are outputted as; and likewise for several other definitions lifted from the manual.
"atoms are either numbers or symbols" -> that's only when you look at what you can write in a messagebox that can end up as-is in a message. This ignore comma atoms, semicolon atoms, dollar atoms ($1), dollsym atoms ($1-blah), and pointer atoms (which can't be produced by the parser).
"There are two atom boxes, floatatom and symbolatom" -> this is irrelevant to the definition of an atom, of a float, or of a symbol, in that you could make patches without ever using any atomboxes and you could still see all the characteristics of float values and symbol values shine through.
"Anything that is not a valid number is considered a symbol." -> this is only in the context of parsing, and only once the commas and semicolons are dealt with.
"The selector is a symbol, which appears in the patch as a non-numeric string with no white space, semicolons, or commas." -> the manual doesn't take into account any weird thing you can do in Pd, even with pure pd, and even without hand-editing any .pd files. E.g. this patch:
#N canvas 0 0 450 300 10; #X obj 12 31 makefilename %d; #X msg 12 13 123; #X msg 12 67; #X msg 12 49 set $1 , bang; #X obj 12 85 f; #X connect 0 0 3 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 2 0;
ends up saying:
no method for '123'
but "no method for" errors always state the selector, and here, 123 is a selector, which is a symbol, but is printed in a way that makes it look like a float.
Because of the way they are laid out, I don't think there is any ambiguity between first element and selector in the help patches (I don't think "selector" is used in any of them, but I'll check and make sure).
Selector ought to be used to talk about all those so-called "meta-messages", not only because the Pd Manual does, but also because the manuals of several other programming languages call that same thing by the same name. It's not like selectors are a weird thing from outerspace that got stuck into Pd for no reason (even though some facts about Pd's selectors are a bit weird).
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec