Re: The Case for Rust (in the base system)

From: Adrian Chadd <adrian_at_freebsd.org>
Date: Thu, 25 Jan 2024 18:22:58 UTC
On Thu, 25 Jan 2024 at 07:20, void <void@f-m.fm> wrote:

> Hi,
>
> Somewhat adjacent to this discussion - what I'd like [1] to see, as a user
> rather than a developer, is a system-stable rust, so that if/when
> something needs rust, it uses the system-specific version.
>
> Let's say when there's a new freebsd version. This has, say, rust v1.72.
> It's not src-rust in that rust wouldn't be used to build freebsd source.
> But the binaries would be there, selectable on freebsd installation,
> much as one can select kern-dbg from the installer.
>
> Then in ports, one of the options might be 'use system rust' [X]
> so avoiding the churn that happens constantly.
>

The challenge isn't necessarily rust though. As said before, it's the
ecosystem of library code
developers use to build software. I've been playing with rust a bit for
resource constrained
embedded systems code, and there's only so much you can do before you have
to import
something and then ... dependencies can blossom if you're not super careful.

You also don't want to be stuck where the system version of rust can't
compile the updated crates.

The supply chain issue is also super valid. A lot of stuff just "assumes"
they can download stuff
from the internet during build, and for companies that wish to avoid said
supply chain issues,
they'll end up starting to build their own repositories of crates. And we'd
have to do the same,
since rust and its own set of base libraries only gets you so far. Then you
hope (!) that you don't
have crate versions that are different for each piece of software you're
importing.

(And I'm pretty sure any rust developers will riot if you try to say
something like "rust in base
for base tools, but no crates or only these subset of crates that we check
into vendor/. They'll
end up wanting ... more. :-)

(To echo phk, I kinda feel like this is a perennial issue of languages
being in that fun triangle
that poor devops folks have to be responsible for when integrating into
something more .. formal. :-)


-adrian