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 <[email protected]> Aaron Turon <[email protected]> Adolfo Ochagavía <[email protected]> Adrien Tétar <[email protected]> Ahmed Charles <[email protected]> Alan Andrade <[email protected]> Alan Williams <[email protected]> Alex Crichton <[email protected]> Alexandre Gagnon <[email protected]> Alexei Sholik <[email protected]> Ali Smesseim <[email protected]> Andrew Gallant <[email protected]> Anton Löfgren <[email protected]> Arcterus <[email protected]> Ariel Ben-Yehuda <[email protected]> Axel Viala <[email protected]> Ben Noordhuis <[email protected]> Benjamin Adamson <[email protected]> Benjamin Herr <[email protected]> Björn Steinbrink <[email protected]> Boris Egorov <[email protected]> Brandon Waskiewicz <[email protected]> Brendan McLoughlin <[email protected]> Brendan Zabarauskas <[email protected]> Brian Anderson <[email protected]> Cameron Zwarich <[email protected]> Chris Morgan <[email protected]> Chris Shea <[email protected]> Christoph Burgdorf <[email protected]> Christopher Bergqvist <[email protected]> Christopher Kendell <[email protected]> Clark Gaebel <[email protected]> Conrad Kleinespel <[email protected]> Corey Richardson <[email protected]> Daniel Brooks <[email protected]> Daniel Fagnan <[email protected]> Daniel Micay <[email protected]> David Creswick <[email protected]> Derek Chiang (Enchi Jiang) <[email protected]> Dirk Leifeld <[email protected]> Dmitry Promsky <[email protected]> Douglas Young <[email protected]> Dylan Braithwaite <[email protected]> Eduard Bopp <[email protected]> Eduard Burtescu <[email protected]> Edward Wang <[email protected]> Emanuel Rylke <[email protected]> Erick Tryzelaar <[email protected]> Falco Hirschenberger <[email protected]> Falco Hirschenberger <[email protected]> Felix S. Klock II <[email protected]> Flavio Percoco <[email protected]> Florian Gilcher <[email protected]> Florian Hartwig <[email protected]> Florian Zeitz <[email protected]> Gary M. Josack <[email protected]> Guillaume Pinot <[email protected]> Gábor Lehel <[email protected]> Hanno Braun <[email protected]> Heather <[email protected]> Herman J. Radtke III <[email protected]> HeroesGrave <[email protected]> Huon Wilson <[email protected]> Ivan Petkov <[email protected]> J.C. Moyer <[email protected]> Jacob Hegna <[email protected]> Jakub Wieczorek <[email protected]> James Laverack <[email protected]> James Miller <[email protected]> James Sanders <[email protected]> Jeong YunWon <[email protected]> Jihyeok Seo <[email protected]> Jim Radford <[email protected]> John Clements <[email protected]> John Fresco <[email protected]> John Schmidt <[email protected]> John Simon <[email protected]> Jonathan Bailey <[email protected]> Jonathan Bailey <[email protected]> Jonathan Reem <[email protected]> Jonathan S <[email protected]> Jordi Boggiano <[email protected]> Jorge Aparicio <[email protected]> Joseph Crail <[email protected]> JustAPerson <[email protected]> Justin Noah <[email protected]> Jyun-Yan You <[email protected]> Kang Seonghoon <[email protected]> Kasey Carrothers <[email protected]> Keegan McAllister <[email protected]> Keegan McAllister <[email protected]> Kevin Ballard <[email protected]> Kevin Butler <[email protected]> Kevin Cantu <[email protected]> Kiet Tran <[email protected]> Liigo Zhuang <[email protected]> Luqman Aden <[email protected]> Luqman Aden <[email protected]> Manish Goregaokar <[email protected]> Marvin Löbel <[email protected]> Matt Brubeck <[email protected]> Meyer S. Jacobs <[email protected]> Michael Dagitses <[email protected]> Michael Darakananda <[email protected]> Michael Fairley <[email protected]> Michael Pratt <[email protected]> Michael Reinhard <[email protected]> Michael Woerister <michaelwoerister@posteo> Michael Zhou <[email protected]> Mihnea Dobrescu-Balaur <[email protected]> Mike Boutin <[email protected]> Ms2ger <[email protected]> Nathan Typanski <[email protected]> Nick Cameron <[email protected]> Nicolas Silva <[email protected]> Nikita Pekin <[email protected]> Niklas Koep <[email protected]> Niko Matsakis <[email protected]> Noam Yorav-Raphael <[email protected]> OGINO Masanori <[email protected]> P1start <[email protected]> Patrick Walton <[email protected]> Paul Stansifer <[email protected]> Pawel Olzacki <[email protected]> Phil Ruffwind <[email protected]> Piotr Czarnecki <[email protected]> Piotr Jawniak <[email protected]> Randati <[email protected]> Raphael Speyer <[email protected]> Reilly Watson <[email protected]> Renato Riccieri Santos Zannon <[email protected]> Renato Zannon <[email protected]> Richard Diamond <[email protected]> Richo Healey <[email protected]> Robert Buonpastore <[email protected]> Ryan Mulligan <[email protected]> Ryman <[email protected]> Rüdiger Sonderfeld <[email protected]> Santiago Rodriguez <[email protected]> Sean Gillespie <[email protected]> Sean McArthur <[email protected]> Seo Sanghyeon <[email protected]> Sergio Benitez <[email protected]> Simon Sapin <[email protected]> Stepan Koltsov <[email protected]> Steve Klabnik <[email protected]> Steven Fackler <[email protected]> Steven Sheldon <[email protected]> Sylvestre Ledru <[email protected]> Ted Horst <[email protected]> Thomas Backman <[email protected]> Tim Brooks <[email protected]> Timothée Ravier <[email protected]> Tobba <[email protected]> Tobias Bucher <[email protected]> Tom Jakubowski <[email protected]> Tom Lee <[email protected]> TyOverby <[email protected]> Utkarsh Kukreti <[email protected]> Vadim Chugunov <[email protected]> Valentin Tsatskin <[email protected]> Valerii Hiora <[email protected]> Virgile Andreani <[email protected]> Wendell Smith <[email protected]> Yehuda Katz <[email protected]> Yuri Kunde Schlesner <[email protected]> Zach Pomerantz <[email protected]> Zooko Wilcox-O'Hearn <[email protected]> aochagavia <[email protected]> bachm <[email protected]> bors <[email protected]> fort <[email protected]> free-Runner <[email protected]> iancormac84 <[email protected]> klutzy <[email protected]> lucy <[email protected]> m-r-r <[email protected]> mdinger <[email protected]> moonglum <[email protected]> mrec <[email protected]> theptrk <[email protected]> _______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
