5 ms·
> It uses an unsafe code block. it's okay, it's Rust unsafe
by godelski 1y ago
> It uses an unsafe code block.
it's okay, it's Rust unsafe
- charcircuit 1y agoNo, it's not. It's false advertising and lifting an unsafe that high in the call stack is dangerous and a sign of poor code quality. The point of advertising no unsafe in the readme is so that people do not have to worry if the author handled unsafe correctly.
- hatefulmoron 1y agoWithout it, we can't use the quantum enhanced string, which is safe because it's written in Rust.
- charcircuit 1y agoIt's written using unsafe Rust which means that the compiler will not be able to verify that it is safe. It's not guaranteed to be safe just because it is written in Rust. Please understand this, the author of this repo is spreading incorrect information.
- hatefulmoron 1y agoYou seem to be saying that Rust code can be unsafe, perhaps you're thinking of the profoundly unsafe and deprecated C or C++ languages?
- charcircuit 1y agoI recommend reading through this section of the The Rust Programming Language book to learn more about the existence of Unsafe Rust which is a part of Rust and not a different language like C or C++. https://doc.rust-lang.org/book/ch20-01-unsafe-rust.html https://doc.rust-lang.org/book/ch20-01-unsafe-rust.html
- hatefulmoron 1y agoThe article says it right there: unsafe is used to give you unsafe superpowers. This is important for the quantum entanglement that the string uses. Unsafe brings the power (superpowers enabled by the compiler), while the Rust compiler ensures everything is safe. Rust.
- charcircuit 1y ago>while the Rust compiler ensures everything is safe. Rust. This is where you are mistaken. Quoting the book: >Be warned, however, that you use unsafe Rust at your own risk: if you use unsafe code incorrectly, problems can occur due to memory unsafety, such as null pointer dereferencing. With unsafe rust the compiler no longer ensures everything is safe and it is up to the programmer to ensure that it is.
- hatefulmoron 1y agoYou're confused by the word 'unsafe', which is a misnomer. Rust. The point of 'unsafe' is to indicate that the compiler should be extra careful when compiling the code, because you're about to do something that only a C/C++ programmer would do. Rust sees this and is extra careful. As in your quote, the compiler makes sure we're not using it incorrectly. Rust.
- charcircuit 1y ago>is to indicate that the compiler should be extra careful when compiling the code No, it disables some static analysis making it less careful when compiling. Please reread the chapters I linked to you because it seems like you fundamentally misunderstand what unsafe rust is. I'm happy to answer any questions you may have to clarify it.
- hatefulmoron 1y agoI literally just asked ChatGPT and Claude, they both clarified to me that Rust is safe. The website for Rust even says so. If you have any questions, I would be happy to forward them to my ChatGPT Pro subscription, and then relay the answer back to you. Rust is an AI native language, it's best to start there.
- godelski 1y agoBut what about the quantum compiler?
- vlovich123 1y agoThe difference between a zealot and an evangelist is the ability to understand when someone is making a joke. I’ll let you figure out how you’re coming across here on your own as a growth exercise.
- johnisgood 1y agoI cannot tell if parent is making a joke, or is dead serious. They won.
- godelski 1y agohttps://github.com/jedisct1/yes-rs/blob/main/src/main.rs#L1233
- Khaine 1y agoI think you missed the joke
- uecker 1y agoNo, no. Rust's unsafe is fine. After all unsafe is not a problem because it is directly obvious just by looking at the source of your 200 dependencies. If you still have doubts you can make sure everything it is ok simply by writing "SAFETY" next to it to point out that it is safe (btw: not having this is a serious omission in the yes-rs project). And anyway, the compiler still does basically almost all checks! This rest is entirely obvious in Rust. For example, there can never be a subtle exception-related issue that make this difficult to analyze because in Rust it is called panic. And if there is still should be a mistake, then this does not count because it was not the fault of Rust but yours. (This is totally different to C where even the most-expert programmer can never know when he is going to free memory or doing pointer arithmetic. This could literally occur completely surprisingly in every line of code!)
- hatefulmoron 1y agoRust uses AI to ensure that C/C++ programmer mistakes do not happen in unsafe blocks. "unsafe" is a misnomer.