Work on 0.6 release notes

This commit is contained in:
Brian Anderson 2013-03-11 18:27:41 -07:00
parent 878a31066d
commit 5d3d0890a7
1 changed files with 79 additions and 2 deletions

View File

@ -1,8 +1,85 @@
Version 0.6 (?)
Version 0.6 (March 2013)
---------------------------
* ~??? changes, numerous bugfixes
* TODO:
* Ord/Cmp
* Lifetime changes
* Implicit self
* Remove `static` keyword
* Static method syntax
* `as Trait`
* `copy` removed?
* Syntax changes
* The self type parameter in traits is now spelled `Self`
* Replaced the `Durable` trait with the `'static` lifetime
* The old closure type syntax with the trailing sigil has been
removed in favor of the more consistent leading sigil
* `super` is a keyword, and may be prefixed to paths
* Trait bounds are separated with `+` instead of whitespace
* Traits are implemented with `impl Trait for Type`
instead of `impl Type: Trait`
* The `export` keyword has finally been removed
* The `move` keyword has been removed (linear types move by default)
* The interior mutability qualifier on vectors, `[mut T]`, has been
removed. Use `&mut [T]`, etc.
* `mut` is no longer valid in `~mut T`. Use inherited mutability
* `fail` is no longer a keyword. Use `fail!()`
* `assert` is no longer a keyword. Use `assert!()`
* `log` is no longer a keyword. use `debug!`, etc.
* 1-tuples may be represented as `(T,)`
* Struct fields may no longer be `mut`. Use inherited mutability,
`@mut T`, `core::mut` or `core::cell`
* `extern mod { ... }` is no longer valid syntax for foreign
function modules. Use extern blocks: `extern { ... }`
* Newtype enums removed. Used tuple-structs.
* Trait implementations no longer support visibility modifiers
* Semantic changes
* Linear types move by default, eliminating the `move` keyword
* All foreign functions are considered unsafe
* &mut is now unaliasable
* Writes to borrowed @mut pointers are prevented dynamically
* () has size 0
* The name of the main function can be customized using #[main]
* The default type of an inferred closure is &fn instead of @fn
* Name resolution continues to be tweaked
* Method visibility is inherited from the implementation declaration
* Other language changes
* Structural records have been removed
* Many more types can be used in constants, including enums
`static lifetime pointers and vectors
* Pattern matching over vectors improved and expanded
* Typechecking of closure types has been overhauled to
improve inference and eliminate unsoundness
* Libraries
* `core::send_map` renamed to `core::hashmap`
* Lots of effort to organize the container API's around `core::container`
* `core::send_map` renamed to `core::hashmap`
* Added big integers to `std::bigint`
* Removed `core::oldcomm` module
* Added pipe-based `core::comm` module
* Reimplemented `std::treemap`
* Numeric traits have been reorganized under `core::num`
* `core::dvec` removed. Use `@mut ~[T]` or other language types
* `vec::slice` finally returns a slice
* `debug!` and friends don't require a format string, e.g. `debug!(Foo)`
* Tools
* Replaced the 'cargo' package manager with 'rustpkg'
* Added all-purpose 'rust' tool
* `rustc --test` now supports a benchmarks with the `#[bench]` attribute
* rustc now attempts to offer spelling suggestions
* Misc
* Improved support for ARM and Android
* Preliminary MIPS backend
* Improved foreign function ABI implementation for x86, x86_64
* Various and memory usage improvements
* Rust code may be embedded in foreign code under limited circumstances
Version 0.5 (December 2012)
---------------------------