The Rust community is pleased to announce version 0.12.0 of the Rust
compiler and tools. Rust is a systems programming language with a
focus on safety, performance and concurrency.

This release features an abundance of new and improved documentation,
including The Rust Guide, which replaces the original tutorial. The
standard library has continued to be carefully reexamined and updated
for consistency with Rust coding conventions. Cargo, Rust's package
manager has made many advancements, and has been adopted by most Rust
libraries. Windows support has received renewed attention, including a
64-bit port. Finally, a number of minor language features intended
to improve ergonomics have landed.

The brief release notes are included in this announcement, and there
is further explanation in the detailed release [notes] on the wiki.
Documentation and all the links in this email are available on the
[website]. As usual, version 0.12.0 should be considered an alpha
release, suitable for early adopters and language enthusiasts. Please
file [bugs] and join the [fun].

[website]: http://www.rust-lang.org
[notes]: https://github.com/mozilla/rust/wiki/Doc-detailed-release-notes
[bugs]: https://github.com/mozilla/rust/issues
[fun]: https://github.com/mozilla/rust/wiki/Note-guide-for-new-contributors

Source

* https://static.rust-lang.org/dist/rust-0.12.0.tar.gz
  https://static.rust-lang.org/dist/rust-0.12.0.tar.gz.asc
  SHA256 (of .tar.gz):
  883e66b24d90d9957c5c538469fcde6f0668e5fb6448beecfc60884060e769b7

Windows installers

* https://static.rust-lang.org/dist/rust-0.12.0-x86_64-w64-mingw32.exe
  https://static.rust-lang.org/dist/rust-0.12.0-x86_64-w64-mingw32.exe.asc
  SHA256 (of .exe):
  6545567ea70ce0bfd6dd06c233f15e5685541862ed99be7f9072be197c229999

* https://static.rust-lang.org/dist/rust-0.12.0-i686-w64-mingw32.exe
  https://static.rust-lang.org/dist/rust-0.12.0-i686-w64-mingw32.exe.asc
  SHA256 (of .exe):
  2a0681c3e1624b07a150d5a9f2f638f879a5290c76a702b694e74358441fa1d3

Linux binary tarballs

* https://static.rust-lang.org/dist/rust-0.12.0-x86_64-unknown-linux-gnu.tar.gz
  
https://static.rust-lang.org/dist/rust-0.12.0-x86_64-unknown-linux-gnu.tar.gz.asc
  SHA256 (of .tar.gz):
  bb3e2eda2bd25690c58a3925ca175dedc27fedada33af4159fdb63dae9cc41a3

* https://static.rust-lang.org/dist/rust-0.12.0-i686-unknown-linux-gnu.tar.gz
  
https://static.rust-lang.org/dist/rust-0.12.0-i686-unknown-linux-gnu.tar.gz.asc
  SHA256 (of .tar.gz):
  2a96a5662e1248da0c2dc3394646b7e75b2c05b2df332cb6f388bbbb6cb75999

Mac OS X binary installers

* https://static.rust-lang.org/dist/rust-0.12.0-x86_64-apple-darwin.pkg
  https://static.rust-lang.org/dist/rust-0.12.0-x86_64-apple-darwin.pkg.asc
  SHA256 (of .pkg):
  5ebe4b55a8175270eaffff33d7b607be26c47a15e20ad7e4460fa77f0a503f9f

* https://static.rust-lang.org/dist/rust-0.12.0-i686-apple-darwin.pkg
  https://static.rust-lang.org/dist/rust-0.12.0-i686-apple-darwin.pkg.asc
  SHA256 (of .pkg):
  e937f3665259fad31777ff2c09d581a757ccd8600357de99245690e811efe19a

Mac OS X binary tarballs

* https://static.rust-lang.org/dist/rust-0.12.0-x86_64-apple-darwin.tar.gz
  https://static.rust-lang.org/dist/rust-0.12.0-x86_64-apple-darwin.tar.gz.asc
  SHA256 (of .tar.gz):
  b1a5321de58a5994fcd87ce155642fa0e56ccb3cf0d43979f0afb0382faf033b

* https://static.rust-lang.org/dist/rust-0.12.0-i686-apple-darwin.tar.gz
  https://static.rust-lang.org/dist/rust-0.12.0-i686-apple-darwin.tar.gz.asc
  SHA256 (of .tar.gz):
  56b4c4467d3471276cd0dd811b3e76b82b01755dd3f994eeae1d342199e0db83

