Re: Rust kernel policy

Greg KH
2025-02-20T06:53:31Z

On Thu, Feb 20, 2025 at 09:32:15AM +0300, Alexey Dobriyan wrote:
> On Wed, Feb 19, 2025 at 11:33:56AM -0800, H. Peter Anvin wrote:
> > b. Can we use existing mature tools, such as C++, to *immediately* improve the quality (not just memory safety!) of our 37-year-old, 35-million line code base and allow for further centralized improvements without the major lag required for compiler extensions to be requested and implemented in gcc (and clang) *and* dealing with the maturity issue?
>
> We can't and for technical reasons:
>
> * g++ requires C99 initializers to be in declaration order,
> even in cases where there is no reason to do so.
>
> * g++ doesn't support __seg_gs at all:
>
> $ echo -n -e 'int __seg_gs gs;' | g++ -xc++ - -S -o /dev/null
> <stdin>:1:14: error: expected initializer before ‘gs’
>
> x86 added this to improve codegen quality so this would be step backwards.
>

And then there's my special addition to the kernel "struct class" :)

Anyway, no sane project should switch to C++ now, ESPECIALLY as many are
starting to move away from it due to the known issues with complexity
and safety in it's use. Again, see all of the recent issues around the
C++ standard committee recently AND the proposal from Google about
Carbon, a way to evolve a C++ codebase into something else that is
maintainable and better overall. I recommend reading at least the
introduction here:
https://docs.carbon-lang.dev/
for details, and there are many other summaries like this one that go
into more:
https://herecomesthemoon.net/2025/02/carbon-is-not-a-language/

In short, switching to C++ at this stage would be ignoring the lessons
that many others have already learned already, and are working to
resolve. It would be a step backwards.

thanks,

greg k-h