[PD-dev] name collisions

Adam Lindsay atl at comp.lancs.ac.uk
Mon Jan 20 15:13:00 CET 2003

Hi Tom.

I asked a similar question in this thread a while ago:

The key answer I got was from Krzysztof Czaja:

>It seems like in each system Pd loads externals differently.
>Windows .dll does not export external symbols, .pd_linux does
>(with the flag RTLD_GLOBAL) -- but dlopen kindly resolves any name
>clashes -- and now you tell that .pd_darwin is so fragile...  You
>are right, something needs to be done to unify loader's behaviour.

One of the most significant changes in the pd_devel_0.36 branch of MacOSX
is that the behaviour goes from a duplicate symbol causing a crash to a
duplicate symbol being ignored. 

Tom Schouten said this at Sat, 18 Jan 2003 13:08:41 +0100:

>class1 = class_new(gensym("object"), ...
>class2 = class_new(gensym("object"), ...
>which class gets instantiated if you create [object] in pd?
>first, second or undefined?

Practically, the behaviour on Mac is undefined (official version) or
first (modified s_loader with NSLINKMODULE_OPTION_PRIVATE).

 Adam T. Lindsay                      atl at comp.lancs.ac.uk
 Computing Dept, Lancaster University   +44(0)1524/594.537
 Lancaster, LA1 4YR, UK             Fax:+44(0)1524/593.608

More information about the Pd-dev mailing list