Rust 1.2 Announcement
- 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 .
As previously reported , Rust 1.2 brought two significant improvements to the compiler:
Cargo performance has also improved significantly:
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
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.
Stable release 1.2 is the result of the hard work of 180 people:
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 arustc
flag-C codegen-units=N
, whereN
is 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
Rc
to 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:
- Substring search now uses a more efficient algorithm .
- Zero filling improvements that speed up
Vec::resize
andRead::read_to_end
. - The implementation is
Read::read_to_end
specialized forstdin
andFile
, resulting in additional performance gains. - Implementation
PartialEq
on sections became much faster .
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:
list
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
FuGangqiang
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
Jexell
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
Lorenz
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
Ms2ger
Murarth
of Mário Feroldi
Nathan Long
Nathaniel Theis
Nick the Cameron
Nick Desaulniers
Nick the Fitzgerald
Nick Hamann
Nick Howell
Niko Matsakis
Nils Liberg
OlegTsyba
by Oliver 'ker' Schneider
by Oliver Schneider
P1start
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
by Tim RINGENBACH
Tshepang Lekhonkhobe
Ulrik Sverdrup
Vadim Petrochenkov
Wei-Ming Yang
Wesley Wiser
Wilfred Hughes
Will Andrews
Will Engler
Xuefeng Wu
XuefengWu
Yongqian Li
York Xiang
Z1
ben fleis
benaryorg
bluss
bors
clatour
diwic
dmgawel
econoplas
frankamp
funkill
inrustwetrust
joliv
klutzy
marcell
mdinger
olombard
peferron
ray glover
saml
simplex
sumito3478
webmobster
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
FuGangqiang
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
Jexell
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
Lorenz
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
Ms2ger
Murarth
of Mário Feroldi
Nathan Long
Nathaniel Theis
Nick the Cameron
Nick Desaulniers
Nick the Fitzgerald
Nick Hamann
Nick Howell
Niko Matsakis
Nils Liberg
OlegTsyba
by Oliver 'ker' Schneider
by Oliver Schneider
P1start
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
by Tim RINGENBACH
Tshepang Lekhonkhobe
Ulrik Sverdrup
Vadim Petrochenkov
Wei-Ming Yang
Wesley Wiser
Wilfred Hughes
Will Andrews
Will Engler
Xuefeng Wu
XuefengWu
Yongqian Li
York Xiang
Z1
ben fleis
benaryorg
bluss
bors
clatour
diwic
dmgawel
econoplas
frankamp
funkill
inrustwetrust
joliv
klutzy
marcell
mdinger
olombard
peferron
ray glover
saml
simplex
sumito3478
webmobster