[Oxidation Plan] Choosing a target Rust version and edition

Raphaël Gomès raphael.gomes at octobus.net
Tue Jul 2 12:38:23 EDT 2019


I've written a patch on top of my small fixes series that moves hg-core 
and hg-cpython to Rust 2018.

On 7/1/19 10:32 AM, Raphaël Gomès wrote:
> As more and more Rust makes its way into the Mercurial code base, the 
> question of picking a minimum required version of Rust becomes more 
> and more urgent. On the one hand, staying too up to date means 
> breaking the install for some of our users, and staying too far behind 
> means creating a technical debt that only gets worse over time.
>
> Many interesting changes have happened in Rust since the Oxidation 
> Plan was introduced, like the 2018 edition and procedural macros:
>
>     - Opting in to the 2018 edition would be a clear benefit in terms 
> of future proofing, new (nice to have) syntactical sugar 
> notwithstanding. It also has a new non-lexical, non-AST based borrow 
> checker that has fewer bugs(!) and allows us to write correct code 
> that in some cases would have been rejected by the old one.
>     - Procedural macros would allow us to use the PyO3 crate which 
> maintainers have expressed the clear goal of compiling on stable, 
> which would help in code maintainability compared to rust-cpython.
>
> These are the two major features I can think of that would be clearly 
> beneficial and that I think should matter in determining the target 
> Rust version. This means that the absolute oldest rustc version should 
> be 1.31.1, however picking the more recent 1.34.2 would be preferable 
> as it is of course newer, but still packaged in Debian.
>
> I can volunteer to write the patch that will port the current 2015 
> edition code to 2018 and pin down the Rust version. I've talked to 
> gracinet, who is currently the only other contributor writing major 
> Rust patches, and he would be fine (could I say thrilled?) with 
> adapting his newer code to the 2018 edition after said patch lands.
>
> Thoughts?
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list