Fantastic release! I think Rust is really becoming a usable language for "real" projects. Great work from everyone involved!
I look forward to future releases, and to building some great products in Rust! On Thu, Jan 9, 2014 at 1:10 PM, Benjamin Striegel <ben.strie...@gmail.com> wrote: > Congrats everyone! Here's to 0.10. :) > > > On Thu, Jan 9, 2014 at 4:04 PM, Brian Anderson <bander...@mozilla.com> > wrote: >> >> Mozilla and the Rust community are pleased to announce version 0.9 of the >> Rust compiler and tools. Rust is a systems programming language with a >> focus on safety, performance and concurrency. >> >> This was another eventful release in which we made extensive improvements >> to the runtime and I/O subsystem, introduced static linking and link-time >> optimization, and reduced the variety of closures in the language. 0.9 >> also >> begins a final series of planned changes to how pointers are treated in >> Rust, starting with the deprecation of the built-in "managed pointer" type >> and its accompanying `@` sigil, and the introduction of smart pointer >> types >> to the standard library. >> >> 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.9 should be considered an alpha release, >> suitable for early adopters and language enthusiasts. Please file [bugs] >> and join the [fun]. >> >> [website]: http://www.rust-lang.org >> [notes]: https://github.com/mozilla/rust/wiki/Doc-detailed-release-notes >> [bugs]: https://github.com/mozilla/rust/issues >> [fun]: >> https://github.com/mozilla/rust/wiki/Note-guide-for-new-contributors >> >> This release is available as both a tarball and a Windows installer: >> >> * http://static.rust-lang.org/dist/rust-0.9.tar.gz >> http://static.rust-lang.org/dist/rust-0.9.tar.gz.asc >> SHA256 (of .tar.gz): >> c0911c3545b797a1ca16f3d76bf5ed234754b828efd1e22c182c7300ac7dd5d1 >> >> * http://static.rust-lang.org/dist/rust-0.9-install.exe >> http://static.rust-lang.org/dist/rust-0.9-install.exe.asc >> SHA256 (of .exe): >> 6ab14e25761d61ba724c5f77403d09d566d3187a2e048e006036b960d938fe90 >> >> Thanks to everyone who contributed! >> >> Regards, >> The Rust Team >> >> >> Version 0.9 (January 2014) >> -------------------------- >> >> * Language >> * The `float` type has been removed. Use `f32` or `f64` instead. >> * A new facility for enabling experimental features (feature gating) >> has been added, using the crate-level `#[feature(foo)]` attribute. >> * Managed boxes (@) are now behind a feature gate >> (`#[feature(managed_boxes)]`) in preperation for future removal. Use >> the standard library's `Gc` or `Rc` types instead. >> * `@mut` has been removed. Use `std::cell::{Cell, RefCell}` instead. >> * Jumping back to the top of a loop is now done with `continue` instead >> of `loop`. >> * Strings can no longer be mutated through index assignment. >> * Raw strings can be created via the basic `r"foo"` syntax or with >> matched hash delimiters, as in `r###"foo"###`. >> * `~fn` is now written `proc (args) -> retval { ... }` and may only be >> called once. >> * The `&fn` type is now written `|args| -> ret` to match the literal >> form. >> * `@fn`s have been removed. >> * `do` only works with procs in order to make it obvious what the cost >> of `do` is. >> * Single-element tuple-like structs can no longer be dereferenced to >> obtain the inner value. A more comprehensive solution for overloading >> the dereference operator will be provided in the future. >> * The `#[link(...)]` attribute has been replaced with >> `#[crate_id = "name#vers"]`. >> * Empty `impl`s must be terminated with empty braces and may not be >> terminated with a semicolon. >> * Keywords are no longer allowed as lifetime names; the `self` lifetime >> no longer has any special meaning. >> * The old `fmt!` string formatting macro has been removed. >> * `printf!` and `printfln!` (old-style formatting) removed in favor of >> `print!` and `println!`. >> * `mut` works in patterns now, as in `let (mut x, y) = (1, 2);`. >> * The `extern mod foo (name = "bar")` syntax has been removed. Use >> `extern mod foo = "bar"` instead. >> * New reserved keywords: `alignof`, `offsetof`, `sizeof`. >> * Macros can have attributes. >> * Macros can expand to items with attributes. >> * Macros can expand to multiple items. >> * The `asm!` macro is feature-gated (`#[feature(asm)]`). >> * Comments may be nested. >> * Values automatically coerce to trait objects they implement, without >> an explicit `as`. >> * Enum discriminants are no longer an entire word but as small as needed >> to contain all the variants. The `repr` attribute can be used to >> override the discriminant size, as in `#[repr(int)]` for integer-sized, >> and `#[repr(C)]` to match C enums. >> * Non-string literals are not allowed in attributes (they never worked). >> * The FFI now supports variadic functions. >> * Octal numeric literals, as in `0o7777`. >> * The `concat!` syntax extension performs compile-time string >> concatenation. >> * The `#[fixed_stack_segment]` and `#[rust_stack]` attributes have been >> removed as Rust no longer uses segmented stacks. >> * Non-ascii identifiers are feature-gated >> (`#[feature(non_ascii_idents)]`). >> * Ignoring all fields of an enum variant or tuple-struct is done with >> `..`, not `*`; ignoring remaining fields of a struct is also done >> with `..`, not `_`; ignoring a slice of a vector is done with `..`, >> not `.._`. >> * `rustc` supports the "win64" calling convention via `extern "win64"`. >> * `rustc` supports the "system" calling convention, which defaults to >> the preferred convention for the target platform, "stdcall" on 32-bit >> Windows, "C" elsewhere. >> * The `type_overflow` lint (default: warn) checks literals for overflow. >> * The `unsafe_block` lint (default: allow) checks for usage of `unsafe`. >> * The `attribute_usage` lint (default: warn) warns about unknown >> attributes. >> * The `unknown_features` lint (default: warn) warns about unknown >> feature gates. >> * The `dead_code` lint (default: warn) checks for dead code. >> * Rust libraries can be linked statically to one another >> * `#[link_args]` is behind the `link_args` feature gate. >> * Native libraries are now linked with `#[link(name = "foo")]` >> * Native libraries can be statically linked to a rust crate >> (`#[link(name = "foo", kind = "static")]`). >> * Native OS X frameworks are now officially supported >> (`#[link(name = "foo", kind = "framework")]`). >> * The `#[thread_local]` attribute creates thread-local (not task-local) >> variables. Currently behind the `thread_local` feature gate. >> * The `return` keyword may be used in closures. >> * Types that can be copied via a memcpy implement the `Pod` kind. >> * The `cfg` attribute can now be used on struct fields and enum variants. >> >> * Libraries >> * std: The `option` and `result` API's have been overhauled to make them >> simpler, more consistent, and more composable. >> * std: The entire `std::io` module has been replaced with one that is >> more comprehensive and that properly interfaces with the underlying >> scheduler. File, TCP, UDP, Unix sockets, pipes, and timers are all >> implemented. >> * std: `io::util` contains a number of useful implementations of >> `Reader` and `Writer`, including `NullReader`, `NullWriter`, >> `ZeroReader`, `TeeReader`. >> * std: The reference counted pointer type `extra::rc` moved into std. >> * std: The `Gc` type in the `gc` module will replace `@` (it is currently >> just a wrapper around it). >> * std: The `Either` type has been removed. >> * std: `fmt::Default` can be implemented for any type to provide default >> formatting to the `format!` macro, as in `format!("{}", myfoo)`. >> * std: The `rand` API continues to be tweaked. >> * std: The `rust_begin_unwind` function, useful for inserting >> breakpoints on failure in gdb, is now named `rust_fail`. >> * std: The `each_key` and `each_value` methods on `HashMap` have been >> replaced by the `keys` and `values` iterators. >> * std: Functions dealing with type size and alignment have moved from >> the `sys` module to the `mem` module. >> * std: The `path` module was written and API changed. >> * std: `str::from_utf8` has been changed to cast instead of allocate. >> * std: `starts_with` and `ends_with` methods added to vectors via the >> `ImmutableEqVector` trait, which is in the prelude. >> * std: Vectors can be indexed with the `get_opt` method, which returns >> `None` if the index is out of bounds. >> * std: Task failure no longer propagates between tasks, as the model >> was complex, expensive, and incompatible with thread-based tasks. >> * std: The `Any` type can be used for dynamic typing. >> * std: `~Any` can be passed to the `fail!` macro and retrieved via >> `task::try`. >> * std: Methods that produce iterators generally do not have an `_iter` >> suffix now. >> * std: `cell::Cell` and `cell::RefCell` can be used to introduc >> mutability roots (mutable fields, etc.). Use instead of e.g. `@mut`. >> * std: `util::ignore` renamed to `prelude::drop`. >> * std: Slices have `sort` and `sort_by` methods via the `MutableVector` >> trait. >> * std: `vec::raw` has seen a lot of cleanup and API changes. >> * std: The standard library no longer includes any C++ code, and very >> minimal C, eliminating the dependency on libstdc++. >> * std: Runtime scheduling and I/O functionality has been factored out >> into extensible interfaces and is now implemented by two different >> crates: libnative, for native threading and I/O; and libgreen, for >> green threading and I/O. This paves the way for using the standard >> library in more limited embeded environments. >> * std: The `comm` module has been rewritten to be much faster, have a >> simpler, more consistent API, and to work for both native and green >> threading. >> * std: All libuv dependencies have been moved into the rustuv crate. >> * native: New implementations of runtime scheduling on top of OS >> threads. >> * native: New native implementations of TCP, UDP, file I/O, process >> spawning, and other I/O. >> * green: The green thread scheduler and message passing types are >> almost entirely lock-free. >> * extra: The `flatpipes` module had bitrotted and was removed. >> * extra: All crypto functions have been removed and Rust now has a >> policy of not reimplementing crypto in the standard library. In the >> future crypto will be provided by external crates with bindings to >> established libraries. >> * extra: `c_vec` has been modernized. >> * extra: The `sort` module has been removed. Use the `sort` method on >> mutable slices. >> >> * Tooling >> * The `rust` and `rusti` commands have been removed, due to lack of >> maintenance. >> * `rustdoc` was completely rewritten. >> * `rustdoc` can test code examples in documentation. >> * `rustpkg` can test packages with the argument, 'test'. >> * `rustpkg` supports arbitrary dependencies, including C libraries. >> * `rustc`'s support for generating debug info is improved again. >> * `rustc` has better error reporting for unbalanced delimiters. >> * `rustc`'s JIT support was removed due to bitrot. >> * Executables and static libraries can be built with LTO (-Z lto) >> * `rustc` adds a `--dep-info` flag for communicating dependencies to >> build tools. >> >> >> Contributors to Rust 0.9 >> ------------------------ >> >> Adrien Tétar <adri-from...@hotmail.fr> >> Alan Andrade <alan.andra...@gmail.com> >> Alexandros Tasos <sdi1100...@di.uoa.gr> >> Alex Crichton <a...@alexcrichton.com> >> a_m0d <damien.sch...@gmail.com> >> Andreas Neuhaus <zarg...@zargony.com> >> Andreas Ots <andreas...@gmail.com> >> Andrei Formiga <archimedes_sirac...@hotmail.com> >> Benjamin Herr <b...@0x539.de> >> Benjamin Peterson <benja...@python.org> >> Birunthan Mohanathas <birunt...@mohanathas.com> >> blake2-ppc <blake2-ppc> >> Branimir <brani...@volomp.com> >> Brendan Zabarauskas <bjz...@yahoo.com.au> >> Brian Anderson <bander...@mozilla.com> >> Brian <brian.t.d...@gmail.com> >> Cadence Marseille <cadencemarsei...@gmail.com> >> Carl-Anton Ingmarsson <m...@carlanton.se> >> Carol Willing <carolc...@willingconsulting.com> >> Carter Tazio Schonwald <carter.schonw...@gmail.com> >> chitra <chitra@chitra-HP-Pavilion-g6-Notebook-PC.(none)> >> Chris Morgan <m...@chrismorgan.info> >> Chris Sainty <csai...@hotmail.com> >> Corey Richardson <co...@octayn.net> >> Dan Connolly <d...@madmode.com> >> Daniel Micay <danielmi...@gmail.com> >> Dan Luu <dan...@gmail.com> >> Dave Hodder <d...@dmh.org.uk> >> David Creswick <dcr...@gyrae.net> >> David Renshaw <dwrens...@gmail.com> >> Diego Ongaro <ong...@cs.stanford.edu> >> Dirkjan Bussink <d.buss...@gmail.com> >> Dmitry Ermolov <epdmi...@yandex.ru> >> Do Nhat Minh <mrordina...@gmail.com> >> Eduard Burtescu <edy.b...@gmail.com> >> Edward Z. Yang <ezy...@cs.stanford.edu> >> eliovir <elio...@gmail.com> >> Eric Biggers <ebigge...@gmail.com> >> Eric Holk <eric.h...@gmail.com> >> Erick Tryzelaar <erick.tryzel...@gmail.com> >> Erik Lyon <elyon...@local.fake> >> Erik Price <erik.pric...@gmail.com> >> Fabrice Desré <fabr...@desre.org> >> Felix S. Klock II <pnkfe...@pnkfx.org> >> Flavio Percoco <flape...@gmail.com> >> flo-l <lackner...@gmail.com> >> Florian Gilcher <florian.gilc...@asquera.de> >> Florian Hahn <f...@fhahn.com> >> Florian Zeitz <flo...@babelmonkeys.de> >> g3xzh <g3...@yahoo.com> >> Gareth Smith <garethdanielsm...@gmail.com> >> Geoff Hill <ge...@geoffhill.org> >> Geoffroy Couprie <geo.coup...@gmail.com> >> Georges Dubus <georges.du...@compiletoi.net> >> gifnksm <makoto.nksm+git...@gmail.com> >> Guillaume Pinot <texi...@texitoi.eu> >> Gyorgy Andrasek <jur...@gmail.com> >> Harry Marr <harry.m...@gmail.com> >> Heather <heat...@cynede.net> >> Huon Wilson <dbau.pp+git...@gmail.com> >> Ian Daniher <it.dani...@gmail.com> >> Igor Bukanov <i...@mir2.org> >> Isaac Dupree <antis...@idupree.com> >> Jack Moffitt <j...@metajack.im> >> Jaemin Moon <jaemin.m...@samsung.com> >> Jan Niklas Hasse <jha...@gmail.com> >> Jannis Harder <j...@jixco.de> >> Jason Orendorff <jason.orendo...@gmail.com> >> Jason Toffaletti <ja...@topsy.com> >> Jay Anderson <jayanders...@gmail.com> >> Jed Davis <j...@panix.com> >> Jeff Olson <olson.jeff...@gmail.com> >> Joe Schafer <j...@jschaf.com> >> John Louis Walker <inj...@gmail.com> >> Jordi Boggiano <j.boggi...@seld.be> >> Joshua Yanovski <pythones...@gmail.com> >> Julia Evans <ju...@jvns.ca> >> Jyun-Yan You <jy...@cs.nctu.edu.tw> >> Keegan McAllister <kmcallis...@mozilla.com> >> Kevin Ballard <ke...@sb.org> >> Kiet Tran <ktt...@gmail.com> >> klutzy <klutzytheklu...@gmail.com> >> kud1ing <git...@kudling.de> >> Leah Hanson <astriea...@gmail.com> >> LEE Wondong <wdle...@gmail.com> >> Léo Testard <leo.test...@gmail.com> >> Lindsey Kuper <lind...@composition.al> >> Luca Bruno <lu...@debian.org> >> Luis de Bethencourt <l...@debethencourt.com> >> Luqman Aden <la...@csclub.uwaterloo.ca> >> lyuts <diox...@gmail.com> >> Mark Rowe <mr...@bdash.net.nz> >> Marvin Löbel <loebel.mar...@gmail.com> >> Matt Carberry <carberry.m...@gmail.com> >> Matthew Auld <matthew.a...@intel.com> >> Matthew Iselin <matt...@theiselins.net> >> Micah Chalmer <mi...@micahchalmer.net> >> Michael 'devbug' Williams <m.t.willi...@live.com> >> Michael Letterle <michael.lette...@gmail.com> >> Michael Woerister <michaelwoerister@gmail> >> niftynif <nif.w...@gmail.com> >> Niko Matsakis <n...@alum.mit.edu> >> Noufal Ibrahim <nou...@nibrahim.net.in> >> Olivier Saut <os...@airpost.net> >> osa1 <omeraga...@gmail.com> >> Palmer Cox <p...@lmercox.com> >> Patrick Walton <pcwal...@mimiga.net> >> Peter Zotov <whitequ...@whitequark.org> >> Philipp Brüschweiler <ble...@gmail.com> >> Raphael Speyer <rspe...@gmail.com> >> reedlepee <reedlepee...@gmail.com> >> Richard Diamond <wich...@vitalitystudios.com> >> Robert Irelan <rire...@gmail.com> >> Scott Lawrence <byt...@gmail.com> >> Sébastien Chauvel <eichi...@mailoo.org> >> Sébastien Crozet <develo...@crozet.re> >> Sébastien Paolacci <sebastien.paola...@gmail.com> >> Seo Sanghyeon <sanx...@gmail.com> >> sh8281.kim <sh8281....@samsung.com> >> SiegeLord <slab...@aim.com> >> sp3d <sp3d@github> >> S Pradeep Kumar <gohan...@gmail.com> >> Steve Klabnik <st...@steveklabnik.com> >> Steven Fackler <sfack...@gmail.com> >> Strahinja Val Markovic <v...@markovic.io> >> Tim Chevalier <cheval...@alum.wellesley.edu> >> Tomas Sedovic <to...@sedovic.cz> >> Vadim Chugunov <vadi...@gmail.com> >> Vijay Korapaty <r...@korapaty.com> >> Volker Mische <volker.mis...@gmail.com> >> Young-il Choi <duddlf.c...@samsung.com> >> Zach Kamsler <smoo.mas...@gmail.com> >> Zack Corr <z...@z0w0.me> >> Ziad Hatahet <hata...@gmail.com> >> >> _______________________________________________ >> Rust-dev mailing list >> Rust-dev@mozilla.org >> https://mail.mozilla.org/listinfo/rust-dev >> >> _______________________________________________ >> Rust-dev mailing list >> Rust-dev@mozilla.org >> https://mail.mozilla.org/listinfo/rust-dev >> > > > _______________________________________________ > Rust-dev mailing list > Rust-dev@mozilla.org > https://mail.mozilla.org/listinfo/rust-dev > _______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev