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

This was an exciting release cycle where we broke apart the libextra
library, introduced cross-crate syntax extensions and macros, improved the smart
pointer experience with the Deref trait, and improved error handling in I/O.
Outside of the compiler, this release has seen the introduction of a new RFC
process as well as support for nightly binary installers.

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.10 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

This release introduces some brand new methods to install Rust for Linux and
Mac OS X. In addition to a source tarball, binary installers are now available
for download in a variety of formats.

Source

* http://static.rust-lang.org/dist/rust-0.10.tar.gz
  http://static.rust-lang.org/dist/rust-0.10.tar.gz.asc
  SHA256 (of .tar.gz):
  c72cfbbf03016804a81d7b68e8258ffaf018f8f5a25550ad64571ce6c2642cf9

Windows installer

* http://static.rust-lang.org/dist/rust-0.10-install.exe
  http://static.rust-lang.org/dist/rust-0.10-install.exe.asc
  SHA256 (of .exe):
  ee7ea67845f5dd3b545b225135cca21fa5786baef4ab03f9f996f2e72bf40c6e

Linux binary tarballs

* http://static.rust-lang.org/dist/rust-0.10-x86_64-unknown-linux-gnu.tar.gz
  http://static.rust-lang.org/dist/rust-0.10-x86_64-unknown-linux-gnu.tar.gz.asc
  SHA256 (of .tar.gz):
  e5d6d490beee3c8f2d284f62e730193a92080d4cdf46bf972a8ddbec5bc16045

* http://static.rust-lang.org/dist/rust-0.10-i686-unknown-linux-gnu.tar.gz
  http://static.rust-lang.org/dist/rust-0.10-i686-unknown-linux-gnu.tar.gz.asc
  SHA256 (of .tar.gz):
  7e17912b23dc790ca8ff3272500beba41afc9a1cd923bbf7a606e7d21d3ea89a

Mac OS X binary installers

* http://static.rust-lang.org/dist/rust-0.10-x86_64-apple-darwin.pkg
  http://static.rust-lang.org/dist/rust-0.10-x86_64-apple-darwin.pkg.asc
  SHA256 (of .pkg):
  332253023b8f641b6d0b21289a1542521d83d1e77c6aa4d1a9b94c2927769407

* http://static.rust-lang.org/dist/rust-0.10-i686-apple-darwin.pkg
  http://static.rust-lang.org/dist/rust-0.10-i686-apple-darwin.pkg.asc
  SHA256 (of .pkg):
  26b5630083afd2286526128158e9d83fb9d4b7d965d9d89e6c6cf536105ed756

Mac OS X binary tarballs

* http://static.rust-lang.org/dist/rust-0.10-x86_64-apple-darwin.tar.gz
  http://static.rust-lang.org/dist/rust-0.10-x86_64-apple-darwin.tar.gz.asc
  SHA256 (of .tar.gz):
  ad0ad37886a43f0817f8115ae4e5daf17912fc31d258ebf79a73647bcc5f4eb8

* http://static.rust-lang.org/dist/rust-0.10-i686-apple-darwin.tar.gz
  http://static.rust-lang.org/dist/rust-0.10-i686-apple-darwin.tar.gz.asc
  SHA256 (of .tar.gz):
  96c51f784e0f5c13d02c1fa4f4ad35936c0396afd8e2217b07f9708be08e06bb

Thanks to everyone who contributed!

Regards,
The Rust Team

