Our great sponsors
-
gecko-dev
Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Interesting that this is basically the same point as a comment on another submission last week from the same blog: https://news.ycombinator.com/item?id=27386666
> But they never made this complaint in the actual Bugzilla where someone could consider their feedback, they skipped straight to the "complain via blog post" phase. [...] My advice to the author is that perhaps they should extend a little more charity and "just ask" first, before they jump at the opportunity to complain in public - without having mentioned the issue to anyone with the ability to fix it.
Which comment links in turn to another post, for which the blogger writes,
> I would file a bug report but I cannot imagine that Fedora would accept it. They already know that this feature doesn't work; it's right there in the DKMS manpage. It's there anyway because, well, I don't know. This is the most user-hostile decision I think I've ever seen Fedora make.
but in fact the issue was fixed within a week of reporting it.
Firefox, in particular, uses the not-so-secret escape switch to unlock Rust nightly features on Rust stable. A bunch of folks on the Rust team are pretty unhappy about this (see e.g. https://github.com/rust-lang/cargo/issues/6627), but it is the current situation. So "Firefox broke after I ran rustup" is a very different complaint from "My code, on Rust stable, without the secret escape switch broke after I ran rustup," and the blame (if there is any blame at all, which is unclear without the actual error report) is on the Firefox developers, not the Rust developers.
In the general case, the Rust folks care a lot about backwards compatibility, but in turn they do that with an eye towards never having a Rust 2.0. They've taken a lot of innovative steps towards making Rust 1.x usable indefinitely, including the nightly/unstable system, the epoch system, crater, etc. A consequence of staying on Rust 1.x indefinitely is that you cannot possibly be bug-for-bug compatible with Rust 1.0 and Cargo 1.0 for all theoretically possible code (see Hyrum's Law: https://www.hyrumslaw.com/). However, if something breaks in the real world, report it, and I expect the Rust developers will be sympathetic and try to fix it. Without any indication of what broke, nobody can do anything with this post except get unactionably mad at other people, and that's pretty useless for actually getting things done.
The author is, of course, free to blog whatever he likes. But I think the HN community should stop upvoting his clickbait-titled posts.
Wow, what a confusing codebase. https://github.com/mozilla/gecko-dev/tree/d36cf98aa85f24ceef... This package documents a "minimum supported rust version" then goes on to set RUSTC_BOOTSTRAP (cirumventing, enabling experimental features). Very mixed signals - I'm pretty disappointed to see documentation say one thing and then the code do another.
Oh, I see. I only vaguely remembered some changeset regarding it. I must have been mistaken, then, and it's still in use.
In any case, sneakily using nightly features can make using a different Rust version problematic, since these features are free of any stability guarantees.
Arch Linux carries a rather large patch updating some vendored dependency in order to make Firefox 78 compile with a newer Rust. https://github.com/archlinux/svntogit-packages/tree/packages...
Semantic versioning is nice. Shouldn't it be adhered to?
https://semver.org/
However targeted, it is a risk to Firefox.
That crate in question uses slice_strip https://github.com/rust-lang/rust/issues/73413 which is entirely frivolous - just an ergonomics feature that can be reimplemented easily. Now the feature in question has been stabilized, but the crate still needs to be updated for that.
Related posts
- Is there something "different" about Cargo's resolver in GitHub Actions?
- Sudden 99% + Build Time Improvement Going from 1.66.1 to 1.71.0
- Is it possible to make Rust Foundation powerless? Or to dismantle it?
- Does Cargo's new sparse protocol save our disk space?
- SHA512 and its implementation in Noir - An Aragon Research Blog