Rust 1.100

335 points67 comments5 hours ago
nirinor

Woohoo, that's a release! My personal favorites:

- Stabilize never type

- Stabilize custom allocators

- Introduced minimum publish age configurations, also known as dependency cooldowns. When the relevant config is set, the resolver ignores versions published more recently than that, unless they are already in Cargo.lock. (RFC 3923) docs #17335

- cargo-install: now uses the existing lockfile in the .crate tarball by default. --locked in cargo install becomes a no-op. #17388

show comments
n_u

> Cargo now reports unused dependencies to users, e.g.

> warning: unused dependency `tracing-subscriber` --> Cargo.toml:23:1 | 23 | tracing-subscriber.workspace = true | ^^^^^^^^^^^^^^^^^^ | = note: `cargo::unused_dependencies` is set to `warn` by default help: consider removing the dependency on `tracing-subscriber`

Heck yes

show comments
ammar_az

This release is so big that multiple useful stabilized API aren't event mentioned in the blog post like:

- bool::toggle() https://doc.rust-lang.org/stable/std/primitive.bool.html#met...

- Box::map() https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#m...

- str::trim_prefix(), str::trim_suffix, Path::trim_prefix()

show comments
levkk

DropGuard is nice. This is basically `defer` in Go I think.

show comments
steveklabnik

A monumental release. Thanks to everyone who worked so hard on all of these long-term features that are finally landing.

ComputerGuru

It would probably be better to wait for the official release blog post for submission to HN, no?

show comments
jadbox

Is the compiler any faster now? Compiling takes forever. I'm also tired of always having to do "cargo clean" everyday to clear out 90gb of temp files.

show comments
pmichaud

Nice work... but I still yearn for a stable ABI!

show comments
mkl

> cargo install ignores the minimum publish age, for both the installed crate and its dependencies

Why is that? It seems like that makes min-publish-age much less effective.

show comments
ustad

“Never type” - Feel like I’m stupid for not having a clue what that means.

show comments
uncivilized

The blog post says min-publish-age depends on the registry recording a pubtime. Why would pubtime not exist in the index?

lukax

Awesome timing.

I just spent last few days fixing arena leaks (Bumpalo doesn't call drop) and had to use allocator-api2 for Vec::new_in which is now available in stable Rust.

https://github.com/bancek/rust-sass/pull/1

show comments
karavelov

Finally, "never" happened

show comments
hobofan

Thanks to all the maintainers and contributors! That's one of the biggest releases in a long time!

show comments
fluffiac

yay never type!!

when can we expect `Result::into_ok` and `Result::into_err` to land? the blog post includes the `infallible_unwrap` demo which is the exact functionality these two functions implement. i wonder why they didn't release these at the same time as never?

show comments
wpollock

This is great news! Well done Rust team!

As this release seems to include breaking changes, shouldn't the major version number have been bumped, as per semver?

Has the Rust book(s) been updated to include the new APIs?

Sol-

Do language features still matter except insofar as they make the LLM verification loop better?

show comments
einpoklum

Would you say that having 100 releases of the language more of a positive thing or a negative thing?

For comparison, C has had, say, 4 versions, and C++ 7 had versions (depending on how you count). But - Java has had 27 main versions and probably more than a 100 if you count minor versions/updates.

shevy-java

> The never type, spelled ! in code

Is that the raven that says Ni?

https://www.youtube.com/watch?v=bLiXjaPqSyY

fallingmeat

wait other things not named jensen happened today? whoa

show comments
KolmogorovComp

I haven’t seen any blog on the topic but I fully believe in the age of coding agents and LLM backward compatibility is a bit less important than it has been in the past and should be relaxed in some cases to allow language to move faster.

show comments
Surac

Still non ABI. Why is ist so hard? what is holding them back. Andy why does it need a unsave keyword? can't they marshal types like other languages?

show comments