Re: [PATCH v3 02/15] xdiff: introduce rust

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Randall,

On Sat, Aug 23, 2025 at 8:06 AM <rsbecker@xxxxxxxxxxxxx> wrote:
>
> On August 23, 2025 10:26 AM, Kristoffer Haugsbakk wrote:
> >On Sat, Aug 23, 2025, at 15:43, rsbecker@xxxxxxxxxxxxx wrote:
[...]
> >> Does this introduce Rust as a mandatory dependency for git? If so, it
> >> cuts out numerous platforms.
> >
> >The proposed platform support policy is in patch 1.
> >
> >https://lore.kernel.org/git/6d065f550fe871cf010409f7bd2a63438cf52723.1755
> >921357.git.gitgitgadget@xxxxxxxxx/
>
> It is a very disappointing policy to be honest. It kicks me off git because Rust is
> not available on my platform, representing tens of thousands of users in North
> American alone. Rust is not available, but may be in a few years, but there is no
> guarantee that the hardware vendor (HPE) will provide support. I previously
> commented about the problem with Rust and was not taken seriously. This is
> disappointing and exclusionary.

I don't think that's fair.  A quick reminder on the history: There was
lots of excitement about potentially introducing Rust two years ago at
our virtual Git contributors conference.  Taylor formally proposed
adopting it on the mailing list a year and a half ago.  And at Git
Merge last year, among those in attendance, there was broad
significant interest in adopting Rust with unanimous support for
letting it move forward among those that were present (which, yes, we
know wasn't everyone).  And there's the three rounds so far of this
patch series.  At every discussion where you weren't present, someone
else would always bring up you and NonStop, and point out how you've
been a very positive long-term member of the Git community and how
Rust adoption would likely negatively affect you, which would be
regrettable.  We waited years to adopt Rust precisely (and I believe
solely) because of your objections.  Josh and Calvin even went the
route of making optional not-even-built-by-default Rust libraries
(libgit-rs and libgit-sys) when they wanted to add some Rust bindings.
If years of deference by other community members isn't considered
taking you seriously, I don't know what is.

I agree that it is disappointing that there isn't a clear way to both
gain the compelling advantages of Rust while also retaining the full
current extent of our widespread platform support.  It's doubly
unfortunate since you're such a positive contributing member of the
community.  But not allowing us to ever gain the advantages of Rust is
problematic too.  So, a decision has to be made, one way or the other.

If it helps, here's the statements I've seen from long term community
members on Ezekiel's proposal for a hard dependency so far, most of
which call out the reduced platform support (whether in favor of the
proposal or not):
  * Randall: https://lore.kernel.org/git/031601dc143f$7a9a25d0$6fce7170$@nexbridge.com/
  * brian: https://lore.kernel.org/git/aHlwZPbiKnakMN75@xxxxxxxxxxxxxxxxxxxxxxxxxx/
  * Taylor: https://lore.kernel.org/git/aHl4U98BBvpA5eKF@nand.local/
  * Patrick: https://lore.kernel.org/git/aH-CN0RYFmpm7fMt@xxxxxx/
  * Phillip: https://lore.kernel.org/git/f439958d-64ce-417f-8175-720f69387d48@xxxxxxxxx/

There's also been some emails that can be read as implicitly making a
position statement on the topic from long term community members:
  * Junio: https://lore.kernel.org/git/xmqqzfd12ujv.fsf@gitster.g/
  * Johannes: https://lore.kernel.org/git/ac871bc4-df93-31f4-55f2-d6fc538a422d@xxxxxx/
  * Elijah: https://lore.kernel.org/git/pull.1980.git.git.1752784344.gitgitgadget@xxxxxxxxx/
(I figured my noted assistance of this series meant I didn't need to
explicitly call out my support for it.)

> The assertion in the policy that Rust is easily interoperable is incorrect.

Are you mixing up interoperability with portability?  Without further
context than your email provides, it appears so to me.  Rust code can
call C code and vice-versa within the same process without huge
amounts of serializing and deserializing of data structures, and
without what amounts to something close to an operating system context
switch in order to ensure call stacks are as expected for the language
in question.  To me, that means we can call the two languages easily
interoperable.  On the other hand, portability of those languages is
about whether those languages have compilers supported on various
hardware platforms.  The document explicitly calls out that fewer
systems have a Rust compiler than have a C compiler, and that Rust
adoption would thus reduce how portable Git is.  Are you referring to
this lower portability that the document itself also calls out, or are
you pointing out additional issues with interoperation between the
languages on a platform where compilers for both languages exist?  If
the latter, could you provide more details?


I know my email is probably disappointing to you, at a minimum.  I'm
sorry about that.  I hope it's helpful, at least in having links to
where various folks in the community stand if nothing else.





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux