Giooschi

joined 1 year ago
[–] Giooschi@lemmy.world 17 points 15 hours ago (4 children)

Zig is "c", but modern and safe.

Zig is safer than C, but not on a level that is comparable to Rust, so it lacks its biggest selling point. Unfortunately just being a more modern language is not enough to sell it.

So imagine if trying to fit in a C-like cousin failed

C++ was not added to Linux because Linus Torvalds thought it was an horrible language, not because it was not possible to integrate in the kernel.

[–] Giooschi@lemmy.world 8 points 1 week ago (3 children)

No, macros can see only the tokens you give them. They have no notion of the fact that crate::functions is a module, that PluginFunction is a trait and that functions_map is a variable. Not even the compiler may know those informations when the macro is expanded.

If you really really want to do this, you can use something like inventory. Note that inventory uses a special linker section to do this, which some consider a hack. This is also not supported on WASM if you want to target it.

[–] Giooschi@lemmy.world 5 points 1 week ago (1 children)

CEO bonuses should be awarded 10 years after their mandate

[–] Giooschi@lemmy.world 1 points 2 weeks ago (1 children)

Would it makes sense to provide a "share nothing" runtime implementation that can be injected at startup?

Isn't this tokio::task::spawn_local?

[–] Giooschi@lemmy.world 2 points 2 weeks ago

It also seems to require a GC though...

newxml is GC only, for simplicity sake.

[–] Giooschi@lemmy.world 3 points 2 weeks ago (2 children)

Pointers are not guaranteed to be safe

So I guess they are forbidden in @safe mode?

but it's being replaced by something else instead

Do you know what is the replacement? I tried looking up DIP1000 but it only says "superceded" without mentioning by what.

This makes me wonder how ready D is for someone that wants to extensively use @safe though.

[–] Giooschi@lemmy.world 5 points 2 weeks ago (4 children)

For local variables, one should use pointers, otherwise ref does references that are guaranteed to be valid to their lifetime, and thus have said limitations.

Should I take this to mean that pointers instead are not guaranteed to be valid, and thus are not memory safe?

[–] Giooschi@lemmy.world 15 points 2 weeks ago (2 children)

Note that Rust does not "solve" memory management for you, it just checks whether yours is memory safe. Initially you might rely on the borrow checker for those checks, but as you become more and more used to Rust you'll start to anticipate it and write code that already safisfies it. So ultimately you'll still learn how to safely deal with memory management, just in a different way.

[–] Giooschi@lemmy.world 2 points 2 weeks ago

Rust for Linux used to be developed in parallel to the mainline Linux before Linus Torvalds merged support in the main tree.

[–] Giooschi@lemmy.world 7 points 2 weeks ago (6 children)

"safe by default" can be done by starting your files with @safe:

Last time I heard about that it was much more limited than Rust, for example it even disallowed taking references to local variables. Has something changed since then?

[–] Giooschi@lemmy.world 21 points 2 weeks ago (5 children)

But the one time I looked at a rust git repo I couldn't even find where the code to do a thing was.

IMO that tells more about how the project was organized and names things than the language used.

So I think probably, the best way IS to go the way linus did. Just go ahead and write a very basic working kernel in rust. If the project is popular it will gain momentum.

As the other commenter pointed out, there's Redox. The issue is that this completly disregards an incremental approach: you have to rewrite everything before it comes usable, you can't do it piece by piece. Currently the approach of Rust for Linux is not even to rewrite things, but to allow writing new drivers in Rust.

Trying to slowly adapt parts of the kernel to rust and then complain when long term C developers don't want to learn a new language in order to help isn't going to make many friends on that team.

Have you seen the conference video? That's not just refusal to learn a new language, it's open hostility. And it's not the only instance, for example Asahi Lina also reported unreasonable behaviour by some maintainers just because she wrote Rust code, even when Rust was not involved.

[–] Giooschi@lemmy.world 1 points 2 weeks ago (2 children)

The reputation loss is probably worse than whatever fine they end up paying

Time to pull a Meta/X and change name

view more: next ›