Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Alex Crichton <alex-Hluqmi6eSQjQFizaE/u3fw <at> public.gmane.org>
Subject: Rust 0.10 Released
Newsgroups: gmane.comp.lang.rust.devel
Date: Thursday 3rd April 2014 18:23:42 UTC (over 3 years ago)
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`, 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` 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 
Alan Andrade 
Alex Crichton 
Alex Whitney 
a_m0d 
Andre Arko 
Andrew Chin 
aochagavia 
Arcterus 
Axel Viala 
aydin.kim 
b1nd 
Ben Harris 
Ben Noordhuis 
Ben Striegel 
Birunthan Mohanathas 
Björn Steinbrink 
Brendan Zabarauskas 
Brian Anderson 
Brian Leibig 
Bruno de Oliveira Abinader

Byron Williams 
Cadence Marseille

Carl-Anton Ingmarsson

Chris Morgan 
Chris Wong 
chromatic 
Clark Gaebel 
Cole Mickens 
Colin Sherratt 
comex 
Corey Richardson 
Daniel Fagnan 
Daniel MacDougall 
Daniel Micay 
Dave Hodder 
David Manescu 
Davis Silverman 
Derek Chiang 
Derek Guenther 
Div Shekhar 
Dmitry Promsky 
Dmitry Vasiliev 
Douglas Young 
Dylan Braithwaite

Eduard Bopp 
Eduard Burtescu 
Edward Wang 
Edward Z. Yang 
Ehsanul Hoque 
Erick Tryzelaar 
Eunchong Yu 
Felix Crux 
Felix S. Klock II 
Flavio Percoco 
Florian Hahn 
Florian Zeitz 
Gábor Lehel 
Gary M. Josack 
gentlefolk 
Geoffroy Couprie 
George Papanikolaou 
gifnksm 
Guillaume Pinot 
HeroesGrave 
Hong Chulju 
Huon Wilson 
Ian Daniher 
Ivan Enderlin 
Jack Moffitt 
Jag Talon 
Jake Kerr 
James Deng 
James Miller 
Jan Kobler 
Jan Niklas Hasse 
Jason Fager 
Jed Davis 
Jeff Olson 
JeremyLetang 
joaoxsouls 
Johannes Löthberg 
Johannes Muenzel 
Jonathan S 
Jorge Aparicio 
Jyun-Yan You 
Kang Seonghoon 
Keshav Kini 
Kevin Ballard 
Kiet Tran 
klutzy 
korenchkin 
kud1ing 
kvark 
Laurent Bonnans 
Liigo Zhuang 
Lindsey Kuper 
lpy 
Luca Bruno 
lucy 
Luqman Aden 
Luqman Aden 
Marcel Rodrigues 
Marvin Löbel 
Matt Brubeck 
Matthew McPherrin 
Matthias Einwag 
Matthijs van der Vleuten 
Micah Chalmer 
Michael Darakananda 
Michael Woerister 
Mickaël Delahaye

Mike Boutin 
mr.Shu 
Ms2ger 
musitdev 
Nathaniel Herman

Nick Cameron 
Nick Desaulniers 
Nif Ward 
Niko Matsakis 
noam 
OGINO Masanori 
Olle Jonsson 
Palmer Cox 
Patrick Walton 
Peter Marheine 
Petter Remen 
Piotr Czarnecki 
Piotr Zolnierek 
Q.P.Liu 
Raphael Catolino 
Richard Diamond 
Robert Gawdzik 
Ryan Scheel (Havvy) 
Salem Talha 
Scott Jenkins 
Scott Lawrence 
Sean Chalmers 
Sean McArthur 
Seo Sanghyeon 
Shamir Khodzha 
SiegeLord 
Simon Sapin 
Stepan Koltsov 
Sterling Greene 
Steven Fackler 
Steven Stewart-Gallus

Ted Horst 
Tobias Bucher 
Tomas Sedovic 
Tom Lee 
TorstenWeber 
Trent Ogren 
Vadim Chugunov 
Virgile Andreani 
WebeWizard 
William Ting 
xales 
Yehuda Katz 
Yuri Kunde Schlesner 
Zach Kamsler 
Ziad Hatahet 
zslayton 
 
CD: 57ms