Re: [rust-dev] Rust 0.9 released
Just in case somebody wants one with the correct title. So sad. On 01/09/2014 01:04 PM, Brian Anderson 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 `rfoo` 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 `0o`. * 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
Re: [rust-dev] Rust 0.9 released
Congrats everyone! Here's to 0.10. :) On Thu, Jan 9, 2014 at 4:04 PM, Brian Anderson bander...@mozilla.comwrote: 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 `rfoo` 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 `0o`. * 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
Re: [rust-dev] Rust 0.9 released
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 `rfoo` 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 `0o`. * The `concat!` syntax extension performs compile-time string concatenation. * The `#[fixed_stack_segment]` and `#[rust_stack]` attributes
Re: [rust-dev] Rust 0.9 released
Awesome job! Keep up the good work. -- Ziad On Thu, Jan 9, 2014 at 1:10 PM, Benjamin Striegel ben.strie...@gmail.comwrote: Congrats everyone! Here's to 0.10. :) On Thu, Jan 9, 2014 at 4:04 PM, Brian Anderson bander...@mozilla.comwrote: 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 `rfoo` 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 `0o`. * 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
Re: [rust-dev] Rust 0.9 released
Much blush Congratulations, this looks like a big step in a right direction, and in a very short time. When I build on Debian amd64 with g++-4.8.2, I get internal C++ compiler failures in stage 0. I run make again, and it builds OK for a while, and then dies on another file. It does finish stage 0 after a few cycles of this. Should I be using the other C++ compiler? Also, running make -j4, I get failures like: /bin/mv: cannot stat `/tmp/rust-0.9/x86_64-unknown-linux-gnu/llvm/utils/TableGen/Release+Asserts/AsmMatcherEmitter.d.tmp': No such file or directory I haven't seen these when building with just make. (0.8 built without hiccups on g++-4.7 and make -j3.) Nathan Myers On 01/09/2014 01:04 PM, Brian Anderson wrote: Just in case somebody wants one with the correct title. So sad. On 01/09/2014 01:04 PM, Brian Anderson 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 `rfoo` 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
Re: [rust-dev] Rust 0.9 released
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 `rfoo` 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 `0o`. * 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