|
1 |
| -Version 0.6 (?) |
| 1 | +Version 0.6 (March 2013) |
2 | 2 | ---------------------------
|
3 | 3 |
|
| 4 | + * ~??? changes, numerous bugfixes |
| 5 | + |
| 6 | + * TODO: |
| 7 | + * Ord/Cmp |
| 8 | + * Lifetime changes |
| 9 | + * Implicit self |
| 10 | + * Remove `static` keyword |
| 11 | + * Static method syntax |
| 12 | + * `as Trait` |
| 13 | + * `copy` removed? |
| 14 | + |
| 15 | + * Syntax changes |
| 16 | + * The self type parameter in traits is now spelled `Self` |
| 17 | + * Replaced the `Durable` trait with the `'static` lifetime |
| 18 | + * The old closure type syntax with the trailing sigil has been |
| 19 | + removed in favor of the more consistent leading sigil |
| 20 | + * `super` is a keyword, and may be prefixed to paths |
| 21 | + * Trait bounds are separated with `+` instead of whitespace |
| 22 | + * Traits are implemented with `impl Trait for Type` |
| 23 | + instead of `impl Type: Trait` |
| 24 | + * The `export` keyword has finally been removed |
| 25 | + * The `move` keyword has been removed (linear types move by default) |
| 26 | + * The interior mutability qualifier on vectors, `[mut T]`, has been |
| 27 | + removed. Use `&mut [T]`, etc. |
| 28 | + * `mut` is no longer valid in `~mut T`. Use inherited mutability |
| 29 | + * `fail` is no longer a keyword. Use `fail!()` |
| 30 | + * `assert` is no longer a keyword. Use `assert!()` |
| 31 | + * `log` is no longer a keyword. use `debug!`, etc. |
| 32 | + * 1-tuples may be represented as `(T,)` |
| 33 | + * Struct fields may no longer be `mut`. Use inherited mutability, |
| 34 | + `@mut T`, `core::mut` or `core::cell` |
| 35 | + * `extern mod { ... }` is no longer valid syntax for foreign |
| 36 | + function modules. Use extern blocks: `extern { ... }` |
| 37 | + * Newtype enums removed. Used tuple-structs. |
| 38 | + * Trait implementations no longer support visibility modifiers |
| 39 | + |
| 40 | + * Semantic changes |
| 41 | + * Linear types move by default, eliminating the `move` keyword |
| 42 | + * All foreign functions are considered unsafe |
| 43 | + * &mut is now unaliasable |
| 44 | + * Writes to borrowed @mut pointers are prevented dynamically |
| 45 | + * () has size 0 |
| 46 | + * The name of the main function can be customized using #[main] |
| 47 | + * The default type of an inferred closure is &fn instead of @fn |
| 48 | + * Name resolution continues to be tweaked |
| 49 | + * Method visibility is inherited from the implementation declaration |
| 50 | + |
| 51 | + * Other language changes |
| 52 | + * Structural records have been removed |
| 53 | + * Many more types can be used in constants, including enums |
| 54 | + `static lifetime pointers and vectors |
| 55 | + * Pattern matching over vectors improved and expanded |
| 56 | + * Typechecking of closure types has been overhauled to |
| 57 | + improve inference and eliminate unsoundness |
| 58 | + |
4 | 59 | * Libraries
|
5 |
| - * `core::send_map` renamed to `core::hashmap` |
| 60 | + * Lots of effort to organize the container API's around `core::container` |
| 61 | + * `core::send_map` renamed to `core::hashmap` |
| 62 | + * Added big integers to `std::bigint` |
| 63 | + * Removed `core::oldcomm` module |
| 64 | + * Added pipe-based `core::comm` module |
| 65 | + * Reimplemented `std::treemap` |
| 66 | + * Numeric traits have been reorganized under `core::num` |
| 67 | + * `core::dvec` removed. Use `@mut ~[T]` or other language types |
| 68 | + * `vec::slice` finally returns a slice |
| 69 | + * `debug!` and friends don't require a format string, e.g. `debug!(Foo)` |
| 70 | + |
| 71 | + * Tools |
| 72 | + * Replaced the 'cargo' package manager with 'rustpkg' |
| 73 | + * Added all-purpose 'rust' tool |
| 74 | + * `rustc --test` now supports a benchmarks with the `#[bench]` attribute |
| 75 | + * rustc now attempts to offer spelling suggestions |
| 76 | + |
| 77 | + * Misc |
| 78 | + * Improved support for ARM and Android |
| 79 | + * Preliminary MIPS backend |
| 80 | + * Improved foreign function ABI implementation for x86, x86_64 |
| 81 | + * Various and memory usage improvements |
| 82 | + * Rust code may be embedded in foreign code under limited circumstances |
6 | 83 |
|
7 | 84 | Version 0.5 (December 2012)
|
8 | 85 | ---------------------------
|
|
0 commit comments