Rust 1.2 Announcement

Original author: The Rust Core Team
  • Transfer
Stable Rust 1.2 and Beta Rust 1.3 cycles are ending today ! Read on for major changes or move on to more detailed release notes .

What is included in the stable release 1.2

As previously reported , Rust 1.2 brought two significant improvements to the compiler:

  • The overall increase in compiler performance, which is most noticeable in the packages hyper (compiles 1.16 times faster), html5ever (1.62 times), regex (1.32 times) and rust-encoding (1.35 times). You can see detailed performance statistics on this site (made by Nick Cameron), setting dates from 2015-05-15 to 2015-06-25.
  • Parallel code generation now works and gives a 33% increase in speed in the initial stages of compiling the Rust compiler on a quad-core machine. Parallel code generation is especially useful for debug builds because it prevents some optimizations from being used; but it can also be used with optimizations enabled, giving, in fact, a level -O1. You can activate parallel generation by passing a rustcflag -C codegen-units=N, where Nis the desired number of parallel threads.

Cargo performance has also improved significantly:

  • Assemblies that do not require recompilation (“no-op assemblies”) in large projects have become much faster; for example, in Servo, the build time fell from 5 seconds to 0.5 seconds.
  • Cargo now supports shared “target” directories in which compiled dependencies for different packages are cached, which significantly reduces the build time in complex projects.

Release 1.2 also included support for the MSVC (Microsoft Visual C) toolchain, in addition to GNU versions. As a result, Rust code can now directly link to code compiled by native Windows utilities. The compiler itself is able to bootstrap on MSVC, we already have preliminary nightly builds, and we are testing all rust-lang libraries on MSVC. There is still no support for unwinding the stack (the process ends in panic), but work is underway to implement it.

From a language point of view, in Rust 1.2, work was completed on supporting types with dynamic size , which made it possible for smart pointers Rcto work directly with arrays and trait objects, i.e., for example,Rc<[T]>completely ready for use. This improvement applies to all smart pointers from the standard library. Support for third-party pointer types is available in nightly builds and will soon be fully stabilized.

What's New in 1.3 beta

One of the most interesting developments in the 1.3 cycle was the creation of Rustonomicon - a new book on the "dark arts of advanced and insecure programming in Rust." So far, this book is only at the very beginning of writing, but now it contains a completely invaluable description of the finer aspects of Rust.

Cycle 1.3 also has performance improvements, mainly in the standard library:

We have also taken individual steps to pre-support Windows XP . Although we are not going to make Windows XP a “first-class” platform, it has now become possible to program in Rust under XP, if we avoid using individual elements of the standard library.

On the Cargo side, we added the ability to limit lint'ov , according to the previously adopted RFC . The idea of ​​this functionality is that the lint of the dependencies of your project should not stop you from compiling the project, which, in turn, will give us the opportunity to fine-tune the behavior of the lint without affecting the ecosystem as a whole.

Contributors Release 1.2

Stable release 1.2 is the result of the hard work of 180 people:

Aaron Turon
Abhishek Chanda
of Adolfo Ochagavía
of Aidan Hobson Sayers
of Akshay Chiwhane
Alex Burka
Alex Crichton
Alex a Stokes
Alexander Artemenko
Alexis Beingessner
by Andrea Canciani
Andrew Foote
Andrew Kensler
Andrew Straw
of Ariel Ben-the Yehuda
the Austin Hellyer
Barosl Lee
Ben Striegel
by Björn Steinbrink
Brian Anderson
Brian Campbell
Brian Leibig
Brian Quinlan
by Carol (Nichols || Goulding)
Chris Hellmuth
Christian Stadelmann
Chuck Bassett
Corey Farwell
Cornel Punga
Cruz Julian Bishop
Huseby Dave
David Campbell
David Stygstra
David Voit
Eduard Bopp
Eduard Burtescu
Eli Friedman
Emilio Cobos Álvarez
Emily Dunham
Eric Ye
Erik Michaels Ober-
Falco Hirschenberger
Felix S. Klock II
Geoffrey Thomas
Gleb Kozyrev
Guillaume Gomez
Gulshan Singh
Heejong Ahn
Huachao Huang
Huon Wilson
Ivan Ukhov
Iven Hsu
Jake Goulding
Jake Hickey
James Miller
Jared Roesch
Jeremy Schlatter
Jim Blandy
Johann Tuffe
Johannes Hoff
Johannes Oertel
the John to Hodge
of Jonathan Reem
Joshua Landau
by Kevin Ballard
Kubilay Kocak
Lee Jeffery
Leo Correa
Liigo Zhuang
Luca of Bruno
Luqman Aden
Manish Goregaokar
by Marcel Müller
by Marcus Klaas
Marin Atanasov Nikolov
by Markus Westerlind
by Martin Pool
by Marvin Löbel
Matej Lach
Mathieu by David
Matt Brubeck
Matthew Astley
Max Jacobson
the Maximilian Haack
Michael Layzell
Michael Macias
Michael Rosenberg
Michael Sproul
Michael Woerister
Mihnea Dobrescu-Balaur
Mikhail Zabaluev
Mohammed Attia
of Mário Feroldi
Nathan Long
Nathaniel Theis
Nick the Cameron
Nick Desaulniers
Nick the Fitzgerald
Nick Hamann
Nick Howell
Niko Matsakis
Nils Liberg
by Oliver 'ker' Schneider
by Oliver Schneider
Parker Moore
Pascal Hertleif
Paul Faria
Paul by Oliver
Peer Aramillo Irizar
by Peter Atashian
by Peter Elmers
Philip Munksgaard
Ralph Giles
Rein Henrichs
Ricardo Martins
Richo Healey
Ricky Taylor
The Russell Johnston
russell McClellan
by Ryan Pendleton
the Ryman
Rémi Audebert
Sae-the bom Kim
Sean Collins
Sean Gillespie
Sean by Patrick Santos
Seo Sanghyeon
Simon Sapin
Simonas Kazlauskas
by Steve Gury
by Steve Klabnik
Steven Allen
Steven Fackler
Steven by Walter
of Sébastien Marie
of Tamir Duberstein
by Thomas Karpiniec
Tshepang Lekhonkhobe
Ulrik Sverdrup
Vadim Petrochenkov
Wei-Ming Yang
Wesley Wiser
Wilfred Hughes
Will Andrews
Will Engler
Xuefeng Wu
Yongqian Li
York Xiang
ben fleis
ray glover

Also popular now: