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. :)

On Feb 26, 2020, at 1:58 PM, pd-dev-request@lists.iem.at wrote:

Message: 4
Date: Wed, 26 Feb 2020 13:58:50 +0100
From: Christof Ressi <info@christofressi.com>
To: pd-dev@lists.iem.at
Subject: Re: [PD-dev] [PD] double precision merged
Message-ID: <7f65121f-810d-c952-40f8-4f0facbbb1a3@christofressi.com>
Content-Type: text/plain; charset=utf-8; format=flowed

I see you point and I think it's a philosophical issue. In 
Supercollider, for example, I can't compile a UGen plugin and expect it 
to run on both Scsynth and Supernova, I rather have to pass the correct 
define ("SUPERNOVA"). Plugins are therefore usually built twice - with 
and without "-DSUPERNOVA" - and since they have different extensions and 
export different symbols, they can coexist. I think this could be a 
solution for Pd as well. If we had some naming convention for double 
precision externals, we can then just built both versions 
unconditionally and Pd will load the correct version. This can be 
automated by pd-lib-builder.

Christof

--------
Dan Wilcox
@danomatika
danomatika.com
robotcowboy.com