[foreign-abi] On invokers
John Rose
john.r.rose at oracle.com
Wed Sep 25 00:25:29 UTC 2019
On Sep 24, 2019, at 3:47 PM, Maurizio Cimadamore <maurizio.cimadamore at oracle.com> wrote:
>
>
> On 24/09/2019 23:31, John Rose wrote:
>> Maurizio, my reaction to your observations about how we might have missed the “full glass” of
>> full generality is simply that, if a meta-ABI design is known to be flexible across known degrees of
>> freedom,. then it is likely that it can be adapted to new, unforeseen degrees of freedom, as they
>> become important.
>
> To be clear, in case what I said came off the wrong way - it was not my intention to criticize this work in any way. It was more of a call for being honest about what this effort is about; programmable, or pluggable invoker might evoke the idea that users can mix and match ABIs according to their tastes - e.g. some sort of API that lets you control all the knobs - present and future. I think the best we can do at this point in time is, as you say, generalize over the case we know about - and hope (with good reason) that the new cases we'll see will be adapted with ease. In other words, our goal here is to devise an invoker that is general enough to supersede the invokers we currently have (of which we have three: universal, link2native and JNI-based direct invoker), and I was trying to resist to the sirens singing for a general meta-ABI API. That might come, in time, or maybe never will - for now the goal is to make the implementation saner, so that we can more rapidly adapt across platforms.
:-) Yes, that’s very good.
It looks like we are agreed to avoid the twin errors of (a) premature generalization, and (b) premature
non-generalization.
(*Mature* non-generalization appears when you have a road map with an endpoint, so you can say things like,
“You might ask my API to do extra task X, but you should really use a different API for that.” Folks vary by
temperament which kind of premature-ness they are more likely to fall into. Y'all know I’m an (a), so of course
I’m always on the lookout for signs of (b), whether they exist or not. The Vector API is currently having a
vigourous conversation about such choices.)
More information about the panama-dev
mailing list