Thanks to everyone who contributed!

Regards,
The Rust Team


Version 0.12.0 (October 2014)
-----------------------------

  * ~1900 changes, numerous bugfixes

  * Highlights

    * The introductory documentation (now called The Rust Guide) has
      been completely rewritten, as have a number of supplementary
      guides.
    * Rust's package manager, Cargo, continues to improve and is
      sometimes considered to be quite awesome.
    * Many API's in `std` have been reviewed and updated for
      consistency with the in-development Rust coding
      guidelines. The standard library documentation tracks
      stabilization progress.
    * Minor libraries have been moved out-of-tree to the rust-lang org
      on GitHub: uuid, semver, glob, num, hexfloat, fourcc. They can
      be installed with Cargo.
    * Lifetime elision allows lifetime annotations to be left off of
      function declarations in many common scenarios.
    * Rust now works on 64-bit Windows.

  * Language
    * Indexing can be overloaded with the `Index` and `IndexMut`
      traits.
    * The `if let` construct takes a branch only if the `let` pattern
      matches, currently behind the 'if_let' feature gate.
    * 'where clauses', a more flexible syntax for specifying trait
      bounds that is more aesthetic, have been added for traits and
      free functions. Where clauses will in the future make it
      possible to constrain associated types, which would be
      impossible with the existing syntax.
    * A new slicing syntax (e.g. `[0..4]`) has been introduced behind
      the 'slicing_syntax' feature gate, and can be overloaded with
      the `Slice` or `SliceMut` traits.
    * The syntax for matching of sub-slices has been changed to use a
      postfix `..` instead of prefix (.e.g. `[a, b, c..]`), for
      consistency with other uses of `..` and to future-proof
      potential additional uses of the syntax.
    * The syntax for matching inclusive ranges in patterns has changed
      from `0..3` to `0...4` to be consistent with the exclusive range
      syntax for slicing.
    * Matching of sub-slices in non-tail positions (e.g.  `[a.., b,
      c]`) has been put behind the 'advanced_slice_patterns' feature
      gate and may be removed in the future.
    * Components of tuples and tuple structs can be extracted using
      the `value.0` syntax, currently behind the `tuple_indexing`
      feature gate.
    * The `#[crate_id]` attribute is no longer supported; versioning
      is handled by the package manager.
    * Renaming crate imports are now written `extern crate foo as bar`
      instead of `extern crate bar = foo`.
    * Renaming use statements are now written `use foo as bar` instead
      of `use bar = foo`.
    * `let` and `match` bindings and argument names in macros are now
      hygienic.
    * The new, more efficient, closure types ('unboxed closures') have
      been added under a feature gate, 'unboxed_closures'. These will
      soon replace the existing closure types, once higher-ranked
      trait lifetimes are added to the language.
    * `move` has been added as a keyword, for indicating closures
      that capture by value.
    * Mutation and assignment is no longer allowed in pattern guards.
    * Generic structs and enums can now have trait bounds.
    * The `Share` trait is now called `Sync` to free up the term
      'shared' to refer to 'shared reference' (the default reference
      type.
    * Dynamically-sized types have been mostly implemented,
      unifying the behavior of fat-pointer types with the rest of the
      type system.
    * As part of dynamically-sized types, the `Sized` trait has been
      introduced, which qualifying types implement by default, and
      which type parameters expect by default. To specify that a type
      parameter does not need to be sized, write `<Sized? T>`. Most
      types are `Sized`, notable exceptions being unsized arrays
      (`[T]`) and trait types.
    * Closures can return `!`, as in `|| -> !` or `proc() -> !`.
    * Lifetime bounds can now be applied to type parameters and object
      types.
    * The old, reference counted GC type, `Gc<T>` which was once
      denoted by the `@` sigil, has finally been removed. GC will be
      revisited in the future.

  * Libraries
    * Library documentation has been improved for a number of modules.
    * Bit-vectors, collections::bitv has been modernized.
    * The url crate is deprecated in favor of
      http://github.com/servo/rust-url, which can be installed with
      Cargo.
    * Most I/O stream types can be cloned and subsequently closed from
      a different thread.
    * A `std::time::Duration` type has been added for use in I/O
      methods that rely on timers, as well as in the 'time' crate's
      `Timespec` arithmetic.
    * The runtime I/O abstraction layer that enabled the green thread
      scheduler to do non-thread-blocking I/O has been removed, along
      with the libuv-based implementation employed by the green thread
      scheduler. This will greatly simplify the future I/O work.
    * `collections::btree` has been rewritten to have a more
      idiomatic and efficient design.

  * Tooling
    * rustdoc output now indicates the stability levels of API's.
    * The `--crate-name` flag can specify the name of the crate
      being compiled, like `#[crate_name]`.
    * The `-C metadata` specifies additional metadata to hash into
      symbol names, and `-C extra-filename` specifies additional
      information to put into the output filename, for use by the
      package manager for versioning.
    * debug info generation has continued to improve and should be
      more reliable under both gdb and lldb.
    * rustc has experimental support for compiling in parallel
      using the `-C codegen-units` flag.
    * rustc no longer encodes rpath information into binaries by
      default.

  * Misc
    * Stack usage has been optimized with LLVM lifetime annotations.
    * Official Rust binaries on Linux are more compatible with older
      kernels and distributions, built on CentOS 5.10.


Contributors to Rust 0.12.0
---------------------------

Aaron Turon <atu...@mozilla.com>
Adolfo Ochagavía <aochagavi...@gmail.com>
Adrien Brault <adrien.bra...@gmail.com>
Adrien Tétar <adri-from...@hotmail.fr>
Ahmed Charles <achar...@outlook.com>
Alex Crichton <a...@alexcrichton.com>
Alex Gaynor <alex.gay...@gmail.com>
Alexander Light <scialexli...@gmail.com>
Alexandre Gagnon <alxg...@gmail.com>
Alexis Beingessner <a.beingess...@gmail.com>
Alfie John <alf...@fastmail.fm>
Alisdair Owens <awo...@zepler.net>
Amy Unger <amy.e.un...@gmail.com>
Andreas Tolfsen <a...@mozilla.com>
Andrew Dunham <and...@du.nham.ca>
Andrew Poelstra <as...@sfu.ca>
Angus Lees <g...@inodes.org>
Anton Lofgren <alofg...@op5.com>
Ariel Ben-Yehuda <arie...@mail.tau.ac.il>
Arjan Topolovec <arjan....@gmail.com>
Arpad Borsos <arpad.bor...@googlemail.com>
Austin Bonander <austin.bonan...@gmail.com>
Ben Gamari <bgamari.f...@gmail.com>
Ben Noordhuis <i...@bnoordhuis.nl>
Benjamin Adamson <adamson.benja...@gmail.com>
Benjamin Herr <b...@0x539.de>
Bheesham Persaud <bheesham.pers...@live.ca>
Birunthan Mohanathas <birunt...@mohanathas.com>
Björn Steinbrink <bstei...@gmail.com>
Brendan Zabarauskas <bjz...@yahoo.com.au>
Brian Anderson <bander...@mozilla.com>
Brian Campbell <lam...@continuation.org>
Brian Koropoff <bkorop...@gmail.com>
Cameron Zwarich <zwar...@mozilla.com>
Carol Nichols <carol.nich...@gmail.com>
Chris Morgan <m...@chrismorgan.info>
Chris Nixon <chris.ni...@sigma.me.uk>
Christoph Burgdorf <christoph.burgd...@bvsn.org>
Chuck Ries <chuck.r...@gmail.com>
Clark Gaebel <cgae...@mozilla.com>
Cole Mickens <cole.mick...@gmail.com>
Colin Davidson <colrdavid...@gmail.com>
Conrad Kleinespel <conr...@conradk.com>
Corey Ford <co...@coreyford.name>
Corey Richardson <co...@octayn.net>
DJUrsus <coli...@divitu.com>
Damien Grassart <dam...@grassart.com>
Damien Radtke <drad...@channeliq.com>
Dan Albert <danalb...@google.com>
Dan Burkert <d...@danburkert.com>
Dan Connolly <d...@madmode.com>
Dan Schatzberg <schatzberg....@gmail.com>
Daniel Brooks <db...@db48x.net>
Daniel Hofstetter <daniel.hofstet...@42dh.com>
Daniel Micay <danielmi...@gmail.com>
David Vazgenovich Shakaryan <dvshakar...@gmail.com>
Derecho <dere...@sector5d.org>
Derek Harland <derek.harl...@finq.co.nz>
Dzmitry Malyshau <kvar...@gmail.com>
Eduard Burtescu <edy.b...@gmail.com>
Eduardo Bautista <m...@eduardobautista.com>
Edward Wang <edward.yu.w...@gmail.com>
Erick Tryzelaar <erick.tryzel...@gmail.com>
Evan Klitzke <e...@eklitzke.org>
Falco Hirschenberger <falco.hirschenber...@gmail.com>
Felix Raimundo <felix.raimu...@telecom-paristech.fr>
Felix S. Klock II <pnkfe...@pnkfx.org>
Florian Gilcher <florian.gilc...@asquera.de>
Florian Hahn <f...@fhahn.com>
Florian Zeitz <flo...@babelmonkeys.de>
Gioele Barabucci <gio...@svario.it>
Guillaume Pinot <texi...@texitoi.eu>
Hugo Jobling <he...@thisishugo.com>
Huon Wilson <dbau.pp+git...@gmail.com>
Ilya Dmitrichenko <i...@xively.com>
Ivan Petkov <ivanppet...@gmail.com>
Jack Heizer <jack.hei...@gmail.com>
Jake Kaufman <theevoca...@gmail.com>
Jake Scott <jake....@gmail.com>
Jakub Wieczorek <ja...@jakub.cc>
James Hurst <jamesrhu...@users.noreply.github.com>
James Lal <ja...@lightsofapollo.com>
James Rowe <jrowe...@gmail.com>
Jason Fager <jfa...@gmail.com>
Jason Thompson <ja...@jthompson.ca>
Jauhien Piatlicki <jauh...@gentoo.org>
Jimmie Elvenmark <flug...@gmail.com>
Jiří Stránský <ji...@jistr.com>
John Clements <cleme...@racket-lang.org>
John Gallagher <jgallag...@bignerdranch.com>
John Kåre Alsaker <john.kare.alsa...@gmail.com>
John Schmidt <john.schmid...@gmail.com>
Jonas Hietala <trade...@gmail.com>
Jonathan Bailey <jbai...@mozilla.com>
Jonathan Boyett <jonat...@failingservers.com>
Jonathan Reem <jonathan.r...@gmail.com>
Jonathan S <geree...@gmail.com>
Jorge Aparicio <japa...@linux.com>
Joseph Crail <jbcr...@gmail.com>
Joseph Martin <python...@gmail.com>
Julian Orth <ju.o...@gmail.com>
Jyun-Yan You <jyyou...@gmail.com>
Kasey Carrothers <kaseyc....@gmail.com>
Keegan McAllister <kmcallis...@mozilla.com>
Kevin Ballard <ke...@sb.org>
Kevin Butler <haq...@gmail.com>
Kevin Mehall <k...@kevinmehall.net>
Kevin Walter <kevin.walter.priv...@googlemail.com>
Kiet Tran <ktt...@gmail.com>
LemmingAvalanche <haugsb...@yahoo.no>
Liigo Zhuang <com.li...@gmail.com>
Luqman Aden <m...@luqman.ca>
Manish Goregaokar <manishsm...@gmail.com>
Markus Unterwaditzer <mar...@unterwaditzer.net>
Martin Olsson <mar...@minimum.se>
Marvin Löbel <loebel.mar...@gmail.com>
Matej Lach <matej.l...@gmail.com>
Mateusz Czapliński <czapko...@gmail.com>
Mathijs van de Nes <g...@mathijs.vd-nes.nl>
Matt Brubeck <mbrub...@limpet.net>
Matt Coffin <mcoffi...@gmail.com>
Michael Gehring <m...@ebfe.org>
Michael Kainer <kaini1...@gmail.com>
Michael Matuzak <mmatu...@gmail.com>
Michael Neumann <mneum...@ntecs.de>
Michael Sproul <micspr...@gmail.com>
Michael Woerister <michaelwoerister@posteo>
Mike Boutin <mike.bou...@gmail.com>
Mike Robinson <mikeprobinso...@gmail.com>
NODA, Kai <noda...@gmail.com>
Nathan Froyd <froy...@gmail.com>
Nathan Typanski <ntypan...@gmail.com>
Nick Cameron <ncame...@mozilla.com>
Nick Howell <howelln...@gmail.com>
Niko Matsakis <n...@alum.mit.edu>
O S K Chaitanya <o...@medhas.org>
OGINO Masanori <masanori.og...@gmail.com>
Oren Hazi <oren.h...@gmail.com>
P1start <rewi-git...@whanau.org>
Pablo Brasero <pa...@pablobm.com>
Palmer Cox <p...@lmercox.com>
Paolo Falabella <paolo.falabe...@gmail.com>
Patrick Reisert <kpreis...@gmail.com>
Patrick Walton <pcwal...@mimiga.net>
Patrick Yevsukov <patrickyevsu...@users.noreply.github.com>
Peer Aramillo Irizar <peer.aramillo.iri...@gmail.com>
Peter Atashian <retep...@gmail.com>
Peter Marheine <pe...@taricorp.net>
Peter Minten <pe...@pminten.nl>
Phil Dawes <p...@phildawes.net>
Philipp Gesang <phg42...@gmail.com>
Piotr Czarnecki <piocz...@gmail.com>
Piotr Jawniak <sawye...@gmail.com>
Prudhvi Krishna Surapaneni <m...@prudhvi.net>
Pythoner6 <python...@gmail.com>
Rahul Horé <hore.ra...@gmail.com>
Randati <antti...@gmail.com>
Ricardo M. Correia <rcorr...@wizy.org>
Richard Diamond <wich...@vitalitystudios.com>
Richo Healey <ri...@psych0tik.net>
Robert Clipsham <rob...@octarineparrot.com>
Robert Gawdzik ☢ <rgawd...@hotmail.com>
Russell <rpjoh...@gmail.com>
Ruud van Asseldonk <d...@veniogames.com>
Samuel Neves <sne...@dei.uc.pt>
Santiago Pastorino <santi...@wyeworks.com>
Sebastian Zaha <sebastian.z...@gmail.com>
Sebastien Martini <s...@dbzteam.org>
Seo Sanghyeon <sanx...@gmail.com>
SiegeLord <slab...@aim.com>
Simon Persson <si...@flaskpost.org>
Simon Sapin <simon.sa...@exyr.org>
Squeaky <squeaky...@gmx.com>
Steve Klabnik <st...@steveklabnik.com>
Steven Fackler <sfack...@gmail.com>
Stuart Pernsteiner <spernstei...@mozilla.com>
Ted Horst <ted.ho...@earthlink.net>
Till Hoeppner <t...@hoeppner.ws>
Tim Joseph Dumol <t...@timdumol.com>
Tobba <tobias.haegerma...@gmail.com>
Tobias Bucher <tobiasbucher5...@gmail.com>
Tom Jakubowski <t...@crystae.net>
Tshepang Lekhonkhobe <tshep...@gmail.com>
Vadim Chugunov <vadi...@gmail.com>
Valerii Hiora <valerii.hi...@gmail.com>
Victor Berger <victor.ber...@m4x.org>
Vinzent Steinberg <vinzent.steinb...@gmail.com>
Vladimir Pouzanov <farcal...@gmail.com>
Yazhong Liu <yorkiefi...@gmail.com>
Yuri Albuquerque <yuridenom...@gmail.com>
Zbigniew Siciarz <antyq...@gmail.com>
dgoon <dg...@dgoon.net>
donkopotamus <gene...@chocolate-fish.com>
fort <e...@mail.com>
gamazeps <gamaz...@gmail.com>
inrustwetrust <inrustwetr...@users.noreply.github.com>
jamesluke <jamesl...@users.noreply.github.com>
joaoxsouls <joaoxso...@gmail.com>
klutzy <klutzytheklu...@gmail.com>
kwantam <kwan...@gmail.com>
masklinn <github....@masklinn.net>
mdinger <mdinger.bugzi...@gmail.com>
mitchmindtree <mitchell.nord...@gmail.com>
nham <hamann.n...@gmail.com>
smenardpw <sebast...@knoglr.com>
tinaun <tina...@gmail.com>
ville-h <ville3.14...@gmail.com>
wickerwaka <martin.don...@gmail.com>
zzmp <z...@umich.edu>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to