Re: [PATCH 0/7] RFC: Accelerate xdiff and begin its rustification
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Jul 22, 2025, 12:21 UTC
- Message-ID
- <aH-CROwg57Juo9mH@pks.im>
- In-Reply-To
- <aHrrZyrDw_CYmFQF@cloudsdale.the-delta.net.eu.org>
On Sat, Jul 19, 2025 at 02:48:39AM +0200, Haelwenn (lanodan) Monnier wrote:
Show 50 quoted lines
> [2025-07-18 17:25:01-0400] Eli Schwartz: > > On 7/18/25 9:34 AM, Phillip Wood wrote: > > > Hi Ezekiel > > > > > > Thanks for working on this > > > > > > On 17/07/2025 21:32, Ezekiel Newren via GitGitGadget wrote: > > > > > > > So... > > > > > > > > This obviously raises the question of whether we are ready to accept a > > > > hard > > > > dependency on Rust. Previous discussions on the mailing list and at Git > > > > Merge 2024 have not answered that question. If not now, will we be > > > > willing > > > > to accept such a hard dependency later? And what route do we want to > > > > take to > > > > get there? > > > > > > As far as git goes I think introducing a hard dependency on rust is > > > fine. It is widely supported, the only issue I'm aware of is the lack of > > > support on NonStop and I don't think it is reasonable for such a > > > minority platform to hold the rest of the project to ransom. There is a > > > question about the other users of the xdiff code though. libgit2 carries > > > a copy as do other projects like neovim. I've cc'd the libgit2 > > > maintainer and posted a link to this thread in neovim github [1] > > > > > > A hard dependency on rust for Gentoo amd64 would potentially require > > building https://github.com/thepowersgang/mrustc followed by building 13 > > and counting versions of rustc in order to get to the latest version. > > What is the minimum supported version in this series, by the way? > > > > bin packages for rust do exist but not everyone wants to use non-distro > > provided binaries, sometimes for auditability reasons. > > > > > > For Gentoo HPPA, Alpha, m68k it will simply mean the removal (or end of > > life and staying forever on 2.50, perhaps) of Git. There is no rust > > compiler there. > > > > Even s390 support for rust is limited to a precompiled version not > > everyone is willing to use. > > Also in other distro concerns, if it trickles down to libgit2, > extra care should be taken to avoid creating circular dependencies > due to cargo depending on libgit2 (via git2 crate). > > For example with making sure it can reasonably be built via meson's > Rust support rather than through cargo.
I think it's unlikely that this eventually trickles down into libgit2. The bundled versions of xdiff have already diverged for a long time, and unfortunately libgit2 is mostly in maintenance mode nowadays. So I guess that this change here just means that things will diverge even further in the future, which is probably okay-ish. After all, the whole xdiff library didn't really evolve in a fast pace over the last years.
That being said, there is an xdiff fork located at [1] that libgit2 maintains nowadays. So if the Rust dependency ever became a problem for any of the downstream users I think we could simply redirect them to that fork and make it the canonical upstream for C-only xdiff.
Patrick
[1]: https://github.com/libgit2/xdiff