Mozilla's Rust language version 0.3 released
With the announcement that version 0.3 of Mozilla's Rust has been released, the alternate procedural, concurrent, OO and functional style is continuing its rapid evolution. Designed as a safe alternative to C or C++, as it is being developed, Rust is being used to create an experimental parallel browser called Servo. Version 0.1 of Rust was introduced in January 2012 after being created as a side project by Graydon Hoare in 2006 and revealed to the world in 2010. Version 0.3 includes over 1,900 changes from April's version 0.2, as the developers work through the roadmap that will lead to a 1.0 release of the language.
For version 0.3, the developers have added a range of coding conveniences, cleaned up the semantics of the language, introduced a number of experimental language features and removed a selection of obsolete features. The conveniences include such things as integer literal inference, a new closure syntax and do expression and pattern matching syntax for variant fields. Rust also now supports "doc" comments and offers more granular control over warnings and errors generated by the compiler.
The experimental features include new vector types and a pragmatic change which allows for shebang ("#!") comments which, when used as the first line of a file, are used by Unix systems as a directive to use a particular interpreter. The addition would allow for Rust "scripts".
Library changes include syntax extensions for creating strings from expressions, including the contents of a file as a Rust expression, a string or byte vector, and providing line, column, file and module information; new time functions and extension methods are added for many of the built-in types. Full details of the changes are available in the release notes, summarised in the releases document.
The developers remind potential users that version 0.3 should still be considered an alpha release and ask for bugs to be reported. The MIT licensed Rust 0.3 is available to download as a source code tar.gz file or as an Windows .exe file (MinGW required).