Dear all, i have published binaries on deken for many of my externals covering a lot of platforms and variants (i386/x86_64/arm6/arm7/arm64 on darwin/windows/linux, single and double precision floats). Specifically, binaries for Windows and Pd double precision have been newly added. I am not able to test the externals on all platforms. If you like, please give them a try and let me know should there be crashes or other problems. best, Thomas
> Am 03.03.2020 um 14:55 schrieb Thomas Grill <[email protected]>: > > Hi all, > thanks to IOhannes for debugging. > I have pushed fixes to https://github.com/grrrr/flext which should make flext > (and flext-based objects) fully compatible with 64-bit DSP, that is, > flext-based project should compile and run (or at least, not crash). > > My question is now how to separate 32-bit DSP from 64-bit DSP binaries. There > doesn't seem a separate file extension, right? > How are two variants handled in deken? > > best, Thomas > >> Am 02.03.2020 um 11:51 schrieb IOhannes m zmölnig <[email protected]>: >> >> Signierter PGP-Teil >> On 3/2/20 10:43 AM, IOhannes m zmölnig wrote: >>> On 3/1/20 10:51 PM, IOhannes m zmölnig wrote: >>>> On 2/26/20 2:28 PM, IOhannes m zmoelnig wrote: >>>>> class_new() *might* return a NULL-pointer (and it will, if the precision >>>>> doesn't match), so you have to check for that before you access any >>>>> class members. >>>>> >>>> >>> >>> TL;DR there was a bug in Pd that created a few false positives in my >>> original list. >> >> since all flext externals are crashing, i thought i had a look at those >> specifically. >> it turns out, that flext has it's own use for NULL-classes, as it >> internally uses them to create a persistent (and invisible) "flext >> buffer helper" object. >> >> with mismatched float-sizes, this results in calling `pd_new(NULL)` - >> something that never happens in the ordinary flow, where pd_new() only >> gets called in the newmethod of an objectclass. Pd itself doesn't call >> the newmethod of objectclasses with mismatched float-size, so this is >> usually not a problem. >> >> however, it's easy enough to fix. pd_new() already does a NULL-ptr >> check, but only prints an error and happily proceeds to access it's >> members, leading to the inevitable crash. >> doing an early exit in this case, reduces the list of crashing externals >> to the following eleven (11) packages: >> - creb >> - cyclone >> - hcs >> - moonlib >> - nilwind >> - ossia >> - pddp >> - pdlua >> - pof >> - unauthorized >> - Gem (crash fixed upstream, but no release yet) >> - py (this is a false-positive, as it also crashes if the float-sizes do >> match) >> - context (the crash is triggered by the embedded cyclone) >> >> even though, we can fix pd_new() to accept NULL-classes, flext should >> probably handle this explicitly and not attempt to create the "flext >> buffer helper" object if the class-pointer is invalid. >> >> gfadsmr >> IOhannes >> >> >> > > -- > Thomas Grill > http://grrrr.org -- Thomas Grill http://grrrr.org
signature.asc
Description: Message signed with OpenPGP
_______________________________________________ Pd-dev mailing list [email protected] https://lists.puredata.info/listinfo/pd-dev
