git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH RFC 0/3] Introduce Rust and announce that it will become mandatorty
@ 2025-09-19 17:36 Sergey Fedorov
  2025-09-19 17:56 ` Ezekiel Newren
  0 siblings, 1 reply; 26+ messages in thread
From: Sergey Fedorov @ 2025-09-19 17:36 UTC (permalink / raw)
  To: ps
  Cc: Johannes.Schindelin, ben.knoble, cb, collin.funk1, contact,
	eschwartz, ezekielnewren, git, gitster, me, newren,
	phillip.wood123, pierre-emmanuel.patry, sam, sandals


This will be a disaster, please consider not making rust mandatory.
It will break git for all systems without rust, in effect killing not only possibility to use GitHub and other git-based services, but also breaking build systems, since many ports – and package managers – rely on git to fetch sources.
As for local version control, git could be replaced with some alternative (likely inferior, but at least that is not the end).
There is no replacement, AFAIK, for build systems and for git-based online services.

P. S. In case anyone wonders, this is personally relevant for me: I won’t be able to continue contributing to open-source anymore (at least certainly not like in past years) with git being unusable due to broken rust.


^ permalink raw reply	[flat|nested] 26+ messages in thread
* Re: [PATCH RFC 0/3] Introduce Rust and announce that it will become mandatorty
@ 2025-09-20  8:29 Sergey Fedorov
  2025-09-20 18:39 ` rsbecker
  0 siblings, 1 reply; 26+ messages in thread
From: Sergey Fedorov @ 2025-09-20  8:29 UTC (permalink / raw)
  To: ezekielnewren
  Cc: 20250904-b4-pks-rust-breaking-change-v1-0-3af1d25e0be9,
	Johannes.Schindelin, ben.knoble, cb, collin.funk1, contact,
	eschwartz, git, gitster, me, newren, phillip.wood123,
	pierre-emmanuel.patry, ps, sam, sandals


> but I'd like to hear what OSes and Architectures you use personally and professionally and why adding Rust would be a bad idea.

