[rust-dev] Rust 0.11.0 Released

Alex Crichton alex at crichton.co
Wed Jul 2 11:07:08 PDT 2014


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

While this was a very active development cycle, it was largely focused on
polishing the type system and libraries. The major technical focuses this
time were implementing infrastructure for dynamically sized types and
refactoring the standard library. This release also marks the complete
removal of the `~` and `@` syntax in favor of library types `Box` and
`Gc`.

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

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

Windows installer

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

Linux binary tarballs

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

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

Mac OS X binary installers

* http://static.rust-lang.org/dist/rust-0.11.0-x86_64-apple-darwin.pkg
  http://static.rust-lang.org/dist/rust-0.11.0-x86_64-apple-darwin.pkg.asc
  SHA256 (of .pkg):
  1183d6c8ab021f4049a2906c1527f705bae4bb4935aea897f4860eb5337363c3

* http://static.rust-lang.org/dist/rust-0.11.0-i686-apple-darwin.pkg
  http://static.rust-lang.org/dist/rust-0.11.0-i686-apple-darwin.pkg.asc
  SHA256 (of .pkg):
  8f5a1fe491d83c6be0a3082f0ac8504c89eed38263ae0ac0fad15d8c02e3b267

Mac OS X binary tarballs

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

* http://static.rust-lang.org/dist/rust-0.11.0-i686-apple-darwin.tar.gz
  http://static.rust-lang.org/dist/rust-0.11.0-i686-apple-darwin.tar.gz.asc
  SHA256 (of .tar.gz):
  93d6e6e98d00df3e946e4f7765172ad522a118dd34f1fac73ba74d43df92698b

Thanks to everyone who contributed!

Regards,
The Rust Team

