1
1
Version 0.6 (March 2013)
2
2
---------------------------
3
3
4
- * ~2000 changes, numerous bugfixes
5
-
6
- * TODO:
7
- * Ord/Cmp
8
- * Lifetime changes
9
- * Remove `static` keyword
10
- * Static method syntax
11
- * `as Trait`
12
- * `copy` removed, replaced with `Clone`?
13
- * More details for "Name resolution continues to be tweaked"?
4
+ * ~2100 changes, numerous bugfixes
14
5
15
6
* Syntax changes
16
7
* The self type parameter in traits is now spelled `Self`
17
8
* The `self` parameter in trait and impl methods must now be explicitly
18
9
named (for example: `fn f(&self) { }`). Implicit self is deprecated.
10
+ * Static methods no longer require the `static` keyword and instead
11
+ are distinguished by the lack of a `self` parameter
19
12
* Replaced the `Durable` trait with the `'static` lifetime
20
13
* The old closure type syntax with the trailing sigil has been
21
14
removed in favor of the more consistent leading sigil
22
15
* `super` is a keyword, and may be prefixed to paths
23
16
* Trait bounds are separated with `+` instead of whitespace
24
17
* Traits are implemented with `impl Trait for Type`
25
18
instead of `impl Type: Trait`
19
+ * Lifetime syntax is now `&'l foo` instead of `&l/foo`
26
20
* The `export` keyword has finally been removed
27
21
* The `move` keyword has been removed (see "Semantic changes")
28
22
* The interior mutability qualifier on vectors, `[mut T]`, has been
@@ -41,9 +35,11 @@ Version 0.6 (March 2013)
41
35
* Pattern matching over vectors improved and expanded
42
36
* `const` renamed to `static` to correspond to lifetime name,
43
37
and make room for future `static mut` unsafe mutable globals.
44
- * Replaced `#[deriving_eq]` with `#[deriving(Eq)]`
38
+ * Replaced `#[deriving_eq]` with `#[deriving(Eq)]`, etc.
45
39
* `Clone` implementations can be automatically generated with
46
40
`#[deriving(Clone)]`
41
+ * Casts to traits must use a pointer sigil, e.g. `@foo as @Bar`
42
+ instead of `foo as Bar`.
47
43
48
44
* Semantic changes
49
45
* Types with owned pointers or custom destructors move by default,
@@ -54,7 +50,11 @@ Version 0.6 (March 2013)
54
50
* () has size 0
55
51
* The name of the main function can be customized using #[main]
56
52
* The default type of an inferred closure is &fn instead of @fn
57
- * Name resolution continues to be tweaked
53
+ * `use` statements may no longer be "chained" - they cannot import
54
+ identifiers imported by previous `use` statements
55
+ * `use` statements are crate relative, importing from the "top"
56
+ of the crate by default. Paths may be prefixed with `super::`
57
+ or `self::` to change the search behavior.
58
58
* Method visibility is inherited from the implementation declaration
59
59
* Structural records have been removed
60
60
* Many more types can be used in static items, including enums
@@ -78,14 +78,15 @@ Version 0.6 (March 2013)
78
78
* `std::deque` and `std::smallintmap` reimplemented as owned containers
79
79
* `core::trie` added as a fast ordered map for integer keys
80
80
* Set types added to `core::hashmap`, `core::trie` and `std::treemap`
81
+ * `Ord` split into `Ord` and `TotalOrd`. `Ord` is still used to
82
+ overload the comparison operators, whereas `TotalOrd` is used
83
+ by certain container types
81
84
82
- * Tools
85
+ * Other
83
86
* Replaced the 'cargo' package manager with 'rustpkg'
84
87
* Added all-purpose 'rust' tool
85
88
* `rustc --test` now supports benchmarks with the `#[bench]` attribute
86
- * rustc now attempts to offer spelling suggestions
87
-
88
- * Misc
89
+ * rustc now *attempts* to offer spelling suggestions
89
90
* Improved support for ARM and Android
90
91
* Preliminary MIPS backend
91
92
* Improved foreign function ABI implementation for x86, x86_64
0 commit comments