On Feb 17, 2009, at 11:17 AM, Matt Barber wrote:
Cyclone's overriding is pretty important for importing Max files. Without it I wouldn't have been able to port the RTC library that fast. Of course porting RTC involved replacing many objects with their Pd equivalents (and being a pd-vanilla fanboy, I mostly used builtins and abstractions for that). Other users may be fine with keeping Cyclone loaded and run the Max originals - freedom of choice is fine here.
If freedom of choice is a goal, then maybe the behavior should be user-configurable with a flag, allowing one to keep builtin names and use aliases for any conflicting lib classes, OR use the lib's class names and make aliases for builtins. Either could be the default as long as it's documented.
You can already do this: just load the libraries you want in the order you want, and save your preferences. Then your patches will likely break on other people's machines.
The aliasing thing could work, you could try coding it up and testing it. That's really the next step. I am going to dig up my old proposals and clean it up for how I intend on coding an attempt at a solution to this problem. Once we have code to test, the issues and solutions become much clearer.
Here's how I think this all should work:
- classes of any implementation language are treated the same (i.e. .pd_linux, .pd, .pdlua, etc). - single library format for all implementation methods - possibility for shared code for objectclasses in library - check for objectclasses in paths in same order for any implementation method - one objectclass per file - help patch in same folder as objectclass file
- search "." first, then canvas-local paths, then global paths
- search using registered loaders (i.e. implementation langauges) one dir at a time: - first search "." for .pd .pd_linux .pdlua etc. - then search first dir in canvas-local path for .pd .pd_linux .pdlua etc. - then search second dir in canvas-local path for .pd .pd_linux .pdlua etc. - ... - then search first dir in global path for .pd .pd_linux .pdlua etc. - then search second dir in global path for .pd .pd_linux .pdlua etc. - ...
- the loaded class names should follow the above rules of loading classes
- namespace prefixes stay as part of classname and do not load basename - i.e. [cyclone/pow~] does not claim the name [pow~]
.hc
Matt
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
----------------------------------------------------------------------------
Mistrust authority - promote decentralization. - the hacker ethic