Version 0.11.0 (July 2014)
-------------------------

  * ~1700 changes, numerous bugfixes

  * Language
    * ~[T] has been removed from the language. This type is superseded by
      the Vec<T> type.
    * ~str has been removed from the language. This type is superseded by
      the String type.
    * ~T has been removed from the language. This type is superseded by the
      Box<T> type.
    * @T has been removed from the language. This type is superseded by the
      standard library's std::gc::Gc<T> type.
    * Struct fields are now all private by default.
    * Vector indices and shift amounts are both required to be a `uint`
      instead of any integral type.
    * Byte character, byte string, and raw byte string literals are now all
      supported by prefixing the normal literal with a `b`.
    * Multiple ABIs are no longer allowed in an ABI string
    * The syntax for lifetimes on closures/procedures has been tweaked
      slightly: `<'a>|A, B|: 'b + K -> T`
    * Floating point modulus has been removed from the language; however it
      is still provided by a library implementation.
    * Private enum variants are now disallowed.
    * The `priv` keyword has been removed from the language.
    * A closure can no longer be invoked through a &-pointer.
    * The `use foo, bar, baz;` syntax has been removed from the language.
    * The transmute intrinsic no longer works on type parameters.
    * Statics now allow blocks/items in their definition.
    * Trait bounds are separated from objects with + instead of : now.
    * Objects can no longer be read while they are mutably borrowed.
    * The address of a static is now marked as insignificant unless the
      #[inline(never)] attribute is placed it.
    * The #[unsafe_destructor] attribute is now behind a feature gate.
    * Struct literals are no longer allowed in ambiguous positions such as
      if, while, match, and for..in.
    * Declaration of lang items and intrinsics are now feature-gated by
      default.
    * Integral literals no longer default to `int`, and floating point
      literals no longer default to `f64`. Literals must be suffixed with an
      appropriate type if inference cannot determine the type of the
      literal.
    * The Box<T> type is no longer implicitly borrowed to &mut T.
    * Procedures are now required to not capture borrowed references.

  * Libraries
    * The standard library is now a "facade" over a number of underlying
      libraries. This means that development on the standard library should
      be speeder due to smaller crates, as well as a clearer line between
      all dependencies.
    * A new library, libcore, lives under the standard library's facade
      which is Rust's "0-assumption" library, suitable for embedded and
      kernel development for example.
    * A regex crate has been added to the standard distribution. This crate
      includes statically compiled regular expressions.
    * The unwrap/unwrap_err methods on Result require a Show bound for
      better error messages.
    * The return types of the std::comm primitives have been centralized
      around the Result type.
    * A number of I/O primitives have gained the ability to time out their
      operations.
    * A number of I/O primitives have gained the ability to close their
      reading/writing halves to cancel pending operations.
    * Reverse iterator methods have been removed in favor of `rev()` on
      their forward-iteration counterparts.
    * A bitflags! macro has been added to enable easy interop with C and
      management of bit flags.
    * A debug_assert! macro is now provided which is disabled when
      `--cfg ndebug` is passed to the compiler.
    * A graphviz crate has been added for creating .dot files.
    * The std::cast module has been migrated into std::mem.
    * The std::local_data api has been migrated from freestanding functions
      to being based on methods.
    * The Pod trait has been renamed to Copy.
    * jemalloc has been added as the default allocator for types.
    * The API for allocating memory has been changed to use proper alignment
      and sized deallocation
    * Connecting a TcpStream or binding a TcpListener is now based on a
      string address and a u16 port. This allows connecting to a hostname as
      opposed to an IP.
    * The Reader trait now contains a core method, read_at_least(), which
      correctly handles many repeated 0-length reads.
    * The process-spawning API is now centered around a builder-style
      Command struct.
    * The :? printing qualifier has been moved from the standard library to
      an external libdebug crate.
    * Eq/Ord have been renamed to PartialEq/PartialOrd. TotalEq/TotalOrd
      have been renamed to Eq/Ord.
    * The select/plural methods have been removed from format!. The escapes
      for { and } have also changed from \{ and \} to {{ and }},
      respectively.
    * The TaskBuilder API has been re-worked to be a true builder, and
      extension traits for spawning native/green tasks have been added.

  * Tooling
    * All breaking changes to the language or libraries now have their
      commit message annotated with `[breaking-change]` to allow for easy
      discovery of breaking changes.
    * The compiler will now try to suggest how to annotate lifetimes if a
      lifetime-related error occurs.
    * Debug info continues to be improved greatly with general bug fixes and
      better support for situations like link time optimization (LTO).
    * Usage of syntax extensions when cross-compiling has been fixed.
    * Functionality equivalent to GCC & Clang's -ffunction-sections,
      -fdata-sections and --gc-sections has been enabled by default
    * The compiler is now stricter about where it will load module files
      from when a module is declared via `mod foo;`.
    * The #[phase(syntax)] attribute has been renamed to #[phase(plugin)].
      Syntax extensions are now discovered via a "plugin registrar" type
      which will be extended in the future to other various plugins.
    * Lints have been restructured to allow for dynamically loadable lints.
    * A number of rustdoc improvements:
      * The HTML output has been visually redesigned.
      * Markdown is now powered by hoedown instead of sundown.
      * Searching heuristics have been greatly improved.
      * The search index has been reduced in size by a great amount.
      * Cross-crate documentation via `pub use` has been greatly improved.
      * Primitive types are now hyperlinked and documented.
    * Documentation has been moved from static.rust-lang.org/doc to
      doc.rust-lang.org
    * A new sandbox, play.rust-lang.org, is available for running and
      sharing rust code examples on-line.
    * Unused attributes are now more robustly warned about.
    * The dead_code lint now warns about unused struct fields.
    * Cross-compiling to iOS is now supported.
    * Cross-compiling to mipsel is now supported.
    * Stability attributes are now inherited by default and no longer apply
      to intra-crate usage, only inter-crate usage.
    * Error message related to non-exhaustive match expressions have been
      greatly improved.

Contributors to Rust 0.11.0
---------------------------

