11Version 0.7 (July 2013)
22-----------------------
33
4- * ??? changes, numerous bugfixes
4+ * ~2000 changes, numerous bugfixes
55
6- * Syntax changes
6+ * Language
77 * `impl`s no longer accept a visibility qualifier. Put them on methods
88 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
229 * The borrow checker has been rewritten with flow-sensitivity, fixing
2310 many bugs and inconveniences.
2411 * The `self` parameter no longer implicitly means `&'self self`,
2512 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 .
2815 * The `for` loop protocol now requires `for`-iterators to return `bool`
2916 so they compose better.
17+ * The `Durable` trait is replaced with the `'static` bounds.
3018 * Trait default methods work more often.
19+ * Structs with the `#[packed]` attribute have byte alignment and
20+ no padding between fields.
3121 * Type parameters bound by `Copy` must now be copied explicitly with
3222 the `copy` keyword.
3323 * It is now illegal to move out of a dereferenced unsafe pointer.
3424 * `Option<~T>` is now represented as a nullable pointer.
3525 * `@mut` does dynamic borrow checks correctly.
36- * Macros TODO
3726 * The `main` function is only detected at the topmost level of the crate.
3827 The `#[main]` attribute is still valid anywhere.
3928 * 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.
4433 * Unbounded recursion will abort the process after reaching the limit
4534 specified by the `RUST_MAX_STACK` environment variable (default: 1GB).
4635 * The `vecs_implicitly_copyable` lint mode has been removed. Vectors
4736 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.
4849
4950 * Libraries
5051 * The `core` crate was renamed to `std`.
5152 * The `std` crate was renamed to `extra`.
53+ * More and improved documentation.
5254 * std: `iterator` module for external iterator objects.
5355 * Many old-style (internal, higher-order function) iterators replaced by
5456 implementations of `Iterator`.
@@ -91,8 +93,16 @@ Version 0.7 (July 2013)
9193 * extra: Implementation of fixed output size variations of SHA-2.
9294
9395 * 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).
96106 * The `rusti` command has been rewritten and a number of bugs addressed.
97107 * rustc outputs in color on more terminals.
98108 * rustc accepts a `--link-args` flag to pass arguments to the linker.
@@ -101,12 +111,7 @@ Version 0.7 (July 2013)
101111 dynamic borrowcheck failures for debugging.
102112 * rustdoc has a nicer stylesheet.
103113 * 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).
110115
111116Version 0.6 (April 2013)
112117------------------------
0 commit comments