[rust-dev] Rust 0.5 released

Mozilla and the Rust community are pleased to announce version 0.5 of the Rust compiler and associated tools. 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.5 should be considered an alpha release, suitable for early adopters and language enthusiasts. Please file [bugs]. [notes]: https://github.com/mozilla/rust/wiki/Doc-detailed-release-notes [website]: http://www.rust-lang.org [bugs]: http://github.com/mozilla/rust/issues This release is available as both a tarball and a Windows installer: * http://dl.rust-lang.org/dist/rust-0.5.tar.gz http://dl.rust-lang.org/dist/rust-0.5.tar.gz.asc SHA256 (of .tar.gz): d326d22707f0562d669c11efbc33ae812ddbf76ab78f07087fc5beb095a8928a * http://dl.rust-lang.org/dist/rust-0.5-install.exe http://dl.rust-lang.org/dist/rust-0.5-install.exe.asc SHA256 (of .exe): df1c565de6e6eed1d76243b24c0cf25de3b170f8d48834254f3f5105f52b3099 Note that the GPG signing key from last year has expired due to a short expiry window. The key has been updated on the website. The new key URL, ID and fingerprint are: http://www.rust-lang.org/rust-key.gpg.ascii 4096R/5B1E4B9A 2012-12-21 032D 6808 57D4 1FF8 A0E3 2AC5 F21A 43A7 5B1E 4B9A Rust Language (Tag and Release Signing Key) <rust-key at rust-lang.org> Regrettably, installing 0.5 over 0.4 will not work as expected. Please uninstall first. Note that the Windows installer still requires a somewhat specific version of MinGW and Msys to operate; recent builds of MinGW provide versions of GCC that are incompatible. Rust presently builds and tests with release 20110802, containing GCC 4.5. [Details] can be found on the wiki. [details]: https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust Thanks to everybody who has contributed[1]. Regards, The Rust Team Version 0.5 (December 2012) --------------------------- * ~900 changes, numerous bugfixes * Syntax changes * Removed `<-` move operator * Completed transition from `#fmt` extension syntax to `fmt!` * Removed old fixed length vector syntax - `[T]/N` * New token quasi-quoters, `quote_tokens!`, `quote_expr!`, etc. * Macros may now expand to items and statements * `a.b()` is always parsed as a method call, never as a field * `Eq` and `IterBytes` implementations automatically generated with `#[deriving_eq]` and `#[deriving_iter_bytes]` respectively * Removed the special crate language for `.rc` files * Function arguments may consist of any irrefutable pattern * Semantic changes * `&` and `~` pointers may point to objects * Tuple structs - `struct Foo(Bar, Baz)`. Replace newtype enums. * Enum variants may be structs * Destructors can be added to all nominal types via Drop trait * Structs and nullary enum variants may be constants * Values that cannot be implicitly copied are automatically moved without writing `move` explicitly * `&T` may now be coerced to `*T` * Coercions happen in `let` statements as well as function calls * `use` statements now take crate-relative paths * The module and type namespaces have been merged so that static method names can be resolved under the trait in which they are declared * Improved support for language features * Trait inheritance works in many scenarios * Support for explicit self arguments in methods - `self`, `&self` `@self`, and `~self` all generally work as expected * Static methods work in more situations * Experimental: Traits may declare default methods for impls to use * Libraries * New condition handling system in `core::condition` * Timsort added to `std::sort` * New priority queue, `std::priority_queue` * Pipes for serializable types, `std::flatpipes' * Serialization overhauled to be trait-based * Expanded `getopts` definitions * Moved futures to `std` * More functions are pure now * `core::comm` renamed to `oldcomm`. Still deprecated * `rustdoc` and `cargo` are libraries now * Misc * Added a preliminary REPL, `rusti` * License changed from MIT to dual MIT/APL2 [1]: Contributors to Rust 0.5: a_m0d Andrew Dunham Arkaitz Jimenez Ben Striegel Bilal Husain Brian Anderson Brian J. Burg Brian Leibig Cat's Eye Technologies Damien Grassart Daniel Micay Daniel Patterson Eric Holk Erick Tryzelaar Gabriel Gareth Daniel Smith Graydon Hoare Huon Wilson Isaac Aggrey Jakub Wieczorek Jesse Jones Jimmy Lu Josh Matthews Jyun-Yan You Kevin Cantu Lindsey Kuper Luca Bruno Luqman Aden Mahmut Bulut Michael Arntzenius Niko Matsakis Patrick Walton Paul Stansifer Philipp Brüschweiler Simon BD Tim Chevalier Tim Taubert Tony Young Tycho Sci Viktor Dahl Zack Corr