Aaron Raimist <aaron at aaronraimist.com>
Aaron Turon <aturon at mozilla.com>
Adolfo Ochagavía <aochagavia92 at gmail.com>
Adrien Tétar <adri-from-59 at hotmail.fr>
Ahmed Charles <ahmedcharles at gmail.com>
Alan Andrade <alan.andradec at gmail.com>
Alan Williams <mralert at gmail.com>
Alex Crichton <alex at alexcrichton.com>
Alexandre Gagnon <alxgnon at gmail.com>
Alexei Sholik <alcosholik at gmail.com>
Ali Smesseim <smesseim.ali at gmail.com>
Andrew Gallant <jamslam at gmail.com>
Anton Löfgren <anton.lofgren at gmail.com>
Arcterus <Arcterus at mail.com>
Ariel Ben-Yehuda <arielb1 at mail.tau.ac.il>
Axel Viala <axel.viala at darnuria.eu>
Ben Noordhuis <info at bnoordhuis.nl>
Benjamin Adamson <adamson.benjamin at gmail.com>
Benjamin Herr <ben at 0x539.de>
Björn Steinbrink <bsteinbr at gmail.com>
Boris Egorov <jightuse at gmail.com>
Brandon Waskiewicz <brandon.waskiewicz at gmail.com>
Brendan McLoughlin <btmcloughlin at gmail.com>
Brendan Zabarauskas <bjzaba at yahoo.com.au>
Brian Anderson <banderson at mozilla.com>
Cameron Zwarich <zwarich at mozilla.com>
Chris Morgan <me at chrismorgan.info>
Chris Shea <cmshea at gmail.com>
Christoph Burgdorf <christoph.burgdorf at bvsn.org>
Christopher Bergqvist <spambox0 at digitalpoetry.se>
Christopher Kendell <ckendell at outlook.com>
Clark Gaebel <cg.wowus.cg at gmail.com>
Conrad Kleinespel <conradk at conradk.com>
Corey Richardson <corey at octayn.net>
Daniel Brooks <db48x at db48x.net>
Daniel Fagnan <dnfagnan at gmail.com>
Daniel Micay <danielmicay at gmail.com>
David Creswick <dcrewi at gyrae.net>
Derek Chiang (Enchi Jiang) <derekchiang93 at gmail.com>
Dirk Leifeld <leifeld at posteo.de>
Dmitry Promsky <dmitry at willworkforcookies.com>
Douglas Young <rcxdude at gmail.com>
Dylan Braithwaite <mail at dylanb.me>
Eduard Bopp <eduard.bopp at aepsil0n.de>
Eduard Burtescu <edy.burt at gmail.com>
Edward Wang <edward.yu.wang at gmail.com>
Emanuel Rylke <ema-fox at web.de>
Erick Tryzelaar <erick.tryzelaar at gmail.com>
Falco Hirschenberger <falco.hirschenberger at gmail.com>
Falco Hirschenberger <hirschen at itwm.fhg.de>
Felix S. Klock II <pnkfelix at pnkfx.org>
Flavio Percoco <flaper87 at gmail.com>
Florian Gilcher <florian.gilcher at asquera.de>
Florian Hartwig <florian.j.hartwig at gmail.com>
Florian Zeitz <florob at babelmonkeys.de>
Gary M. Josack <gary at byoteki.com>
Guillaume Pinot <texitoi at texitoi.eu>
Gábor Lehel <glaebhoerl at gmail.com>
Hanno Braun <mail at hannobraun.de>
Heather <Cynede at Gentoo.org>
Herman J. Radtke III <hermanradtke at gmail.com>
HeroesGrave <heroesgrave at gmail.com>
Huon Wilson <dbau.pp+github at gmail.com>
Ivan Petkov <ivanppetkov at gmail.com>
J.C. Moyer <jmoyer1992 at gmail.com>
Jacob Hegna <jacobhegna at gmail.com>
Jakub Wieczorek <jakub at jakub.cc>
James Laverack <james at jameslaverack.com>
James Miller <james at aatch.net>
James Sanders <sanderjd at gmail.com>
Jeong YunWon <jeong at youknowone.org>
Jihyeok Seo <me at limeburst.net>
Jim Radford <radford at blackbean.org>
John Clements <clements at racket-lang.org>
John Fresco <john.fresco at utah.edu>
John Schmidt <john.schmidt.h at gmail.com>
John Simon <john at johnsoft.com>
Jonathan Bailey <jbailey at jbailey-20809.local>
Jonathan Bailey <jbailey at mozilla.com>
Jonathan Reem <jonathan.reem at gmail.com>
Jonathan S <gereeter at gmail.com>
Jordi Boggiano <j.boggiano at seld.be>
Jorge Aparicio <japaric at linux.com>
Joseph Crail <jbcrail at gmail.com>
JustAPerson <jpriest8 at ymail.com>
Justin Noah <justinnoah at gmail.com>
Jyun-Yan You <jyyou.tw at gmail.com>
Kang Seonghoon <public+git at mearie.org>
Kasey Carrothers <kaseyc.808 at gmail.com>
Keegan McAllister <kmcallister at mozilla.com>
Keegan McAllister <mcallister.keegan at gmail.com>
Kevin Ballard <kevin at sb.org>
Kevin Butler <haqkrs at gmail.com>
Kevin Cantu <me at kevincantu.org>
Kiet Tran <ktt3ja at gmail.com>
Liigo Zhuang <com.liigo at gmail.com>
Luqman Aden <laden at csclub.uwaterloo.ca>
Luqman Aden <me at luqman.ca>
Manish Goregaokar <manishsmail at gmail.com>
Marvin Löbel <loebel.marvin at gmail.com>
Matt Brubeck <mbrubeck at limpet.net>
Meyer S. Jacobs <meyermagic at gmail.com>
Michael Dagitses <dagitses at google.com>
Michael Darakananda <pongad at gmail.com>
Michael Fairley <michaelfairley at gmail.com>
Michael Pratt <michael at pratt.im>
Michael Reinhard <mcreinhard at users.noreply.github.com>
Michael Woerister <michaelwoerister at posteo>
Michael Zhou <moz at google.com>
Mihnea Dobrescu-Balaur <mihnea at linux.com>
Mike Boutin <mike.boutin at gmail.com>
Ms2ger <ms2ger at gmail.com>
Nathan Typanski <ntypanski at gmail.com>
Nick Cameron <ncameron at mozilla.com>
Nicolas Silva <nical.silva at gmail.com>
Nikita Pekin <contact at nikitapek.in>
Niklas Koep <niklas.koep at gmail.com>
Niko Matsakis <niko at alum.mit.edu>
Noam Yorav-Raphael <noamraph at gmail.com>
OGINO Masanori <masanori.ogino at gmail.com>
P1start <rewi-github at whanau.org>
Patrick Walton <pcwalton at mimiga.net>
Paul Stansifer <paul.stansifer at gmail.com>
Pawel Olzacki <p.olzacki2 at samsung.com>
Phil Ruffwind <rf at rufflewind.com>
Piotr Czarnecki <pioczarn at gmail.com>
Piotr Jawniak <sawyer47 at gmail.com>
Randati <anttivan at gmail.com>
Raphael Speyer <rspeyer at gmail.com>
Reilly Watson <reillywatson at gmail.com>
Renato Riccieri Santos Zannon <renato at rrsz.com.br>
Renato Zannon <renato at rrsz.com.br>
Richard Diamond <wichard at hahbee.co>
Richo Healey <richo at psych0tik.net>
Robert Buonpastore <robert.buonpastore at gmail.com>
Ryan Mulligan <ryan at ryantm.com>
Ryman <haqkrs at gmail.com>
Rüdiger Sonderfeld <ruediger at c-plusplus.de>
Santiago Rodriguez <sanrodari at gmail.com>
Sean Gillespie <sean.william.g at gmail.com>
Sean McArthur <sean.monstar at gmail.com>
Seo Sanghyeon <sanxiyn at gmail.com>
Sergio Benitez <sbenitez at mit.edu>
Simon Sapin <simon.sapin at exyr.org>
Stepan Koltsov <stepan.koltsov at gmail.com>
Steve Klabnik <steve at steveklabnik.com>
Steven Fackler <sfackler at gmail.com>
Steven Sheldon <steven at sasheldon.com>
Sylvestre Ledru <sylvestre at debian.org>
Ted Horst <ted.horst at earthlink.net>
Thomas Backman <serenity at exscape.org>
Tim Brooks <tim.brooks at staples.com>
Timothée Ravier <tim at siosm.fr>
Tobba <tobias.haegermarck at gmail.com>
Tobias Bucher <tobiasbucher5991 at gmail.com>
Tom Jakubowski <tom at crystae.net>
Tom Lee <github at tomlee.co>
TyOverby <ty at pre-alpha.com>
Utkarsh Kukreti <utkarshkukreti at gmail.com>
Vadim Chugunov <vadimcn at gmail.com>
Valentin Tsatskin <vtsatskin at mozilla.com>
Valerii Hiora <valerii.hiora at gmail.com>
Virgile Andreani <virgile.andreani at anbuco.fr>
Wendell Smith <wendell.smith at yale.edu>
Yehuda Katz <wycats at gmail.com>
Yuri Kunde Schlesner <yuriks at yuriks.net>
Zach Pomerantz <zmp at umich.edu>
Zooko Wilcox-O'Hearn <zooko at zooko.com>
aochagavia <aochagavia92 at gmail.com>
bachm <Ab at vapor.com>
bors <bors at rust-lang.org>
fort <e at mail.com>
free-Runner <aali07 at students.poly.edu>
iancormac84 <wilnathan at gmail.com>
klutzy <klutzytheklutzy at gmail.com>
lucy <ne.tetewi at gmail.com>
m-r-r <raybaudroigm at gmail.com>
mdinger <mdinger.bugzilla at gmail.com>
moonglum <moonglum at moonbeamlabs.com>
mrec <mike.capp at gmail.com>
theptrk <patrick.tran06 at gmail.com>


More information about the Rust-dev mailing list