> honestly thats the biggest problem with rust, they come up with a lot of useful changes but then take ages to stabilize because the core team is overworked On the contrary, that has been one of Rust's biggest…
GP is referring to the article's title, as in "safe Rust", as in "Rust with no unsafe keyword", as in whether it has undefined behavior or not. Granted the premise is rather brittle, since all Cpp2Rust does is to…
And also one I'd like to see in more languages! Especially a simpler one, closer to C.
> If you don't use panics, you don't get the machinery. I'm not using panics, and yet I'm getting the machinery. That is where my frustration is coming from.
It is a fundamental language limitation, unless you want to claim that the core library (or rather what's left when using no_std) is not part of the language. The problem comes from a combination of three things: 1.…
I tried to use Rust for a tiny microcontroller (GD32VF103, 128KB flash). First of all, I was amazed by how much I could do with Rust (safe Rust, even), and how well it was interfacing with my handwritten RISC-V…
Pretty much everything except Haskell and the like can be considered as such. That's because closely following PL theory isn't always the right goal for a language. Ergonomics and pragmatism are far more important.
Languages, no. But for language-agnostic package managers, Nix/Guix and Gentoo are similar. Sadly, Gentoo is not great for managing per-project dependencies in the same way as is done by npm, pipenv, etc. Nix however…
Ah, okay. In that case I feel like the only sane way to approach this is to completely abolish null-terminated strings, and reimplement everything (including stuff like printf's format and arguments) in terms of strv.…
How does strv2cstr work? I assume it doesn't allocate, so not sure how it can add a null terminator.
> The concept of "a garbage-collected language" is not well-defined. There are languages, like Java, Rust, and Python that depend on a garbage collection mechanism, and languages like C, C++ and Zig, which don't. C++…
The list of features and anti-features looks amazing, that's just want I want from a simple systems language. However, the list of examples has... basically nothing. So it hasn't really proved that its set of features…
I'm a really big fan of Rust, but I have to challenge this, GP was clearly talking about the complexity of the language itself, and that one is high. Extra features and extra static checking add complexity. Extra…
Și
Moral of the story: A truly secure website would be a continuously morphing one where an LLM keeps rewriting and redeploying large parts of its code every minute, so that no attacker can keep up.
Very surprised to hear that, since editions are exactly the kind of mechanism Rust is using to make sure software will keep working unchanged for decades. The Rust compiler can build a 2024 edition application which…
> Then add in the fact that a change to history gets rippled down the descendent commits. This sounds interesting. Could you go into a bit more detail? I have 3 branches off of a single commit, update that commit, and…
The only thing this leads to is that you'll have hundreds of vendored dependencies, with a combined size impossible to audit yourself. But if you somehow do manage that, then you'll soon have hundreds of outdated…
Maybe this was a genius move made precisely to be ambiguous on whether it was April Fools or not... so that the author can later read the room and clarify whether it was or was not April Fools, without much repercussion…
That's not much different than other distros, because the way auto-update usually works, is it can't use root permissions or the system package manager (in any distro), so it has to install the newer version in $HOME.…
Interesting, although I checked and on NixOS the binary is just 29MB. It was statically linked, with just libc left as dynamic. I think 29MB is still huge for a terminal text editor, but nevertheless not "hundreds".
Will it be okay though? i32 to u64 has two ways to convert it: i32 -> u32 -> u64 i32 -> i64 -> u64 This matters with negative numbers, where the first one pads with 32 bits of 0, the second one pads it with 32 bits of…
Not quite, because depending on the compiler implementation / memory model, other things can also lead to UB, and thus be unsafe, e.g.: * data races in a multi-threaded program * type-casting to the wrong type (e.g. via…
Rust is not mentioned in the article. From HN's guidelines: > Otherwise please use the original title, unless it is misleading or linkbait; don't editorialize.
No mention of Guix. Has its situation improved? I remember waiting almost an hour on “guix pull” to catch up with its git repo on a fresh install.
> honestly thats the biggest problem with rust, they come up with a lot of useful changes but then take ages to stabilize because the core team is overworked On the contrary, that has been one of Rust's biggest…
GP is referring to the article's title, as in "safe Rust", as in "Rust with no unsafe keyword", as in whether it has undefined behavior or not. Granted the premise is rather brittle, since all Cpp2Rust does is to…
And also one I'd like to see in more languages! Especially a simpler one, closer to C.
> If you don't use panics, you don't get the machinery. I'm not using panics, and yet I'm getting the machinery. That is where my frustration is coming from.
It is a fundamental language limitation, unless you want to claim that the core library (or rather what's left when using no_std) is not part of the language. The problem comes from a combination of three things: 1.…
I tried to use Rust for a tiny microcontroller (GD32VF103, 128KB flash). First of all, I was amazed by how much I could do with Rust (safe Rust, even), and how well it was interfacing with my handwritten RISC-V…
Pretty much everything except Haskell and the like can be considered as such. That's because closely following PL theory isn't always the right goal for a language. Ergonomics and pragmatism are far more important.
Languages, no. But for language-agnostic package managers, Nix/Guix and Gentoo are similar. Sadly, Gentoo is not great for managing per-project dependencies in the same way as is done by npm, pipenv, etc. Nix however…
Ah, okay. In that case I feel like the only sane way to approach this is to completely abolish null-terminated strings, and reimplement everything (including stuff like printf's format and arguments) in terms of strv.…
How does strv2cstr work? I assume it doesn't allocate, so not sure how it can add a null terminator.
> The concept of "a garbage-collected language" is not well-defined. There are languages, like Java, Rust, and Python that depend on a garbage collection mechanism, and languages like C, C++ and Zig, which don't. C++…
The list of features and anti-features looks amazing, that's just want I want from a simple systems language. However, the list of examples has... basically nothing. So it hasn't really proved that its set of features…
I'm a really big fan of Rust, but I have to challenge this, GP was clearly talking about the complexity of the language itself, and that one is high. Extra features and extra static checking add complexity. Extra…
Și
Moral of the story: A truly secure website would be a continuously morphing one where an LLM keeps rewriting and redeploying large parts of its code every minute, so that no attacker can keep up.
Very surprised to hear that, since editions are exactly the kind of mechanism Rust is using to make sure software will keep working unchanged for decades. The Rust compiler can build a 2024 edition application which…
> Then add in the fact that a change to history gets rippled down the descendent commits. This sounds interesting. Could you go into a bit more detail? I have 3 branches off of a single commit, update that commit, and…
The only thing this leads to is that you'll have hundreds of vendored dependencies, with a combined size impossible to audit yourself. But if you somehow do manage that, then you'll soon have hundreds of outdated…
Maybe this was a genius move made precisely to be ambiguous on whether it was April Fools or not... so that the author can later read the room and clarify whether it was or was not April Fools, without much repercussion…
That's not much different than other distros, because the way auto-update usually works, is it can't use root permissions or the system package manager (in any distro), so it has to install the newer version in $HOME.…
Interesting, although I checked and on NixOS the binary is just 29MB. It was statically linked, with just libc left as dynamic. I think 29MB is still huge for a terminal text editor, but nevertheless not "hundreds".
Will it be okay though? i32 to u64 has two ways to convert it: i32 -> u32 -> u64 i32 -> i64 -> u64 This matters with negative numbers, where the first one pads with 32 bits of 0, the second one pads it with 32 bits of…
Not quite, because depending on the compiler implementation / memory model, other things can also lead to UB, and thus be unsafe, e.g.: * data races in a multi-threaded program * type-casting to the wrong type (e.g. via…
Rust is not mentioned in the article. From HN's guidelines: > Otherwise please use the original title, unless it is misleading or linkbait; don't editorialize.
No mention of Guix. Has its situation improved? I remember waiting almost an hour on “guix pull” to catch up with its git repo on a fresh install.