I am the maintainer of ports for Darwin on PowerPC systems (few past years in MacPorts and now in https://github.com/macos-powerpc/powerpc-ports fork) and contributor to GCC (gfortran). I have added the whole of current R ecosystem into MacPorts and a decent support for modern Fortran via FPM.

Those systems are still actively used, and thanks to GCC upstream support of powerpc-apple-darwin I have been able to keep our ports pretty much on par (occasionally ahead of) what modern macOS has at the moment. A lot of work has been done in past two-three years, including fixing/restoring support for ppc for several major langs/compilers (gfortran, MLton, SBCL, Ruby, OCaml, Idris2 etc.), build systems etc.

Git is essential for the version control, but also for the build systems of MacPorts and CMake. Since my powerpc ports rely on MacPorts infrastructure (there are 40k+ ports), I need a working Git for my workflow.

To be clear, I do not object to adding Rust optionally (as I would not against adding optional modules for any language), but making it mandatory, while Rust is still broken on a few, admittedly edge case, systems, hurts the open-source.

I agree with John Paul Adrian that once gccrs becomes properly usable, or otherwise gcc codegen in Rust acquires support for currently unsupported platforms, things will change.

P. S. I have contributed to mrustc, so it is not ideological. Though I do think that ability to bootstrap from source is strictly required for a compiler to be safe, and at the moment bootstrapping of Rust may not yet work for all supported platforms (at least it is not well-tested).

References:
https://github.com/rust-lang/rfcs/issues/1312
https://github.com/thepowersgang/mrustc/issues/300

Regards,
Sergey Fedorov
macos-powerpc.org


^ permalink raw reply	[flat|nested] 26+ messages in thread
* [PATCH RFC 0/3] Introduce Rust and announce that it will become mandatorty
@ 2025-09-04 14:26 Patrick Steinhardt
  2025-09-19 18:41 ` John Paul Adrian Glaubitz
  0 siblings, 1 reply; 26+ messages in thread
From: Patrick Steinhardt @ 2025-09-04 14:26 UTC (permalink / raw)
  To: git
  Cc: Haelwenn (lanodan) Monnier, brian m. carlson, Ben Knoble,
	Christian Brabandt, Collin Funk, Eli Schwartz, Elijah Newren,
	Ezekiel Newren, Johannes Schindelin, Junio C Hamano, Phillip Wood,
	Pierre-Emmanuel Patry, Sam James, Taylor Blau

Hi,

this small patch series introduces Rust into the core of Git. This patch
series is designed as a test balloon, similar to how we introduced test
balloons for C99 features in the past. The goal is threefold:

  - Give us some time to experiment with Rust and introduce proper build
    infrastructure.

  - Give distributors time to ease into the new toolchain requirements.
    Introducing Rust is impossible for some platforms and hard for
    others.

  - Announce that Git 3.0 will make Rust a mandatory part of our build
    infrastructure.

The test balloon itself is quite uninteresting: I've chosen to convert
the "varint.c" subsystem, mostly because it is trivial and does not have
any dependencies. But it does allow us to verify that C to Rust interop
works as expected, and to play around with tooling. All tests pass with
the "varint.rs" implementation.

For now, the series only contains support for Meson. If we agree to go
down this route I'll also introduce support for Rust into our Makefiles
at a later point in time.

Furthermore missing is additional tooling:

  - At least one CI job to verify that Rust builds and works as
    expected.

  - Tooling and CI jobs to ensure that we have consistent formatting via
    `cargo format`.

And probably lots more. As said, the entire goal is for us to have an
easy playground that we can experiment on and develop the infrastructure
incrementally without yet having to commit to anything.

I'm mostly splitting out the topic of introducing Rust from the larger
series that introduce it into xdiff so that we can focus more on the
actual process of introducing Rust into Git and less on the potential
features that we want to build on top of it.

Thanks!

Patrick

---
Patrick Steinhardt (3):
      meson: add infrastructure to build internal Rust library
      rust: implement a test balloon via the "varint" subsystem
      BreakingChanges: announce Rust becoming mandatory

 Documentation/BreakingChanges.adoc | 20 +++++++++
 meson.build                        | 21 ++++++++-
 meson_options.txt                  |  2 +
 src/lib.rs                         |  1 +
 src/meson.build                    | 13 ++++++
 src/varint.rs                      | 92 ++++++++++++++++++++++++++++++++++++++
 6 files changed, 147 insertions(+), 2 deletions(-)


---
base-commit: 2462961280690837670d997bde64bd4ebf8ae66d
change-id: 20250904-b4-pks-rust-breaking-change-7167d9d3e37d


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2025-09-23  5:05 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-19 17:36 [PATCH RFC 0/3] Introduce Rust and announce that it will become mandatorty Sergey Fedorov
2025-09-19 17:56 ` Ezekiel Newren
2025-09-19 18:14   ` Collin Funk
2025-09-20  8:24   ` Florian Märkl
2025-09-22 15:59   ` Michael Orlitzky
2025-09-22 16:17     ` Sam James
2025-09-22 21:35     ` brian m. carlson
2025-09-22 21:47       ` Sam James
2025-09-23  5:05         ` Patrick Steinhardt
2025-09-22 23:23       ` Michael Orlitzky
  -- strict thread matches above, loose matches on Subject: below --
2025-09-20  8:29 Sergey Fedorov
2025-09-20 18:39 ` rsbecker
2025-09-20 19:00   ` Ezekiel Newren
2025-09-20 19:25     ` Sam James
2025-09-20 23:17     ` rsbecker
2025-09-20 23:48       ` Ezekiel Newren
2025-09-21  1:15         ` rsbecker
2025-09-21  1:24           ` Ezekiel Newren
2025-09-21  3:18             ` rsbecker
2025-09-21 16:49               ` Ezekiel Newren
2025-09-21 23:07                 ` rsbecker
2025-09-21 23:42                   ` Ezekiel Newren
2025-09-22 16:21                     ` rsbecker
2025-09-04 14:26 Patrick Steinhardt
2025-09-19 18:41 ` John Paul Adrian Glaubitz
2025-09-22 13:01   ` Patrick Steinhardt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).