[rust-dev] Rust 0.4 released

Mozilla and the Rust community are pleased to announce version 0.4 of the Rust compiler and associated tools. This release focuses on stabilizing as much of the language syntax as possible, fully integrating borrowed pointers, and removing argument modes. 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.4 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.4.tar.gz http://dl.rust-lang.org/dist/rust-0.4.tar.gz.asc SHA256 (of .tar.gz): 150685f07e4d605cadf9fba25b05e9cc1b009364dd744131cf4230d64981d093 * http://dl.rust-lang.org/dist/rust-0.4-install.exe http://dl.rust-lang.org/dist/rust-0.4-install.exe.asc SHA256 (of .exe): 957bb98c0ff0af209a646c0e961abc98117363695e244e31a89c76d32d4ca827 Regrettably, installing 0.4 over 0.3 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.4 (October 2012) -------------------------- * ~2200 changes, numerous bugfixes * Syntax * All keywords are now strict and may not be used as identifiers anywhere * Keyword removal: 'again', 'import', 'export', 'check', 'new', 'owned', 'send', 'of', 'with', 'to', 'class'. * Classes are replaced with simpler structs * Explicit method self types * `ret` became `return` and `alt` became `match` * `import` is now `use`; `use is now `extern mod` * `extern mod { ... }` is now `extern { ... }` * `use mod` is the recommended way to import modules * `pub` and `priv` replace deprecated export lists * The syntax of `match` pattern arms now uses fat arrow (=>) * `main` no longer accepts an args vector; use `os::args` instead * Semantics * Trait implementations are now coherent, ala Haskell typeclasses * Trait methods may be static * Argument modes are deprecated * Borrowed pointers are much more mature and recommended for use * Static strings and vectors are stored in constant memory * Typestate was removed * Resolution rewritten to be more reliable * Support for 'dual-mode' data structures (freezing and thawing) * Libraries * Most binary operators can now be overloaded via the traits in `core::ops' * `std::net::url` for representing URLs * Sendable hash maps in `core::send_map` * `core::task' gained a (currently unsafe) task-local storage API * Concurrency * An efficient new intertask communication primitive called the pipe, along with a number of higher-level channel types, in `core::pipes` * `std::arc`, an atomically reference counted, immutable, shared memory type * `std::sync`, various synchronization tools based on arcs and pipes * Futures are now based on pipes and sendable * More robust linked task failure * Improved task builder API * Other * Improved error reporting * Preliminary JIT support * Preliminary work on precise GC * Extensive architectural improvements to rustc * Begun a transition away from buggy C++-based reflection (shape) code to Rust-based (visitor) code * All hash functions and tables converted to secure, randomized SipHash [1]: Contributors to Rust 0.4: Andrew Paseltiner Ben Blum Ben Striegel Benjamin Peterson Brian Anderson Brian J. Burg Chris Peterson Damian Gryski Daniel Patterson Drew Willcoxon Elliott Slaughter Eric Holk Erick Tryzelaar Francisco Souza Gareth Daniel Smith Glenn Willen Gonçalo Cabrita Graydon Hoare Jacob Harris Cryer Kragh Jed Davis Jeff Olson Jesse Ruderman Jim Blandy Joshua Wise Jyun-Yan You Kevin Cantu Lindsey Kuper Luca Bruno Max Penet Michael Sullivan Niko Matsakis Orphée Lafond-Lummis Patrick Walton Patrik Kårlin Paul Stansifer Philipp Brüschweiler Ryan Scheel Ted Horst Tim Chevalier Vincent Belliard Yasuhiro Fujii Zack Corr alexrp auREAX tav