| ▲ | rwz 16 hours ago | |
> Nope, this is demonstrably false because Rust has its own invariants around its types and the codebase is violating a lot of them. I'm not sure I'm following what you're saying here. In the rewrite blog post it has been stated that the Rust port landed in a place where it passes 100% of the existing test suite and does so without some of the known memory leaks of the Zig version that they were aware of and didn't know how to address. Sure, there's no guarantee that the port didn't introduce new bugs and most likely it did, but the 1.4 version has not been released yet, so I don't think a direct comparison of a long-time "stable" version and the just-landed full rewrite is meaningfully helpful. > "Potential memory issue" can originate in unsafe blocks and safe code that are able to alternate the input condition of these unsafe blocks. Guess what? That still counts towards 100% in this code base, hence the abomination remark. But that just means that once you get rid of the unsafe block, you're pretty much guaranteed by the Rust compiler to be memory-safe. This means that all your potential memory landmines are annotated in the code and once you disarm them all, you're memory-safe. I don't understand how what you're saying contradicts any of my statements. > Not as easy as it sounds. They are like threads in a yarn ball, if there are one or two ends visible it's easier to sort them out. Still easier than the Zig version, where all the same things you've mentioned apply, but also there's no visible indication of progress and issues are unmarked and could be pretty much anywhere. > It's too early to declare it as anything remotely close to a win, optimistically saying. Based on the rewrite blog post it's pretty clear that the Rust version is outperforming the Zig version by pretty much every measurable metric at this point. I think the backlash is mostly focused on the ideological opposition to fully AI-authored 1MLOC+ PR approach they took. | ||
| ▲ | endospore 15 hours ago | parent [-] | |
> In the rewrite blog post They can't mention what they don't know. And that's the exact reason I'm against this: doing a port without being able to tell what is correct is asking for a disaster, obviously. I've checked their posts and blogs for a few times, and I'm quite sure they don't know any of these to write about them. > the 1.4 version has not been released yet Let's hope the repeated delays (it was scheduled for last week) are not for quality issues, otherwise I'll only be half correct. It appears that all the MIRI errors are not stopping them though. (They have a script to run it but most probably it just fails and they don't care. Personally I'm not executing any of bun's code to avoid summoning nasal demons, so I actually don't know for sure) > get rid of the unsafe block Would be possible if they are not disregarding everything else going for numbers. E.g. they are actively increasing the unsafe surface by rewriting some code in SIMD C++ (https://github.com/oven-sh/bun/pull/33032). As if no Rust solutions already exist. > Still easier than the Zig version Well, this is true but only realizable if they know how to deal with the new problems emerging during the process. My current conclusion is that they don't. > ideological For me it's methodological as explained above. | ||