[rust-dev] Rust 0.3 released

Graydon Hoare graydon at mozilla.com
Thu Jul 12 16:10:23 PDT 2012

Mozilla and the Rust community are pleased to announce version 0.3 of
the Rust compiler and associated tools. Snapshot documentation and all
the links in this email are available on our website:


Version 0.3 should still be considered an alpha release, suitable for
early adopters and language enthusiasts. Please file bugs at

This release is available as both a tarball and a windows installer:

    * http://dl.rust-lang.org/dist/rust-0.3.tar.gz
      SHA256 (of .tar.gz):

    * http://dl.rust-lang.org/dist/rust-0.3-install.exe
      SHA256 (of .exe):

Please note that the windows installer 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. This can be installed 
separately from sourceforge:


Also note that in addition to this announcement we are now posting more 
detailed release notes on the wiki, as well as a longer-term roadmap. We 
hope these documents serve as helpful guides to evaluating the state of 
the project:


Thanks to everybody who has contributed[1].

The Rust Team

Version 0.3  (July 2012)

    * ~1900 changes, numerous bugfixes

    * New coding conveniences
       * Integer-literal suffix inference
       * Per-item control over warnings, errors
       * #[cfg(windows)] and #[cfg(unix)] attributes
       * Documentation comments
       * More compact closure syntax
       * 'do' expressions for treating higher-order functions as
         control structures
       * *-patterns (wildcard extended to all constructor fields)

    * Semantic cleanup
       * Name resolution pass and exhaustiveness checker rewritten
       * Region pointers and borrow checking supersede alias
       * Init-ness checking is now provided by a region-based liveness
         pass instead of the typestate pass; same for last-use analysis
       * Extensive work on region pointers

    * Experimental new language features
       * Slices and fixed-size, interior-allocated vectors
       * #!-comments for lang versioning, shell execution
       * Destructors and iface implementation for classes;
       	type-parameterized classes and class methods
       * 'const' type kind for types that can be used to implement
         shared-memory concurrency patterns

    * Type reflection

    * Removal of various obsolete features
       * Keywords: 'be', 'prove', 'syntax', 'note', 'mutable', 'bind',
                  'crust', 'native' (now 'extern'), 'cont' (now 'again')

       * Constructs: do-while loops ('do' repurposed), fn binding,
       	            resources (replaced by destructors)

    * Compiler reorganization
       * Syntax-layer of compiler split into separate crate
       * Clang (from LLVM project) integrated into build
       * Typechecker split into sub-modules

    * New library code
       * New time functions
       * Extension methods for many built-in types
       * Arc: atomic-refcount read-only / exclusive-use shared cells
       * Par: parallel map and search routines
       * Extensive work on libuv interface
       * Much vector code moved to libraries
       * Syntax extensions: #line, #col, #file, #mod, #stringify,
       	#include, #include_str, #include_bin

    * Tool improvements
       * Cargo automatically resolves dependencies

[1] Contributors to Rust 0.3:

Alexander Stavonin
Arkaitz Jimenez
Armin Ronacher
Ben Blum
Ben Striegel
Benjamin Herr
Benjamin Kircher
Brian Anderson
Eric Holk
Erick Tryzelaar
Evan McClanahan
Gareth Daniel Smith
Glenn Willen
Grahame Bowland
Graydon Hoare
Haitao Li
Jeff Olson
Jesse Ruderman
Jon Morton
Jonathan Sternberg
Josh Matthews
Joshua Wise
Jyun-Yan You
Kevin Cantu
Lindsey Kuper
Margaret Meyerhofer
Marijn Haverbeke
Michael Sullivan
Niko Matsakis
Patrick Walton
Paul Stansifer
Ryan Scheel
Ted Horst
Tim Chevalier
Tycho Sci
Zack Corr

More information about the Rust-dev mailing list