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 <[email protected]>
Alan Andrade <[email protected]>
Alex Crichton <[email protected]>
Alex Whitney <[email protected]>
a_m0d <[email protected]>
Andre Arko <[email protected]>
Andrew Chin <[email protected]>
aochagavia <[email protected]>
Arcterus <[email protected]>
Axel Viala <[email protected]>
aydin.kim <[email protected]>
b1nd <[email protected]>
Ben Harris <[email protected]>
Ben Noordhuis <[email protected]>
Ben Striegel <[email protected]>
Birunthan Mohanathas <[email protected]>
Björn Steinbrink <[email protected]>
Brendan Zabarauskas <[email protected]>
Brian Anderson <[email protected]>
Brian Leibig <[email protected]>
Bruno de Oliveira Abinader <[email protected]>
Byron Williams <[email protected]>
Cadence Marseille <[email protected]>
Carl-Anton Ingmarsson <[email protected]>
Chris Morgan <[email protected]>
Chris Wong <[email protected]>
chromatic <[email protected]>
Clark Gaebel <[email protected]>
Cole Mickens <[email protected]>
Colin Sherratt <[email protected]>
comex <[email protected]>
Corey Richardson <[email protected]>
Daniel Fagnan <[email protected]>
Daniel MacDougall <[email protected]>
Daniel Micay <[email protected]>
Dave Hodder <[email protected]>
David Manescu <[email protected]>
Davis Silverman <[email protected]>
Derek Chiang <[email protected]>
Derek Guenther <[email protected]>
Div Shekhar <[email protected]>
Dmitry Promsky <[email protected]>
Dmitry Vasiliev <[email protected]>
Douglas Young <[email protected]>
Dylan Braithwaite <[email protected]>
Eduard Bopp <[email protected]>
Eduard Burtescu <[email protected]>
Edward Wang <[email protected]>
Edward Z. Yang <[email protected]>
Ehsanul Hoque <[email protected]>
Erick Tryzelaar <[email protected]>
Eunchong Yu <[email protected]>
Felix Crux <[email protected]>
Felix S. Klock II <[email protected]>
Flavio Percoco <[email protected]>
Florian Hahn <[email protected]>
Florian Zeitz <[email protected]>
Gábor Lehel <[email protected]>
Gary M. Josack <[email protected]>
gentlefolk <[email protected]>
Geoffroy Couprie <[email protected]>
George Papanikolaou <[email protected]>
gifnksm <[email protected]>
Guillaume Pinot <[email protected]>
HeroesGrave <[email protected]>
Hong Chulju <[email protected]>
Huon Wilson <[email protected]>
Ian Daniher <[email protected]>
Ivan Enderlin <[email protected]>
Jack Moffitt <[email protected]>
Jag Talon <[email protected]>
Jake Kerr <[email protected]>
James Deng <[email protected]>
James Miller <[email protected]>
Jan Kobler <[email protected]>
Jan Niklas Hasse <[email protected]>
Jason Fager <[email protected]>
Jed Davis <[email protected]>
Jeff Olson <[email protected]>
JeremyLetang <[email protected]>
joaoxsouls <[email protected]>
Johannes Löthberg <[email protected]>
Johannes Muenzel <[email protected]>
Jonathan S <[email protected]>
Jorge Aparicio <[email protected]>
Jyun-Yan You <[email protected]>
Kang Seonghoon <[email protected]>
Keshav Kini <[email protected]>
Kevin Ballard <[email protected]>
Kiet Tran <[email protected]>
klutzy <[email protected]>
korenchkin <[email protected]>
kud1ing <[email protected]>
kvark <[email protected]>
Laurent Bonnans <[email protected]>
Liigo Zhuang <[email protected]>
Lindsey Kuper <[email protected]>
lpy <[email protected]>
Luca Bruno <[email protected]>
lucy <[email protected]>
Luqman Aden <[email protected]>
Luqman Aden <[email protected]>
Marcel Rodrigues <[email protected]>
Marvin Löbel <[email protected]>
Matt Brubeck <[email protected]>
Matthew McPherrin <[email protected]>
Matthias Einwag <[email protected]>
Matthijs van der Vleuten <[email protected]>
Micah Chalmer <[email protected]>
Michael Darakananda <[email protected]>
Michael Woerister <michaelwoerister@posteo>
Mickaël Delahaye <[email protected]>
Mike Boutin <[email protected]>
mr.Shu <[email protected]>
Ms2ger <[email protected]>
musitdev <[email protected]>
Nathaniel Herman <[email protected]>
Nick Cameron <[email protected]>
Nick Desaulniers <[email protected]>
Nif Ward <[email protected]>
Niko Matsakis <[email protected]>
noam <[email protected]>
OGINO Masanori <[email protected]>
Olle Jonsson <[email protected]>
Palmer Cox <[email protected]>
Patrick Walton <[email protected]>
Peter Marheine <[email protected]>
Petter Remen <[email protected]>
Piotr Czarnecki <[email protected]>
Piotr Zolnierek <[email protected]>
Q.P.Liu <[email protected]>
Raphael Catolino <[email protected]>
Richard Diamond <[email protected]>
Robert Gawdzik <[email protected]>
Ryan Scheel (Havvy) <[email protected]>
Salem Talha <[email protected]>
Scott Jenkins <[email protected]>
Scott Lawrence <[email protected]>
Sean Chalmers <[email protected]>
Sean McArthur <[email protected]>
Seo Sanghyeon <[email protected]>
Shamir Khodzha <[email protected]>
SiegeLord <[email protected]>
Simon Sapin <[email protected]>
Stepan Koltsov <[email protected]>
Sterling Greene <[email protected]>
Steven Fackler <[email protected]>
Steven Stewart-Gallus <[email protected]>
Ted Horst <[email protected]>
Tobias Bucher <[email protected]>
Tomas Sedovic <[email protected]>
Tom Lee <[email protected]>
TorstenWeber <[email protected]>
Trent Ogren <[email protected]>
Vadim Chugunov <[email protected]>
Virgile Andreani <[email protected]>
WebeWizard <[email protected]>
William Ting <[email protected]>
xales <[email protected]>
Yehuda Katz <[email protected]>
Yuri Kunde Schlesner <[email protected]>
Zach Kamsler <[email protected]>
Ziad Hatahet <[email protected]>
zslayton <[email protected]>
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to