Remix.run Logo
prologic 3 hours ago

I just compared this Rust implementation against the original C sources. Some ~50k SLOC (Rust) compared to maybe ~8-12k SLOC of C (depending on if you count headers). Why is the Rust implementation so much more complex and onerous?

josephg 3 hours ago | parent | next [-]

If the readme is anything to go by, this doesn't look like it was written by hand. Codex if I were to guess. I wonder the coding agent "improved" the code.

The readme hints at the prompt:

> It keeps the original system's semantics — what it does — while rethinking how it's expressed: stronger types, clearer module boundaries, idiomatic abstractions everywhere.

"idiomatic abstractions" would certainly bloat the line count.

rtpg an hour ago | parent | next [-]

kinda sad cuz 10klines you really get into "well I can just sit there and bang at the problem by hand" territory.

Sounds like a fun project....

goalieca an hour ago | parent [-]

Linux at that point’s whole purpose was to bang at it by hand and learn something. There’s a ton of irony in having an LLM do it.

pydry an hour ago | parent | prev [-]

so, slop

steveklabnik 2 hours ago | parent | prev | next [-]

For fun, I decided to take a look at a random syscall: fork.

* https://github.com/yuan-xy/Linux-0.11/blob/master/kernel/for...

* https://github.com/Poseidon-fan/linux-0.11-rs/blob/420152fdf...

The Rust is slightly shorter, though it also isn't organized in exactly the same way. The code isn't that different overall, creating and copying some data structures around, as you'd expect for a fork implementation of this vintage.

Maybe I got lucky, but I would expect that it's more of what other people said: this repository includes far more than the kernel.

dminik 3 hours ago | parent | prev | next [-]

According to this breakdown: https://ghloc.vercel.app/Poseidon-fan/linux-0.11-rs?branch=m...

It's about 15k lines of code for the kernel and the rest is various utilities, libraries and programs that can run on the kernel.

dminik 2 hours ago | parent [-]

Also, after a quick look at a few files, the rust version appears to be much more commented. Not sure if that makes up the extra several thousand lines, but surely counts accounts for some of that.

cozzyd 2 hours ago | parent [-]

SLOC should omit comments no?

Aurornis 2 hours ago | parent | prev | next [-]

This repo contains a lot of extra tools and userspace programs.

The majority of Rust the code in the repo is not for the Linux kernel.

binsquare 3 hours ago | parent | prev | next [-]

I don't think it's rust

ls-a 2 hours ago | parent | prev | next [-]

I like how everyone has a different theory as to why

icemanx 2 hours ago | parent | prev | next [-]

because of AI

broknbottle 3 hours ago | parent | prev | next [-]

More LoC means easier to quantify the impact when telling a story. The actual code quality may be lower but that’s the schmuck’s problem that comes after once promo is acquired.

3836293648 3 hours ago | parent | next [-]

Or, as others have already noted, it's only about 15k and the repo includes tools and test programs.

newtonianrules 3 hours ago | parent | prev [-]

I’ve never worked with Silicon Valley people before now, and now I get why so many projects are abandoned and rewritten when they could just use open source. The whole culture is promo driven.

sudb 3 hours ago | parent | prev [-]

One of the tradeoffs of Rust is its verbosity I think (in return for which Rustaceans would say you gain explicitness).

coldtea 2 hours ago | parent | next [-]

Verbosity compared to C?

Only in extra syntax constructs.

But Rust can absolutely do the same thing as C in fewer lines, especially when comparing each's standard features like string support.

9dev 2 hours ago | parent | prev [-]

I absolutely despise that C convention if abbreviating absolutely every single thing as much as possible. Yeah yeah, that was necessary back in the day when memory was scarce and editors were awful, but come on those days were almost half a century ago by now.

Rust may be verbose, but at least you can read it without turning into a cynical greybeard subject matter expert first.

hughw 2 hours ago | parent | next [-]

I've found that the less real estate my eyes need to scan, the faster I understand the code, even if its more tersely expressed and requires a little decoding. Relatedly, I've come to appreciate a line of code that does the thing rather than one that calls a function whose name might express what the function does, but I might need to go find it and and read its code. That works well if your language supports a terse expression. So I prefer you tersely multiply/reduce a list rather than call a function, but some languages just aren't friendly to that and demand verbosity.

doginasuit 2 hours ago | parent [-]

This is why kotlin is so amazing, unusually concise and unusually clear in meaning.

rcxdude an hour ago | parent | prev | next [-]

Rust does so a lot of abbreviation, though. fn, ptr, mut, etc.

FpUser 22 minutes ago | parent | prev | next [-]

>"Rust may be verbose, but at least you can read it without turning into a cynical greybeard subject matter expert first."

Actually stuff like fn, mut etc. feels like mutilation to me. I guess it is highly individual.

skydhash 2 hours ago | parent | prev [-]

I kinda love it, because verbosity means you have to rely on completion and that has a negative impact on retention.

And the terseness is good when you’re familiar with the code.