[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