Great work, thanks. 在 2014年1月10日 上午5:04,"Brian Anderson" <bander...@mozilla.com>写道:
> 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> <adri-from...@hotmail.fr> > Alan Andrade <alan.andra...@gmail.com> <alan.andra...@gmail.com> > Alexandros Tasos <sdi1100...@di.uoa.gr> <sdi1100...@di.uoa.gr> > Alex Crichton <a...@alexcrichton.com> <a...@alexcrichton.com> > a_m0d <damien.sch...@gmail.com> <damien.sch...@gmail.com> > Andreas Neuhaus <zarg...@zargony.com> <zarg...@zargony.com> > Andreas Ots <andreas...@gmail.com> <andreas...@gmail.com> > Andrei Formiga > <archimedes_sirac...@hotmail.com><archimedes_sirac...@hotmail.com> > Benjamin Herr <b...@0x539.de> <b...@0x539.de> > Benjamin Peterson <benja...@python.org> <benja...@python.org> > Birunthan Mohanathas <birunt...@mohanathas.com> <birunt...@mohanathas.com> > blake2-ppc <blake2-ppc> > Branimir <brani...@volomp.com> <brani...@volomp.com> > Brendan Zabarauskas <bjz...@yahoo.com.au> <bjz...@yahoo.com.au> > Brian Anderson <bander...@mozilla.com> <bander...@mozilla.com> > Brian <brian.t.d...@gmail.com> <brian.t.d...@gmail.com> > Cadence Marseille <cadencemarsei...@gmail.com><cadencemarsei...@gmail.com> > Carl-Anton Ingmarsson <m...@carlanton.se> <m...@carlanton.se> > Carol Willing > <carolc...@willingconsulting.com><carolc...@willingconsulting.com> > Carter Tazio Schonwald > <carter.schonw...@gmail.com><carter.schonw...@gmail.com> > chitra > <chitra@chitra-HP-Pavilion-g6-Notebook-PC.(none)><chitra@chitra-HP-Pavilion-g6-Notebook-PC.%28none%29> > Chris Morgan <m...@chrismorgan.info> <m...@chrismorgan.info> > Chris Sainty <csai...@hotmail.com> <csai...@hotmail.com> > Corey Richardson <co...@octayn.net> <co...@octayn.net> > Dan Connolly <d...@madmode.com> <d...@madmode.com> > Daniel Micay <danielmi...@gmail.com> <danielmi...@gmail.com> > Dan Luu <dan...@gmail.com> <dan...@gmail.com> > Dave Hodder <d...@dmh.org.uk> <d...@dmh.org.uk> > David Creswick <dcr...@gyrae.net> <dcr...@gyrae.net> > David Renshaw <dwrens...@gmail.com> <dwrens...@gmail.com> > Diego Ongaro <ong...@cs.stanford.edu> <ong...@cs.stanford.edu> > Dirkjan Bussink <d.buss...@gmail.com> <d.buss...@gmail.com> > Dmitry Ermolov <epdmi...@yandex.ru> <epdmi...@yandex.ru> > Do Nhat Minh <mrordina...@gmail.com> <mrordina...@gmail.com> > Eduard Burtescu <edy.b...@gmail.com> <edy.b...@gmail.com> > Edward Z. Yang <ezy...@cs.stanford.edu> <ezy...@cs.stanford.edu> > eliovir <elio...@gmail.com> <elio...@gmail.com> > Eric Biggers <ebigge...@gmail.com> <ebigge...@gmail.com> > Eric Holk <eric.h...@gmail.com> <eric.h...@gmail.com> > Erick Tryzelaar <erick.tryzel...@gmail.com> <erick.tryzel...@gmail.com> > Erik Lyon <elyon...@local.fake> <elyon...@local.fake> > Erik Price <erik.pric...@gmail.com> <erik.pric...@gmail.com> > Fabrice Desré <fabr...@desre.org> <fabr...@desre.org> > Felix S. Klock II <pnkfe...@pnkfx.org> <pnkfe...@pnkfx.org> > Flavio Percoco <flape...@gmail.com> <flape...@gmail.com> > flo-l <lackner...@gmail.com> <lackner...@gmail.com> > Florian Gilcher <florian.gilc...@asquera.de> <florian.gilc...@asquera.de> > Florian Hahn <f...@fhahn.com> <f...@fhahn.com> > Florian Zeitz <flo...@babelmonkeys.de> <flo...@babelmonkeys.de> > g3xzh <g3...@yahoo.com> <g3...@yahoo.com> > Gareth Smith <garethdanielsm...@gmail.com> <garethdanielsm...@gmail.com> > Geoff Hill <ge...@geoffhill.org> <ge...@geoffhill.org> > Geoffroy Couprie <geo.coup...@gmail.com> <geo.coup...@gmail.com> > Georges Dubus <georges.du...@compiletoi.net><georges.du...@compiletoi.net> > gifnksm <makoto.nksm+git...@gmail.com> <makoto.nksm+git...@gmail.com> > Guillaume Pinot <texi...@texitoi.eu> <texi...@texitoi.eu> > Gyorgy Andrasek <jur...@gmail.com> <jur...@gmail.com> > Harry Marr <harry.m...@gmail.com> <harry.m...@gmail.com> > Heather <heat...@cynede.net> <heat...@cynede.net> > Huon Wilson <dbau.pp+git...@gmail.com> <dbau.pp+git...@gmail.com> > Ian Daniher <it.dani...@gmail.com> <it.dani...@gmail.com> > Igor Bukanov <i...@mir2.org> <i...@mir2.org> > Isaac Dupree <antis...@idupree.com> <antis...@idupree.com> > Jack Moffitt <j...@metajack.im> <j...@metajack.im> > Jaemin Moon <jaemin.m...@samsung.com> <jaemin.m...@samsung.com> > Jan Niklas Hasse <jha...@gmail.com> <jha...@gmail.com> > Jannis Harder <j...@jixco.de> <j...@jixco.de> > Jason Orendorff <jason.orendo...@gmail.com> <jason.orendo...@gmail.com> > Jason Toffaletti <ja...@topsy.com> <ja...@topsy.com> > Jay Anderson <jayanders...@gmail.com> <jayanders...@gmail.com> > Jed Davis <j...@panix.com> <j...@panix.com> > Jeff Olson <olson.jeff...@gmail.com> <olson.jeff...@gmail.com> > Joe Schafer <j...@jschaf.com> <j...@jschaf.com> > John Louis Walker <inj...@gmail.com> <inj...@gmail.com> > Jordi Boggiano <j.boggi...@seld.be> <j.boggi...@seld.be> > Joshua Yanovski <pythones...@gmail.com> <pythones...@gmail.com> > Julia Evans <ju...@jvns.ca> <ju...@jvns.ca> > Jyun-Yan You <jy...@cs.nctu.edu.tw> <jy...@cs.nctu.edu.tw> > Keegan McAllister <kmcallis...@mozilla.com> <kmcallis...@mozilla.com> > Kevin Ballard <ke...@sb.org> <ke...@sb.org> > Kiet Tran <ktt...@gmail.com> <ktt...@gmail.com> > klutzy <klutzytheklu...@gmail.com> <klutzytheklu...@gmail.com> > kud1ing <git...@kudling.de> <git...@kudling.de> > Leah Hanson <astriea...@gmail.com> <astriea...@gmail.com> > LEE Wondong <wdle...@gmail.com> <wdle...@gmail.com> > Léo Testard <leo.test...@gmail.com> <leo.test...@gmail.com> > Lindsey Kuper <lind...@composition.al> <lind...@composition.al> > Luca Bruno <lu...@debian.org> <lu...@debian.org> > Luis de Bethencourt <l...@debethencourt.com> <l...@debethencourt.com> > Luqman Aden <la...@csclub.uwaterloo.ca> <la...@csclub.uwaterloo.ca> > lyuts <diox...@gmail.com> <diox...@gmail.com> > Mark Rowe <mr...@bdash.net.nz> <mr...@bdash.net.nz> > Marvin Löbel <loebel.mar...@gmail.com> <loebel.mar...@gmail.com> > Matt Carberry <carberry.m...@gmail.com> <carberry.m...@gmail.com> > Matthew Auld <matthew.a...@intel.com> <matthew.a...@intel.com> > Matthew Iselin <matt...@theiselins.net> <matt...@theiselins.net> > Micah Chalmer <mi...@micahchalmer.net> <mi...@micahchalmer.net> > Michael 'devbug' Williams <m.t.willi...@live.com> <m.t.willi...@live.com> > Michael Letterle <michael.lette...@gmail.com> <michael.lette...@gmail.com> > Michael Woerister <michaelwoerister@gmail> > niftynif <nif.w...@gmail.com> <nif.w...@gmail.com> > Niko Matsakis <n...@alum.mit.edu> <n...@alum.mit.edu> > Noufal Ibrahim <nou...@nibrahim.net.in> <nou...@nibrahim.net.in> > Olivier Saut <os...@airpost.net> <os...@airpost.net> > osa1 <omeraga...@gmail.com> <omeraga...@gmail.com> > Palmer Cox <p...@lmercox.com> <p...@lmercox.com> > Patrick Walton <pcwal...@mimiga.net> <pcwal...@mimiga.net> > Peter Zotov <whitequ...@whitequark.org> <whitequ...@whitequark.org> > Philipp Brüschweiler <ble...@gmail.com> <ble...@gmail.com> > Raphael Speyer <rspe...@gmail.com> <rspe...@gmail.com> > reedlepee <reedlepee...@gmail.com> <reedlepee...@gmail.com> > Richard Diamond <wich...@vitalitystudios.com><wich...@vitalitystudios.com> > Robert Irelan <rire...@gmail.com> <rire...@gmail.com> > Scott Lawrence <byt...@gmail.com> <byt...@gmail.com> > Sébastien Chauvel <eichi...@mailoo.org> <eichi...@mailoo.org> > Sébastien Crozet <develo...@crozet.re> <develo...@crozet.re> > Sébastien Paolacci > <sebastien.paola...@gmail.com><sebastien.paola...@gmail.com> > Seo Sanghyeon <sanx...@gmail.com> <sanx...@gmail.com> > sh8281.kim <sh8281....@samsung.com> <sh8281....@samsung.com> > SiegeLord <slab...@aim.com> <slab...@aim.com> > sp3d <sp3d@github> > S Pradeep Kumar <gohan...@gmail.com> <gohan...@gmail.com> > Steve Klabnik <st...@steveklabnik.com> <st...@steveklabnik.com> > Steven Fackler <sfack...@gmail.com> <sfack...@gmail.com> > Strahinja Val Markovic <v...@markovic.io> <v...@markovic.io> > Tim Chevalier <cheval...@alum.wellesley.edu><cheval...@alum.wellesley.edu> > Tomas Sedovic <to...@sedovic.cz> <to...@sedovic.cz> > Vadim Chugunov <vadi...@gmail.com> <vadi...@gmail.com> > Vijay Korapaty <r...@korapaty.com> <r...@korapaty.com> > Volker Mische <volker.mis...@gmail.com> <volker.mis...@gmail.com> > Young-il Choi <duddlf.c...@samsung.com> <duddlf.c...@samsung.com> > Zach Kamsler <smoo.mas...@gmail.com> <smoo.mas...@gmail.com> > Zack Corr <z...@z0w0.me> <z...@z0w0.me> > Ziad Hatahet <hata...@gmail.com> <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