Version 0.10 (April 2014)
-------------------------

  * ~1500 changes, numerous bugfixes

  * Language
    * A new RFC process is now in place for modifying the language.
    * Patterns with `@`-pointers have been removed from the language.
    * Patterns with unique vectors (`~[T]`) have been removed from the
      language.
    * Patterns with unique strings (`~str`) have been removed from the
      language.
    * `@str` has been removed from the language.
    * `@[T]` has been removed from the language.
    * `@self` has been removed from the language.
    * `@Trait` has been removed from the language.
    * Headers on `~` allocations which contain `@` boxes inside the type for
      reference counting have been removed.
    * The semantics around the lifetimes of temporary expressions have changed,
      see #3511 and #11585 for more information.
    * Cross-crate syntax extensions are now possible, but feature gated. See
      #11151 for more information. This includes both `macro_rules!` macros as
      well as syntax extensions such as `format!`.
    * New lint modes have been added, and older ones have been turned on to be
      warn-by-default.
      * Unnecessary parentheses
      * Uppercase statics
      * Camel Case types
      * Uppercase variables
      * Publicly visible private types
      * `#[deriving]` with raw pointers
    * Unsafe functions can no longer be coerced to closures.
    * Various obscure macros such as `log_syntax!` are now behind feature gates.
    * The `#[simd]` attribute is now behind a feature gate.
    * Visibility is no longer allowed on `extern crate` statements, and
      unnecessary visibility (`priv`) is no longer allowed on `use` statements.
    * Trailing commas are now allowed in argument lists and tuple patterns.
    * The `do` keyword has been removed, it is now a reserved keyword.
    * Default type parameters have been implemented, but are feature gated.
    * Borrowed variables through captures in closures are now
considered soundly.
    * `extern mod` is now `extern crate`
    * The `Freeze` trait has been removed.
    * The `Share` trait has been added for types that can be shared among
      threads.
    * Labels in macros are now hygienic.
    * Expression/statement macro invocations can be delimited with `{}` now.
    * Treatment of types allowed in `static mut` locations has been tweaked.
    * The `*` and `.` operators are now overloadable through the `Deref` and
      `DerefMut` traits.
    * `~Trait` and `proc` no longer have `Send` bounds by default.
    * Partial type hints are now supported with the `_` type marker.
    * An `Unsafe` type was introduced for interior mutability. It is now
      considered undefined to transmute from `&T` to `&mut T` without using the
      `Unsafe` type.
    * The #[linkage] attribute was implemented for extern statics/functions.
    * The inner attribute syntax has changed from `#[foo];` to `#![foo]`.
    * `Pod` was renamed to `Copy`.

  * Libraries
    * The `libextra` library has been removed. It has now been decomposed into
      component libraries with smaller and more focused nuggets of
      functionality. The full list of libraries can be found on the
      documentation index page.
    * std: `std::condition` has been removed. All I/O errors are now propagated
      through the `Result` type. In order to assist with error handling, a
      `try!` macro for unwrapping errors with an early return and an lint for
      unused results has been added. See #12039 for more information.
    * std: The `vec` module has been renamed to `slice`.
    * std: A new vector type, `Vec<T>`, has been added in preparation for DST.
      This will become the only growable vector in the future.
    * std: `std::io` now has more public-reexports. Types such as
`BufferedReader`
      are now found at `std::io::BufferedReader` instead of
      `std::io::buffered::BufferedReader`.
    * std: `print` and `println` are no longer in the prelude, the `print!` and
      `println!` macros are intended to be used instead.
    * std: `Rc` now has a `Weak` pointer for breaking cycles, and it no longer
      attempts to statically prevent cycles.
    * std: The standard distribution is adopting the policy of pushing failure
      to the user rather than failing in libraries. Many functions (such as
      `slice::last()`) now return `Option<T>` instead of `T` + failing.
    * std: `fmt::Default` has been renamed to `fmt::Show`, and it now has a new
      deriving mode: `#[deriving(Show)]`.
    * std: `ToStr` is now implemented for all types implementing `Show`.
    * std: The formatting trait methods now take `&self` instead of `&T`
    * std: The `invert()` method on iterators has been renamed to `rev()`
    * std: `std::num` has seen a reduction in the genericity of its traits,
      consolidating functionality into a few core traits.
    * std: Backtraces are now printed on task failure if the environment
      variable `RUST_BACKTRACE` is present.
    * std: Naming conventions for iterators have been standardized. More details
      can be found on the wiki's style guide.
    * std: `eof()` has been removed from the `Reader` trait. Specific types may
      still implement the function.
    * std: Networking types are now cloneable to allow simultaneous
reads/writes.
    * std: `assert_approx_eq!` has been removed
    * std: The `e` and `E` formatting specifiers for floats have been added to
      print them in exponential notation.
    * std: The `Times` trait has been removed
    * std: Indications of variance and opting out of builtin bounds is done
      through marker types in `std::kinds::marker` now
    * std: `hash` has been rewritten, `IterBytes` has been removed, and
      `#[deriving(Hash)]` is now possible.
    * std: `SharedChan` has been removed, `Sender` is now cloneable.
    * std: `Chan` and `Port` were renamed to `Sender` and `Receiver`.
    * std: `Chan::new` is now `channel()`.
    * std: A new synchronous channel type has been implemented.
    * std: A `select!` macro is now provided for selecting over `Receiver`s.
    * std: `hashmap` and `trie` have been moved to `libcollections`
    * std: `run` has been rolled into `io::process`
    * std: `assert_eq!` now uses `{}` instead of `{:?}`
    * std: The equality and comparison traits have seen some reorganization.
    * std: `rand` has moved to `librand`.
    * std: `to_{lower,upper}case` has been implemented for `char`.
    * std: Logging has been moved to `liblog`.
    * collections: `HashMap` has been rewritten for higher performance and less
      memory usage.
    * native: The default runtime is now `libnative`. If `libgreen` is desired,
      it can be booted manually. The runtime guide has more information and
      examples.
    * native: All I/O functionality except signals has been implemented.
    * green: Task spawning with `libgreen` has been optimized with stack caching
      and various trimming of code.
    * green: Tasks spawned by `libgreen` now have an unmapped guard page.
    * sync: The `extra::sync` module has been updated to modern rust (and moved
      to the `sync` library), tweaking and improving various interfaces while
      dropping redundant functionality.
    * sync: A new `Barrier` type has been added to the `sync` library.
    * sync: An efficient mutex for native and green tasks has been implemented.
    * serialize: The `base64` module has seen some improvement. It treats
      newlines better, has non-string error values, and has seen general
      cleanup.
    * fourcc: A `fourcc!` macro was introduced
    * hexfloat: A `hexfloat!` macro was implemented for specifying floats via a
      hexadecimal literal.

  * Tooling
    * `rustpkg` has been deprecated and removed from the main repository. Its
      replacement, `cargo`, is under development.
    * Nightly builds of rust are now available
    * The memory usage of rustc has been improved many times throughout this
      release cycle.
    * The build process supports disabling rpath support for the rustc binary
      itself.
    * Code generation has improved in some cases, giving more information to the
      LLVM optimization passes to enable more extensive optimizations.
    * Debuginfo compatibility with lldb on OSX has been restored.
    * The master branch is now gated on an android bot, making building for
      android much more reliable.
    * Output flags have been centralized into one `--emit` flag.
    * Crate type flags have been centralized into one `--crate-type` flag.
    * Codegen flags have been consolidated behind a `-C` flag.
    * Linking against outdated crates now has improved error messages.
    * Error messages with lifetimes will often suggest how to annotate the
      function to fix the error.
    * Many more types are documented in the standard library, and new guides
      were written.
    * Many `rustdoc` improvements:
      * code blocks are syntax highlighted.
      * render standalone markdown files.
      * the --test flag tests all code blocks by default.
      * exported macros are displayed.
      * reexported types have their documentation inlined at the location of the
        first reexport.
      * search works across crates that have been rendered to the same output
        directory.

Contributors to Rust 0.10
------------------------

