Hallo, Hans-Christoph Steiner hat gesagt: // Hans-Christoph Steiner wrote:
[declare -std*] modifies the global namespace [declare] with -lib and -path modify the canvas-local namespace.
Not according to the help-file for declare, where the only difference between the options with "std" and those without is how the arguments are evaluated: "relative to the patch" for the naked, "relative to Pd" for the "std"-decorated versions of the options. There's nothing about scope in the help file (and I'm currently not taking into account how declare works in reality, as that is deliberatly restricted in 0.41)
Tcl has namespaces that can be used across procedure/class, provided you import them into procedure/class. I suppose Pd could have that too, so you could set dependencies across a whole project. But I don't see this as being especially useful in Pd, and it would add complexity.
If I write an objectclass (aka abstraction), I only want to have to think about what libs that objectclass needs. I don't want to think about how those libs related to other files in the project at that point. Having the local namespace per objectclass/abstraction allows for this.
Agreed. But it seems that's not what [declare] does ATM or was intended to do when Miller wrote it, while [import] was designed to do it, IIR. Lets not confuse the two.
Ciao