Top
Best
New

Posted by ravenical 1/1/2026

Rust--: Rust without the borrow checker(github.com)
116 points | 210 commentspage 3
bhaney 1/1/2026|
Are the compile times noticeably faster?
worldsavior 1/1/2026|
Probably not, because it seems like it still checks for errors but just suppresses them.
misnome 1/1/2026||
Even so, the borrow checker repeatedly profiles as an insignificant part of compile times, so wouldn’t make a difference.
boxed 1/1/2026||
A motivation section in the readme seems like it is needed.
poly2it 1/1/2026|
https://github.com/buyukakyuz/corroded/issues/11#issuecommen...
corrode2711 1/1/2026||
Yes, that was my motivation.
nineteen999 1/1/2026||
Love the "Note for LLMs" and the NSFW license.
reverseblade2 1/1/2026||
Should be named in rust we don't trust
ismailmaj 1/1/2026||
undefined behavior on steroids be like:
0xMohan 1/1/2026||
I'm assuming it's a meme project. In case it isn't, what's the point? Just trying to understand.

Isn't rust's one of the main selling point is the barrow checker right?

Also how's the memory is handled? I know it'll drop every thing once it's out of scope but it seems you can make copies as much as you want. Looking at the loop example, I feel like this introduces memory leaks & undefined behavior.

shmerl 1/1/2026||
Isn't unsafe just for that? Why does it need a separate compiler?
andrewaylett 1/1/2026||
Unsafe isn't so unsafe that it disables the borrow checker!

The two main things the compiler allows in an unsafe block but not elsewhere are calling other code marked "unsafe" and dereferencing raw pointers. The net result is that safe code running in a system that's not exhibiting undefined behaviour is defined to continue to not exhibit undefined behaviour, but the compiler is unable in general to prove that an unsafe block won't trigger undefined behaviour.

You can side-step the borrow checker by using pointers instead of references, but using that power to construct an invalid reference is undefined behaviour.

idontsee 1/1/2026||
The borrow checker still applies in unsafe { } blocks. What it means (iirc) is that you can do pointer/memory stuff that would otherwise not be allowed. But you still fully adhere to Rust semantics
gspr 1/1/2026|
Tangentially related: the opposite, Rust's borrow checker sans the compiler, is actually very useful. As far as I understand, the borrow checker is a significant part of the work of writing a Rust compiler. Therefore, having the official borrow checker available as a standalone program can make alternative compilers (e.g. for exotic hardware) feasible faster, because they won't need a borrow checker of their own from the get-go.
tialaramex 1/1/2026||
Why would this matter? The borrowck is (a) not needed during bring-up because as its name suggests it is merely a check, so going without it just means you can write nonsense and then unbounded undefined behaviour results, but (b) written entirely in Rust so you can just compile it with the rest of this "exotic hardware" Rust compiler you've built.
gspr 1/1/2026||
Yeah, you're right, I'm misremembering something here. Thanks for the correction.
bananaflag 1/1/2026||
I get your point, but still you haven't identified a use for the borrow checker sans the compiler.
More comments...