1
1
Version 0.7 (July 2013)
2
2
-----------------------
3
3
4
- * ??? changes, numerous bugfixes
4
+ * ~2000 changes, numerous bugfixes
5
5
6
- * Syntax changes
6
+ * Language
7
7
* `impl`s no longer accept a visibility qualifier. Put them on methods
8
8
instead.
9
- * `use mod` is no longer valid.
10
- * `fail!` and `assert!` accept `~str`, `&'static str` or `fmt!`-style
11
- argument list.
12
- * `Encodable`, `Decodable`, `Ord`, `TotalOrd`, `TotalEq`, `DeepClone`,
13
- `Rand`, `Zero` and `ToStr` can all be automatically derived with
14
- `#[deriving(...)]`.
15
- * The `Durable` trait is replaced with the `'static` bounds.
16
- * At long last, 'argument modes' no longer exist.
17
- * The `bytes!` macro returns a vector of bytes for string, u8, char,
18
- and unsuffixed integer literals.
19
- * `#[static_assert]` makes compile-time assertions about static bools.
20
-
21
- * Semantic changes
22
9
* The borrow checker has been rewritten with flow-sensitivity, fixing
23
10
many bugs and inconveniences.
24
11
* The `self` parameter no longer implicitly means `&'self self`,
25
12
and can be explicitly marked with a lifetime.
26
- * Structs with the `#[packed]` attribute have byte alignment and
27
- no padding between fields .
13
+ * Overloadable compound operators (`+=`, etc.) have been temporarily
14
+ removed due to bugs .
28
15
* The `for` loop protocol now requires `for`-iterators to return `bool`
29
16
so they compose better.
17
+ * The `Durable` trait is replaced with the `'static` bounds.
30
18
* Trait default methods work more often.
19
+ * Structs with the `#[packed]` attribute have byte alignment and
20
+ no padding between fields.
31
21
* Type parameters bound by `Copy` must now be copied explicitly with
32
22
the `copy` keyword.
33
23
* It is now illegal to move out of a dereferenced unsafe pointer.
34
24
* `Option<~T>` is now represented as a nullable pointer.
35
25
* `@mut` does dynamic borrow checks correctly.
36
- * Macros TODO
37
26
* The `main` function is only detected at the topmost level of the crate.
38
27
The `#[main]` attribute is still valid anywhere.
39
28
* Struct fields may no longer be mutable. Use inherited mutability.
40
- * The `#[non_owned ]` attribute makes a type that would otherwise be
41
- `Owned `, not. TODO this may change to non_send before 0.7
42
- * The `#[mutable ]` attribute makes a type that would otherwise be
43
- `Const `, note. TODO this may change to non_freeze before 0.7
29
+ * The `#[no_send ]` attribute makes a type that would otherwise be
30
+ `Send `, not.
31
+ * The `#[no_freeze ]` attribute makes a type that would otherwise be
32
+ `Freeze `, not.
44
33
* Unbounded recursion will abort the process after reaching the limit
45
34
specified by the `RUST_MAX_STACK` environment variable (default: 1GB).
46
35
* The `vecs_implicitly_copyable` lint mode has been removed. Vectors
47
36
are never implicitly copyable.
37
+ * `#[static_assert]` makes compile-time assertions about static bools.
38
+ * At long last, 'argument modes' no longer exist.
39
+ * The rarely used `use mod` statement no longer exists.
40
+
41
+ * Syntax extensions
42
+ * `fail!` and `assert!` accept `~str`, `&'static str` or `fmt!`-style
43
+ argument list.
44
+ * `Encodable`, `Decodable`, `Ord`, `TotalOrd`, `TotalEq`, `DeepClone`,
45
+ `Rand`, `Zero` and `ToStr` can all be automatically derived with
46
+ `#[deriving(...)]`.
47
+ * The `bytes!` macro returns a vector of bytes for string, u8, char,
48
+ and unsuffixed integer literals.
48
49
49
50
* Libraries
50
51
* The `core` crate was renamed to `std`.
51
52
* The `std` crate was renamed to `extra`.
53
+ * More and improved documentation.
52
54
* std: `iterator` module for external iterator objects.
53
55
* Many old-style (internal, higher-order function) iterators replaced by
54
56
implementations of `Iterator`.
@@ -91,8 +93,16 @@ Version 0.7 (July 2013)
91
93
* extra: Implementation of fixed output size variations of SHA-2.
92
94
93
95
* Tooling
94
- * `unused_unsafe` lint mode for detecting unnecessary `unsafe` blocks.
95
- * `unused_mut` lint mode for identifying unused `mut` qualifiers.
96
+ * `unused_variable` lint mode for unused variables (default: warn).
97
+ * `unused_unsafe` lint mode for detecting unnecessary `unsafe` blocks
98
+ (default: warn).
99
+ * `unused_mut` lint mode for identifying unused `mut` qualifiers
100
+ (default: warn).
101
+ * `dead_assignment` lint mode for unread variables (default: warn).
102
+ * `unnecessary_allocation` lint mode detects some heap allocations that are
103
+ immediately borrowed so could be written without allocating (default: warn).
104
+ * `missing_doc` lint mode (default: allow).
105
+ * `unreachable_code` lint mode (default: warn).
96
106
* The `rusti` command has been rewritten and a number of bugs addressed.
97
107
* rustc outputs in color on more terminals.
98
108
* rustc accepts a `--link-args` flag to pass arguments to the linker.
@@ -101,12 +111,7 @@ Version 0.7 (July 2013)
101
111
dynamic borrowcheck failures for debugging.
102
112
* rustdoc has a nicer stylesheet.
103
113
* Various improvements to rustdoc.
104
- * Improvements to rustpkg (see the detailed release notes)
105
-
106
- * Other
107
- * More and improved library documentation.
108
- * Various improvements on ARM and Android.
109
- * Various improvements to MIPS backend.
114
+ * Improvements to rustpkg (see the detailed release notes).
110
115
111
116
Version 0.6 (April 2013)
112
117
------------------------
0 commit comments