I will often say that the so-called “C ABI” is a very bad one, and a relatively unimaginative one when it comes to passing complicated types effectively. A lot of people ask me “ok, what would you use instead”, and I just point them to the Go register ABI, but it seems most people have trouble filling in the gaps of what I mean. This article explains what I mean in detail. I have discussed calling
![The Rust Calling Convention We Deserve · mcyoung](https://cdn-ak-scissors.b.st-hatena.com/image/square/794d55ad444c677cc2c15ea0fac1586f2598cc4a/height=288;version=1;width=512/https%3A%2F%2Fmcyoung.xyz%2Fog%2Fcalling-convention-04eff0c6b00d89e8041f91f2dd6af487ea2e3cc0.png)