Skip to content

Port some of EState to Rust (rebased)

Copy of @cmn's !32 (closed) merge request, rebased to use the feature/rustify branch that was itself rebased to use the new CMake build system and drop the old Autotools build system.

Since it sat idle for so long, I figured I'd try to revive MR-32 after rebasing the old rustify branch to use the CMake build system. I haven't built the Rust support module for Meson, yet, so the Meson build is broken right now. We'll probably have to rebase this MR once that is added... unless we drop Meson entirely.

@cmn: If you're interested, you're welcome to reset your branch to point at the HEAD Of this branch, and we can just continue in your original MR. I haven't actually spent much time reviewing the changes, except in passing when fixing merge conflicts. This MR still needs some eyes on it.

Original description follows:

This ports quite a bit of EState to Rust, handling some of the compression work. I started by trying to avoid any calls from Rust to C but I ended up giving up on that when it was the block-sorting's turn.

I tried to make each commit straightforward to make the porting obvious. This does mean that there is quite a bit of Rust code that we might want to encapsulate more or move out of the EState struct into higher-level functions, but I figured it was better if that happens once the code hits the mainline.

This might be too much code for a first PR, but I was on planes way too much and got bored.

Merge request reports