Adrien Tétar <adri-from...@hotmail.fr>
Alan Andrade <alan.andra...@gmail.com>
Alex Crichton <a...@alexcrichton.com>
Alex Whitney <aw1...@ic.ac.uk>
a_m0d <damien.sch...@gmail.com>
Andre Arko <an...@arko.net>
Andrew Chin <ac...@eminence32.net>
aochagavia <aochagavi...@gmail.com>
Arcterus <arcte...@mail.com>
Axel Viala <axel.vi...@darnuria.eu>
aydin.kim <aydin....@samsung.com>
b1nd <clint.ry...@gmail.com>
Ben Harris <m...@bharr.is>
Ben Noordhuis <i...@bnoordhuis.nl>
Ben Striegel <ben.strie...@gmail.com>
Birunthan Mohanathas <birunt...@mohanathas.com>
Björn Steinbrink <bstei...@gmail.com>
Brendan Zabarauskas <bjz...@yahoo.com.au>
Brian Anderson <bander...@mozilla.com>
Brian Leibig <brian.lei...@gmail.com>
Bruno de Oliveira Abinader <brun...@partner.samsung.com>
Byron Williams <by...@112percent.com>
Cadence Marseille <cadencemarsei...@gmail.com>
Carl-Anton Ingmarsson <ca.ingmars...@gmail.com>
Chris Morgan <m...@chrismorgan.info>
Chris Wong <lambda.fa...@gmail.com>
chromatic <chroma...@wgz.org>
Clark Gaebel <cg.wowus...@gmail.com>
Cole Mickens <cole.mick...@gmail.com>
Colin Sherratt <colin.sherr...@gmail.com>
comex <com...@gmail.com>
Corey Richardson <co...@octayn.net>
Daniel Fagnan <dnfag...@gmail.com>
Daniel MacDougall <dmacdoug...@gmail.com>
Daniel Micay <danielmi...@gmail.com>
Dave Hodder <d...@dmh.org.uk>
David Manescu <david.mane...@gmail.com>
Davis Silverman <sinistersn...@gmail.com>
Derek Chiang <derekchian...@gmail.com>
Derek Guenther <dguenth...@gmail.com>
Div Shekhar <d...@pagerduty.com>
Dmitry Promsky <dmi...@willworkforcookies.com>
Dmitry Vasiliev <d...@hlabs.org>
Douglas Young <rcxd...@gmail.com>
Dylan Braithwaite <dylanbraithwai...@gmail.com>
Eduard Bopp <eduard.b...@aepsil0n.de>
Eduard Burtescu <edy.b...@gmail.com>
Edward Wang <edward.yu.w...@gmail.com>
Edward Z. Yang <ezy...@cs.stanford.edu>
Ehsanul Hoque <ehsa...@ehsanul.com>
Erick Tryzelaar <erick.tryzel...@gmail.com>
Eunchong Yu <kroi...@gmail.com>
Felix Crux <fel...@felixcrux.com>
Felix S. Klock II <pnkfe...@pnkfx.org>
Flavio Percoco <flape...@gmail.com>
Florian Hahn <f...@fhahn.com>
Florian Zeitz <flo...@babelmonkeys.de>
Gábor Lehel <glaebho...@gmail.com>
Gary M. Josack <g...@byoteki.com>
gentlefolk <cemac...@gmail.com>
Geoffroy Couprie <geo.coup...@gmail.com>
George Papanikolaou <g3orge....@gmail.com>
gifnksm <makoto.nksm+git...@gmail.com>
Guillaume Pinot <texi...@texitoi.eu>
HeroesGrave <heroesgr...@gmail.com>
Hong Chulju <ang0123...@gmail.com>
Huon Wilson <dbau.pp+git...@gmail.com>
Ian Daniher <it.dani...@gmail.com>
Ivan Enderlin <ivan.ender...@hoa-project.net>
Jack Moffitt <j...@metajack.im>
Jag Talon <talon....@gmail.com>
Jake Kerr <koda...@gmail.com>
James Deng <cnjamesd...@gmail.com>
James Miller <ja...@aatch.net>
Jan Kobler <e...@koblersystems.de>
Jan Niklas Hasse <jha...@gmail.com>
Jason Fager <jfa...@gmail.com>
Jed Davis <j...@panix.com>
Jeff Olson <olson.jeff...@gmail.com>
JeremyLetang <letang.jer...@gmail.com>
joaoxsouls <joaoxso...@gmail.com>
Johannes Löthberg <johan...@kyriasis.com>
Johannes Muenzel <jmuen...@gmail.com>
Jonathan S <geree...@gmail.com>
Jorge Aparicio <japa...@linux.com>
Jyun-Yan You <jy...@cs.nctu.edu.tw>
Kang Seonghoon <public+...@mearie.org>
Keshav Kini <keshav.k...@gmail.com>
Kevin Ballard <ke...@sb.org>
Kiet Tran <ktt...@gmail.com>
klutzy <klutzytheklu...@gmail.com>
korenchkin <torstenwebe...@gmail.com>
kud1ing <git...@kudling.de>
kvark <kvar...@gmail.com>
Laurent Bonnans <bonnan...@gmail.com>
Liigo Zhuang <com.li...@gmail.com>
Lindsey Kuper <lind...@composition.al>
lpy <pylaurent1...@gmail.com>
Luca Bruno <lu...@debian.org>
lucy <ne.tet...@gmail.com>
Luqman Aden <la...@csclub.uwaterloo.ca>
Luqman Aden <m...@luqman.ca>
Marcel Rodrigues <marcel...@gmail.com>
Marvin Löbel <loebel.mar...@gmail.com>
Matt Brubeck <mbrub...@limpet.net>
Matthew McPherrin <m...@mcpherrin.ca>
Matthias Einwag <matthias.ein...@live.com>
Matthijs van der Vleuten <g...@zr40.nl>
Micah Chalmer <mi...@micahchalmer.net>
Michael Darakananda <pon...@gmail.com>
Michael Woerister <michaelwoerister@posteo>
Mickaël Delahaye <mickael.delah...@gmail.com>
Mike Boutin <mike.bou...@gmail.com>
mr.Shu <m...@shu.io>
Ms2ger <ms2...@gmail.com>
musitdev <philippe.delr...@free.fr>
Nathaniel Herman <nher...@college.harvard.edu>
Nick Cameron <ncame...@mozilla.com>
Nick Desaulniers <ndesaulni...@mozilla.com>
Nif Ward <nif.w...@gmail.com>
Niko Matsakis <n...@alum.mit.edu>
noam <n...@clusterfoo.com>
OGINO Masanori <masanori.og...@gmail.com>
Olle Jonsson <olle.jons...@gmail.com>
Palmer Cox <p...@lmercox.com>
Patrick Walton <pcwal...@mimiga.net>
Peter Marheine <pe...@taricorp.net>
Petter Remen <petter.re...@gmail.com>
Piotr Czarnecki <piocz...@gmail.com>
Piotr Zolnierek <p...@anixe.pl>
Q.P.Liu <qp...@yahoo.com>
Raphael Catolino <raphael.catol...@gmail.com>
Richard Diamond <wich...@vitalitystudios.com>
Robert Gawdzik <rgawd...@hotmail.com>
Ryan Scheel (Havvy) <ryan.ha...@gmail.com>
Salem Talha <salem.a.ta...@gmail.com>
Scott Jenkins <scottdjwa...@gmail.com>
Scott Lawrence <byt...@gmail.com>
Sean Chalmers <sclhian...@gmail.com>
Sean McArthur <sean.mons...@gmail.com>
Seo Sanghyeon <sanx...@gmail.com>
Shamir Khodzha <khodzha...@gmail.com>
SiegeLord <slab...@aim.com>
Simon Sapin <simon.sa...@exyr.org>
Stepan Koltsov <stepan.kolt...@gmail.com>
Sterling Greene <sterling.gre...@gmail.com>
Steven Fackler <sfack...@gmail.com>
Steven Stewart-Gallus <sstewartgallu...@mylangara.bc.ca>
Ted Horst <ted.ho...@earthlink.net>
Tobias Bucher <tobiasbucher5...@gmail.com>
Tomas Sedovic <to...@sedovic.cz>
Tom Lee <git...@tomlee.co>
TorstenWeber <torstenwebe...@gmail.com>
Trent Ogren <tedwar...@gmail.com>
Vadim Chugunov <vadi...@gmail.com>
Virgile Andreani <virgile.andre...@anbuco.fr>
WebeWizard <webewiz...@gmail.com>
William Ting <i...@williamting.com>
xales <xa...@naveria.com>
Yehuda Katz <wyc...@gmail.com>
Yuri Kunde Schlesner <yur...@yuriks.net>
Zach Kamsler <smoo.mas...@gmail.com>
Ziad Hatahet <hata...@gmail.com>
zslayton <zack.slay...@gmail.com>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to