Serdar Yegulalp
Senior Writer

Rust 1.9 improves speed, error handling

news
May 27, 20163 mins

Mozilla's challenger to the C language isn't slowing down, as its latest version adds cross-compilation tools and API deprecation warnings

Rustaceans, rejoice.

Only a little more than a month after Rust 1.8 debuted with a new build system, here comes version 1.9. It’s outfitted with compilation speed overhauls, better cross-compilation tools, and enhanced error handling in the language itself.

This last addition provides the most direct boon for Rust developers. As explained in the blog post introducing version 1.9, it’s a set of stabilizations for, and additions to, the std::panic module. If a particular thread in a Rust program panics — that is, runs up against an unexpected error — a new API, catch_unwind, can intercept the panic process from another thread, allow it to be continued if needed (via resume_unwind), and thus allow the app as a whole to better deal with the resulting error.

Another major new addition is rustup, a toolchain manager for Rust that allows the developer to keep up to date with, and switch between, the Rust toolchain for different target platforms. Rust has traditionally allowed cross-compilation thanks to its LLVM compiler back end, but manually managing the toolchain around it hasn’t been as easy. Rustup closes that gap, although it doesn’t yet set up the C toolchain needed by some Rust components (e.g., to compile anything with dependencies in C).

“That functionality is not shipping today, but it’s something we hope to incorporate over the next few months,” write Rust’s maintainers.

Rust 1.9 includes some subtle but significant fixes that pave the way to speed up both program execution and compilation times. A new optimization, specialization, “allows generic code to automatically be specialized based on more specific type information” that can be leveraged for better performance in the future. Another fix makes for much speedier testing for equivalence, making some kinds of code compile a great deal faster.

Also new, and useful: APIs in libraries created by developers can now be tagged with deprecation warnings. Given how fast Rust’s ecosystem has been moving, including its culture of third-party libraries, this is more important than it might look, as it provides library developers with a graceful way to warn users when something is being eliminated — for instance, if it depends on a Rust feature that’s also being reworked or phased out.

The Rust development team tipped its hand last year about its goals for the language in 2016. Many of those goals are being swiftly met, like nailing down the standard library and enabling push-button cross-compilation. Still to be unveiled, though, is incremental compilation, allowing for faster project rebuilds — but the MIR additions to Rust back in April are a prelude to that.

Serdar Yegulalp

Serdar Yegulalp is a senior writer at InfoWorld. A veteran technology journalist, Serdar has been writing about computers, operating systems, databases, programming, and other information technology topics for 30 years. Before joining InfoWorld in 2013, Serdar wrote for Windows Magazine, InformationWeek, Byte, and a slew of other publications. At InfoWorld, Serdar has covered software development, devops, containerization, machine learning, and artificial intelligence, winning several B2B journalism awards including a 2024 Neal Award and a 2025 Azbee Award for best instructional content and best how-to article, respectively. He currently focuses on software development tools and technologies and major programming languages including Python, Rust, Go, Zig, and Wasm. Tune into his weekly Dev with Serdar videos for programming tips and techniques and close looks at programming libraries and tools.

More from this author