I've tested loading externals and it just doesn't create and complain

Are you sure? Turn on log level 4. Here's what I get when I try to load a single precision [markex/randomF] in my double precision built:

refusing to load 32bit-float object 'randomF' into 64bit-float Pd
maximum object loading depth 1000 reached
 markex/randomF
Note that actual warning is only visible with log level 3 and above.


but trying to load cyclone with [declare -lib cyclone] crashes Pd!
Please run Pd in a debugger and see where it crashes.

I also get a crash when trying to load [iemguts/receivecanvas]. In this specific case, the reason is that this object registers a proxy class without a name (passing NULL instead of a symbol for the class name), so Pd segfaults when it tries to print the warning. Pd should do a NULL check and probably omit the warning for unnamed classes.

Christof


On 26.02.2020 14:12, Alexandre Torres Porres wrote:


Em qua., 26 de fev. de 2020 às 10:09, Dan Wilcox <danomatika@gmail.com> escreveu:
Forgive me if this has been gone over, but what's the behavior if a single-precision Pd tries to load a double-precision external or vice versa? Does it fail to load or simply crash?

If it crashes, maybe there needs to be some mechanism to query the compiled precision of the external, ie. some sort of function pointer or define, etc. If it's not there, then assume single-precision and act accordingly. It would be nice to have useful error print concerning this. I'm just musing here. :)

I've tested loading externals and it just doesn't create and complain, but trying to load cyclone with [declare -lib cyclone] crashes Pd! 

_______________________________________________
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev