Created
October 4, 2012 00:15
-
-
Save brson/3830731 to your computer and use it in GitHub Desktop.
Draft Rust 0.4 release notes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Mozilla and the Rust community are entirely tickled 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 always, 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): | |
XXX | |
* 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): | |
XXX | |
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) | |
-------------------------- | |
* ~1500 changes, numerous bugfixes | |
* Syntax | |
* All keywords are now strict and may not be used as identifiers anywhere | |
* Keyword removal: 'again', 'import', '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 | |
* Strings and vectors in the static region 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 exotic 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: | |
alexrp | |
Andrew Paseltiner | |
auREAX | |
Ben Blum | |
Benjamin Peterson | |
Ben Striegel | |
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment