Skip to content

Instantly share code, notes, and snippets.

@brson
Created October 4, 2012 00:15
Show Gist options
  • Save brson/3830731 to your computer and use it in GitHub Desktop.
Save brson/3830731 to your computer and use it in GitHub Desktop.
Draft Rust 0.4 release notes
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