Rust extensions: the next step

Georges Racinet gracinet at anybox.fr
Thu Oct 18 13:32:51 EDT 2018


On 10/18/2018 12:22 PM, Gregory Szorc wrote:
> One open item is full PyPy/cffi support. Ideally we’d only write the native code interface once. But I think that means cffi everywhere and last I looked, CPython into cffi was a bit slower compared to native extensions. I’m willing to ignore cffi support for now (PyPy can use pure Python and rely on JIT for faster execution). Maybe something like milksnake can help us here? But I’m content with using the cpython crate to maintain a Rust-based extension: that’s little different from what we do today and we shouldn’t let perfect be the enemy of good.

One nice thing with the cpython crate is that it's just using the
CPython ABI. Therefore, there's nothing we can't do – only things that
are less practical. It's not very intuitive, but it should be ok with a
bit of practice.

About cffi, if milksnake can automate it, that's an easy win to be added
later (for now I still need to call in the C modules from the Rust code).

In both cases, we need to tighten it with comprehensive integration tests.

Cheers,

-- 
Georges Racinet
Anybox SAS, http://anybox.fr
Téléphone: +33 6 51 32 07 27
GPG: B59E 22AB B842 CAED 77F7 7A7F C34F A519 33AB 0A35, sur serveurs publics




More information about the Mercurial-devel mailing list