On Sep 27, 2006, at 2:32 AM, Mathieu Bouchard wrote:
On Tue, 26 Sep 2006, Hans-Christoph Steiner wrote:
I should add, the next key step is to remove as many classes as possible from the root namespace (i.e. compiled into Pd).
I should add, that it should be possible to achieve proper namespacing without moving anything out of the root namespace.
BTW, here's an idea that I consider interesting regarding namespaces. Currently, the objectmaker of pd holds all classnames of pd and maps them to creators using its methodtable. Now what if "the" objectmaker was just "an" objectmaker among others? Think: namespace = objectmaker.
For example, each patch gets its own objectmaker, and each objectmaker has a class_addanything which causes a fallback of any unknown classname to a parent namespace. Eventually, asking for creation of a [+] box crawls up a chain that leads back to the root namespace, if none of the objectmakers in the chain defines a + method.
That way, we avoid coding extra namespace-handling features and avoid creating a bunch of symbols with slashes in them and we reuse the features already in pd.
This idea should raise a few questions and a few eyebrows but I believe that it's an idea worth considering and which could pay off.
Sounds like an interesting idea. But how does it map to the filesystem?
For many, it would be trivial to do, just compile them as individual objects in a libdir. I've already done this for x_list.c, x_net.c, and a couple others. Things like x_arithmatic.c will be trickier, but this does not have to happen at once. It can happen incrementally.
I can't think of why x_arithmetic.c would be trickier, maybe you can explain. What I believe will be really trickier are things that are even more elementary to the pd language: [pd] [inlet] [outlet] [objectmaker] [canvasmaker] [struct] [loadbang].
Its trickier because of the build dependencies. As for [pd] [inlet] [outlet] [objectmaker] [canvasmaker] [struct] [loadbang], somethings need to be in the core of the language. Something like [import] would be needed too. Think reserved words.
.hc