[PD-dev] pow~ in Cyclone [was: Re: stripping down Pd-extended's default libs]

Hans-Christoph Steiner hans at eds.org
Wed Feb 18 18:59:45 CET 2009

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  
	- 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  

- namespace prefixes stay as part of classname and do not load basename
	- i.e. [cyclone/pow~] does not claim the name [pow~]


> Matt
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at iem.at
> http://lists.puredata.info/listinfo/pd-dev


Mistrust authority - promote decentralization.  - the hacker ethic

More information about the Pd-dev mailing list