@@ -26,11 +26,14 @@ Version 1.0.0-alpha (January 2015)
26
26
bounds and thus monomorphized and inlined, or via an opaque
27
27
pointer (boxed) as in the old system. The new system is often
28
28
referred to as 'unboxed' closures.
29
+ * Traits now support [ associated types] [ assoc ] , allowing families
30
+ of related types to be defined together and used generically in
31
+ powerful ways.
29
32
* Enum variants are [ namespaced by their type names] [ enum ] .
30
33
* [ ` where ` clauses] [ where ] provide a more versatile and attractive
31
34
syntax for specifying generic bounds, though the previous syntax
32
35
remains valid.
33
- * Rust again picks a [ fallback] (either i32 or f64) for uninferred
36
+ * Rust again picks a [ fallback] [ fb ] (either i32 or f64) for uninferred
34
37
numeric types.
35
38
* Rust [ no longer has a runtime] [ rt ] of any description, and only
36
39
supports OS threads, not green threads.
@@ -40,7 +43,7 @@ Version 1.0.0-alpha (January 2015)
40
43
more consistent.
41
44
* Rust now has a general [ range syntax] [ range ] , ` i..j ` , ` i.. ` , and
42
45
` ..j ` that produce range types and which, when combined with the
43
- ` Index ` operator and multitispatch , leads to a convenient slice
46
+ ` Index ` operator and multidispatch , leads to a convenient slice
44
47
notation, ` [i..j] ` .
45
48
* The new range syntax revealed an ambiguity in the fixed-length
46
49
array syntax, so now fixed length arrays [ are written `[ T;
@@ -81,13 +84,15 @@ Version 1.0.0-alpha (January 2015)
81
84
not terminated by a semicolon are [ parsed as
82
85
expressions] [ macros ] , which makes expressions like `vec![ 1i32,
83
86
2, 3] .len()` work as expected.
84
- * Trait objects now implement their traits automatically.
87
+ * Trait objects now implement their traits automatically, and
88
+ traits that can be coerced to objects now must be [ object
89
+ safe] [ objsafe ] .
85
90
* Automatically deriving traits is now done with ` #[derive(...)] `
86
91
not ` #[deriving(...)] ` for [ consistency with other naming
87
92
conventions] [ derive ] .
88
- * Importing the containing module at the same time as items it
89
- contains is [ now done with ` self ` instead of ` mod ` ] [ self ] , as in
90
- use ` foo::{self, bar} `
93
+ * Importing the containing module or enum at the same time as
94
+ items or variants they contain is [ now done with ` self ` instead
95
+ of ` mod ` ] [ self ] , as in use ` foo::{self, bar} `
91
96
92
97
* Libraries
93
98
@@ -101,7 +106,7 @@ Version 1.0.0-alpha (January 2015)
101
106
it is easier to discuss failure in the context of error handling
102
107
without making clarifications as to whether you are referring to
103
108
the 'fail' macro or failure more generally.
104
- * On Linux, ` OsRng ` prefers the new, more reliable `getrandom'
109
+ * On Linux, ` OsRng ` prefers the new, more reliable ` getrandom `
105
110
syscall when available.
106
111
* The 'serialize' crate has been renamed 'rustc-serialize' and
107
112
moved out of the distribution to Cargo. Although it is widely
@@ -159,7 +164,9 @@ Version 1.0.0-alpha (January 2015)
159
164
[ show ] : https://github.com/rust-lang/rfcs/blob/master/text/0504-show-stabilization.md
160
165
[ derive ] : https://github.com/rust-lang/rfcs/blob/master/text/0534-deriving2derive.md
161
166
[ self ] : https://github.com/rust-lang/rfcs/blob/master/text/0532-self-in-use.md
162
- [ fallback ] : https://github.com/rust-lang/rfcs/blob/master/text/0212-restore-int-fallback.md
167
+ [ fb ] : https://github.com/rust-lang/rfcs/blob/master/text/0212-restore-int-fallback.md
168
+ [ objsafe ] : https://github.com/rust-lang/rfcs/blob/master/text/0255-object-safety.md
169
+ [ assoc ] : https://github.com/rust-lang/rfcs/blob/master/text/0195-associated-items.md
163
170
164
171
Version 0.12.0 (October 2014)
165
172
-----------------------------
0 commit comments