[PD-dev] Double precision externals extensions.

Lucas Cordiviola lucarda27 at hotmail.com
Tue Dec 10 22:59:40 CET 2019


@christof

How do I build Pd with debug symbols?

How do I install gdb in msys2?

How do I use it?

or can I send you the .dll lib and test patch do you get the backtrace?


--

Mensaje telepatico asistido por maquinas.

On 12/10/19 6:48 PM, Christof Ressi wrote:
>>> # pkgs including both single- and double-precision externals
>>> a single external binary (say: "foo.dll") can hold both single-precision
>>> and double-precision variants of the [foo] object.
> I'm also interested in how this works. The following solution popped up in my head: compile the object twice, one time with -DPD_FLOATSIZE=32 and another time with -DPD_FLOATSIZE=64, with different setup functions based on -DPD_FLOATSIZE, then link it with a third file which exports the "real" setup function (which calls the other two private setup functions).
>
> Is there an easier way?
>
> If not, then a new extension could be handy, so people can throw both versions into the same folder.
>
> Christof
>
>> Gesendet: Dienstag, 10. Dezember 2019 um 21:45 Uhr
>> Von: "Lucas Cordiviola" <lucarda27 at hotmail.com>
>> An: "pd-dev at lists.iem.at" <pd-dev at lists.iem.at>
>> Betreff: Re: [PD-dev] Double precision externals extensions.
>>
>> On 12/10/2019 4:54 PM, IOhannes m zmölnig wrote:
>>> # avoiding crashes
>>> an external that has been compiled with single-precision will not
>>> register objectclasses in a double-precision Pd - so the doubl-precision
>>> Pd will not know about those new objects and not crash while using them.
>>> same goes for the other way round.
>> I see with normal externals itt refuses to load and thats fine.
>>
>> But I'm creating a single binary external with a collection of authors
>> [zexy] [cyclone] [ggee] [pddplink] ...
>>
>> I create a setup for the lib and is working *OK* in Pd-w64-32 but it
>> crashed the double precision.
>>
>> this is my wrapper setup:
>>
>> ~~~~~~~~~~~~~~~~~~
>>
>> #include "m_pd.h"
>>
>> #include <stdio.h>
>> #include <stdarg.h>
>>
>>
>> #ifdef __WIN32__
>> # define vsnprintf _vsnprintf
>> #endif
>>
>>
>>
>> typedef struct liblucdep {
>>     t_object t_ob;
>> } t_liblucdep;
>>
>> t_class *liblucdep_class=NULL;
>>
>>
>>
>>
>> static void *liblucdep_new(void)
>> {
>>     t_liblucdep *x = (t_liblucdep *)pd_new(liblucdep_class);
>>     return (x);
>> }
>>
>> void liblucdep_setup(void)
>> {
>>
>>     post("*******************");
>>     post("liblucdep loaded.");
>>     post("*******************");
>>
>>     liblucdep_class = class_new(gensym("liblucdep"), liblucdep_new, 0,
>> sizeof(t_liblucdep), 0, 0);
>>
>>
>>     /* ************************************** */
>>     coll_setup();
>>     comment_setup();
>>     freeverb_tilde_setup();
>>     glue_setup();
>>     helplink_setup();
>>     image_setup();
>>     pddplink_setup();
>>     pink_tilde_setup();
>>     reson_tilde_setup();
>>     tabminmax_setup();
>>     time_setup();
>>     z_tilde_setup();
>> }
>>
>>
>> ~~~~~~~~~~~~~~~~~
>>
>>
>>> # pkgs including both single- and double-precision externals
>>> a single external binary (say: "foo.dll") can hold both single-precision
>>> and double-precision variants of the [foo] object.
>>
>> How is that?
>>
>> As I am willing to contribute to the w32/64-double Deken.
>>
>>
>> :)
>>
>> Mensaje telepatico asistido por maquinas.
>>
>>
>> _______________________________________________
>> Pd-dev mailing list
>> Pd-dev at lists.iem.at
>> https://lists.puredata.info/listinfo/pd-dev
>>
>
>
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at lists.iem.at
> https://lists.puredata.info/listinfo/pd-dev


More information about the Pd-dev mailing list