[Clam-devel] COMMIT 11822 - Re: Faust support - plugins dynamic reloading

Natanael Olaiz nolaiz at gmail.com
Sun Aug 10 05:20:10 PDT 2008

El 08/10/2008 08:50 AM, David García Garzón escribió:
> What do you mean by 'static automatic loading'? Why it doesn't work?
> Plugins as the libraries are based on static objects that get registered on 
> load automaticaly (Registrators). I see hard not to rely on that system. If 
> you are talking about the loader that loads the libraries we could have some 
> flexibility.
Yes, I'm talking about dllLoader. With that we have no control of when 
is loaded, and the 'currentLibrary' is set to the first plugin a lot of 
registrators before the itself plugin ones.

>  Of course, i would prefer do all that as is done now. It depends 
> on the concrete problem you are facing, so, i would like you to give me more 
> details.
> David.
> On Diumenge 10 Agost 2008, Natanael Olaiz wrote:
>> David: could I change the 'static' automatic loading of clam plugins to
>> one like the faust-ladspa? The initialization of the static keeps opened
>> the libraries on background a lot of time, making that your idea doesn't
>> work.... Loading specifically on main.cxx (NE) seems to be working...
>> Regards,
>> Natanael.
>> El 08/05/2008 02:45 PM, David García Garzón escribió:
>>> El Tuesday 05 August 2008 09:31:44 Natanael Olaiz va escriure:
>>>> El 08/04/2008 07:12 AM, David García Garzón escribió:
>>>>> [...]
>>>>> My suggestion:
>>>>> * First move all dl_ calls to the base RunTimeLibraryLoader primitives
>>>>> (see LoadLibraryError and FullyLoadLibrary) so that we can encapsulate
>>>>> the platform dependant bits.
>>>>> * Add in the same class some static structure that holds the list of
>>>>> libraries.
>>>>> * Add also a static state that holds the currently loading library and
>>>>> set it and unset it when appropiate.
>>>>> * When registering a factory entry check that state and if set,
>>>>> populate the structure or just add some metadata.
>>>>> * The factory registrator destructor should remove the processing type
>>>>> from the factory (this should be TDD) in order to allow unloading the
>>>>> library.
>>>>> I am not sure whether this should work. But, anyway, be carefull,
>>>>> remember that we are in release!!! The plugin system cannot be broken!
>>>> David: you was totally right. Trying to do just a "simple regenerating
>>>> of all plugins", I understand your suggestions reasons.
>>>> Do you think that is safer to keep that out of the release? For now I
>>>> prefer to release as is (and maybe the same for the ladspa compiled
>>>> networks), like a workaround... Is not totally safe, but the faust
>>>> reloader works for the user, and I could continue this after the release
>>>> and focus my work on subnetworks.
>>>> BTW, I apologize for break up the loading of clam plugins on the SVN for
>>>> a few hours. :-/
>>> Keep developing, but just be extra careful, i will send a pencils up for
>>> the release before starting generating the packages. just, if you do a
>>> commit you are not sure that is going to be valid, think twice and warn
>>> us.
>>> David.

More information about the clam-devel mailing list