44 ms·
For as long as Rust has existed, no-one who is writing rust actually wants to use a compiler version that's any older than the newest. The language keeps adding
by Tuna-Fish 6y ago
For as long as Rust has existed, no-one who is writing rust actually wants to use a compiler version that's any older than the newest. The language keeps adding good stuff in every version. I thought it would calm down a bit after NLL, but now everyone is salivating for const generics, which will land in 1.41... and in a whole lot of versions after that, as they split up the feature into smaller, easier to implement and study chunks. The language simply hasn't reached the level of maturity of C++ where people yawn at the new features that are going to be added.
> Most distributions have an LTS that is supported for 5 to 10 years. You won't get the newest, hottest compiler on those platforms.
Yes, you do, because you won't be using the distribution-supplied compiler because like the entire rest of the rust developer community you are using rustup.
- linkdd 6y agoWhat if you're in a constrained environment, there is no rustup installed, and you don't have the permissions to install it? This issue certainly occurred with a lot of C/C++ projects over the past 30 years, why would Rust be exempt of that issue in the future?
- rapsey 6y agoIf someone is working in an insane environment then that is his problem and also highly unlikely to be using Rust anyway. Why should library developers care about keeping compatibility with old Rust compiler versions for some arbitrary amount of time?
- sanxiyn 6y agoThat's easy to answer. Because users want that. Of course developers are free to ignore such users, and such users will choose a different library.
- Ar-Curunir 6y agorustup is installed within the user's home directory. If you can't write to your own home, then what can you do on this device that involves compiling code?
- jcelerier 6y ago> rustup is installed within the user's home directory. If you can't write to your own home, then what can you do on this device that involves compiling code? there are plenty of companies when you don't have the right to import any new executable code (coming from "outside") in office computers.
- linkdd 6y agoSmall example in one of my previous job: Application was built using Java/SpringBoot, and the CI/CD was based on Jenkins. We had no control over the version of maven/jdk installed within the Jenkins, and the network policies did not authorize outgoing traffic (so no curling rustup). Only one company repository (based on Nexus) was available. Basically, we were users of a company provided/constrained platform to build our applications using a curated list of tools that has been audited by another team. If we wanted to add a dependency not present in the provided repository, it would require time for the audit and integration. Time we did not necessarily had. Now, with Rust/rustup/Cargo, the company would have provided a specific set of Rust versions and a private crate repository. I doubt that the auditing team would have time to add a new Rust version every week. If a crate present on the private repository is updated upstream and requires a more recent Rust version, the crate update will be delayed until the Rust version is audited/validated/integrated. IMHO, this is a very common use case, since companies like to split concerns in different specialized teams.
- pjmlp 6y agoEasy, using system compilers and home mounted as noexec, quite common in corporate UNIX deployments with IT managed development servers that the devs connect from their workstations.
- steveklabnik 6y agoThere is a huge community wide discussion about this. Characterizing it as “no-one” completely ignores that some of the most prolific and vocal community members have advocated for expressly supporting older Rusts. One of the core issues here, imo, is that it is unclear which Rust is the oldest one to be supported. That requires a clarity in understanding the pros and cons of each one, and simply due to there being more releases of rustc, it’s a little less clear which version gets you the most bang for your buck here. I agree that some of this is a function of the new-ness of the language. I think once (if) we start an LTS program, that will help, and is partially why I desire such a thing. https://rust-lang.github.io/rfcs/2495-min-rust-version.html https://rust-lang.github.io/rfcs/2495-min-rust-version.html is an example of a feature we’re adding to help people do this kind of thing. It’s small but it’s a start.