On 03/09/2025 06:40, Patrick Steinhardt wrote: > On Tue, Sep 02, 2025 at 05:27:10PM +0000, brian m. carlson wrote: >> On 2025-09-02 at 11:16:19, Patrick Steinhardt wrote: [snip] >> I'd prefer we not wait that long. I'm doing some work in building the >> new loose object mapping using Rust and it's much more efficient than >> writing it in C because we don't have to sort the data when we use a >> BTreeMap. The code is much simpler, shorter, and easier to write. > > I still think we need to be mindful around the community though. I > understand that we want to have Rust in the codebase, and as I said I'm > in favor of adopting it. But we also have a certain responsibility with > Git given that it's used by almost every single developer out there. > > A compromise could be to ease into Rust: we adopt Rust, but before Git > 3.0 it is entirely optional. So Git will continue to work alright even > if there is no Rust compiler available. On the one hand this plays > nicely with platforms that do not have Rust. On the other hand it also > allows us to slowly iterate on the build infra for Rust, because I'm > very sure that there's going to be issues there initially. > > With that we can: > > - Build confidence in our Rust tooling. > > - Figure out things as we go. > > - Give distributions and other platforms enough time to prepare for > Rust becoming mandatory. > > I think adopting Rust as a mandatory dependency out of nowhere would not > be playing nice. It may require significant effort from distros to adapt > to the new reality, so we should give them time to do so. I agree with everything you say above. Thank you for saying it. ;) It is somewhat unfortunate that 'xdiff' was chosen as an initial project for this, since a git without the ability to produce a diff is, well, practically useless! [I don't have any objection to making the rust code optional in this case - it should be easily possible to have both C and rust xdiff code]. I have already stopped building git on cygwin, since rust is not currently available on cygwin (and I'm not aware of any effort to port it there - although LLVM v20+ was recently made available). ATB, Ramsay Jones