[PD-dev] Double precision externals extensions.

Lucas Cordiviola lucarda27 at hotmail.com
Tue Dec 10 23:50:27 CET 2019


Ok. So why do I get a segfault on linux and a crash on windows

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void pddplink_setup(void)

{

t_symbol *dirsym;

pddplink_class = class_new(gensym("pddplink"),

(t_newmethod)pddplink_new,

(t_method)pddplink_free,

sizeof(t_pddplink),

CLASS_NOINLET | CLASS_PATCHABLE,

A_GIMME, 0);

class_addanything(pddplink_class, pddplink_anything);

class_setwidget(pddplink_class, &pddplink_widgetbehavior);

pddplinkbox_class = class_new(gensym("pddplink"), 0,

(t_method)pddplink_free,

sizeof(t_pddplink), 0, A_GIMME, 0);

class_addbang(pddplinkbox_class, pddplink_bang);

class_addanything(pddplinkbox_class, pddplink_anything);

class_addmethod(pddplinkbox_class, (t_method)pddplink_click,

gensym("click"),

A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, 0);

dirsym = pddplink_class->c_externdir; /* FIXME */

sys_vgui("source {%s/pddplink.tcl}\n", dirsym->s_name);

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



?

Mensaje telepatico asistido por maquinas.

On 12/10/19 7:45 PM, Christof Ressi wrote:
> > Is this: "A_FLOAT" forbidden?
> I'm not sure what you mean exactly, but A_FLOAT is an atom type, so 
> it's 100% unrelated to single/double precision.
> *Gesendet:* Dienstag, 10. Dezember 2019 um 23:37 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.
>
> Is this: "A_FLOAT" forbidden?
>
> ~~~~~
>
> void pddplink_setup(void)
>
> {
>
> t_symbol *dirsym;
>
> pddplink_class = class_new(gensym("pddplink"),
>
> (t_newmethod)pddplink_new,
>
> (t_method)pddplink_free,
>
> sizeof(t_pddplink),
>
> CLASS_NOINLET | CLASS_PATCHABLE,
>
> A_GIMME, 0);
>
> class_addanything(pddplink_class, pddplink_anything);
>
> class_setwidget(pddplink_class, &pddplink_widgetbehavior);
>
> pddplinkbox_class = class_new(gensym("pddplink"), 0,
>
> (t_method)pddplink_free,
>
> sizeof(t_pddplink), 0, A_GIMME, 0);
>
> class_addbang(pddplinkbox_class, pddplink_bang);
>
> class_addanything(pddplinkbox_class, pddplink_anything);
>
> class_addmethod(pddplinkbox_class, (t_method)pddplink_click,
>
> gensym("click"),
>
> A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, 0);
>
> dirsym = pddplink_class->c_externdir; /* FIXME */
>
> sys_vgui("source {%s/pddplink.tcl}\n", dirsym->s_name);
>
> }
>
> ~~~~~
>
> Mensaje telepatico asistido por maquinas.
> On 12/10/19 7:30 PM, Lucas Cordiviola wrote:
>
>     I get the segfault on linux (it also crashes Pd-double)
>
>     ~~~~~~~~~~~
>
>     Program received signal SIGSEGV, Segmentation fault.
>     0x00007ffff6170e93 in pddplink_setup ()
>        from
>     /home/lucarda/Desktop/luclibdep/00-lucarda-external-dep/out64single/lucdep/liblucdep.so
>
>     ~~~~~~~~~~~~~~~
>
>
>     :)
>
>
>     Mensaje telepatico asistido por maquinas.
>
>     On 12/10/19 7:06 PM, IOhannes m zmölnig wrote:
>
>         On 12/10/19 10:48 PM, Christof Ressi wrote:
>
>             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).
>
>         that's about the idea.
>
>         gdsa r
>         IOhannes
>
>
>         _______________________________________________
>         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
>
> _______________________________________________
> 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