Hi list,     Let's say I make a patch that uses the zexy and hcs libraries.  I 
want my patch to be portable to Pd-extended, Pd-l2ork, and whatever hand-rolled 
Pd-vanilla+zexy+hcs installations are sitting out there on users machines.

If that is my goal, then I am going to use libdir/objectname syntax for all my 
zexy and hcs objects in my patch.  I am going to do this because if a user ever 
reports that there is a nameclash, it is very likely to be due to a bug 
somewhere, and that bug is very likely to be fixable.

In fact, I will go so far as to say there is no other way to make a portable 
patch that uses externals on the versions of Pd I described above...
* both [import] and [declare] will happen _after_ the the default libs of 
Pd-extended/L2ork are loaded, so I can't use unprefixed object names with 
impunity (same with .pdrc).  And even if it does work, it's not future-proof, 
as someone may add an object that aliases one I'm using in my patch.
* command lines flags don't ship with my patch, and they get parsed _after_ the 
user or default prefs so again, I'm just hoping to get lucky.

* even with Pd-extended's current "load-nothing" dogma, all possible object 
names are stored globally (in what looks like both prefixed and unprefixed 
forms, like "foo/bar" and "bar").  So if my patch is an abstraction and I don't 
use libdir/objectname syntax for the object names within it, all I can do is 
hope the user hasn't already loaded something that aliases one of my objects.  
(And again, not future-proof)


I see only two possibilities, then: either the community changes the core 
functionality so that there is a local object-name table for each 
canvas-environment*, or libdir/objectname should be the canonical way to make 
portable patches.  Since libdir/objectname exists and "canvas-environment-local 
namespaces" don't, I suggest libdir/objectname as the only workable approach.


However, I'm only about 3/4 of the way through reading and comprehending the 
library-loading code in Pd.  So if anyone has thoughts or suggestions I'm all 
ears.


-Jonathan

* canvas-environment = all canvases which share the same $0-- basically, a 
canvas and its [pd] subpatches (and graphs).
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
http://lists.puredata.info/listinfo/pd-list

Reply via email to