@@ -4,36 +4,90 @@ Version 0.7 (July 2013)
4
4
* ??? changes, numerous bugfixes
5
5
6
6
* Syntax changes
7
- * `#[deriving(Encodable)]`, `#[deriving(Decodable)]`
7
+ * `use mod` is no longer valid.
8
+ * `fail!` and `assert!` accept `~str`, `&'static str` or `fmt!`-style
9
+ argument list.
10
+ * `Encodable`, `Decodable`, `TotalOrd`, `TotalEq`, `DeepClone` can all
11
+ be automatically derived with `#[deriving(...)]`.
12
+ * The `Durable` trait is replaced with the `'static` bounds.
13
+ * At long last, 'argument modes' no longer exist.
14
+ * The `bytes!` macro returns a vector of bytes for string, u8, char,
15
+ and unsuffixed integer literals.
8
16
9
17
* Semantic changes
18
+ * The borrow checker has been rewritten with flow-sensitivity, fixing
19
+ many bugs and inconveniences.
10
20
* The `self` parameter no longer implicitly means `&'self self`,
11
21
and can be explicitly marked with a lifetime.
12
22
* Structs with the `#[packed]` attribute have byte alignment and
13
23
no padding between fields.
24
+ * The `for` loop protocol now requires `for`-iterators to return `bool`
25
+ so they compose better.
26
+ * `Option<~T>` is now represented as a nullable pointer.
27
+ * `@mut` does dynamic borrow checks correctly.
28
+ * Macros TODO
29
+ * The `main` function is only detected at the topmost level of the crate.
30
+ The `#[main]` attribute is still valid anywhere.
31
+ * Struct fields may no longer be mutable. Use inherited mutability.
32
+ * The `#[non_owned]` attribute makes a type that would otherwise be
33
+ `Owned`, not. TODO this may change to non_send before 0.7
34
+ * The `#[mutable]` attribute makes a type that would otherwise be
35
+ `Const`, note. TODO this may change to non_freeze before 0.7
36
+ * Unbounded recursion will abort the process after reaching the limit
37
+ specified by the `RUST_MAX_STACK` environment variable.
38
+ * The `vecs_implicitly_copyable` lint mode has been removed. Vectors
39
+ are never implicitly copyable.
14
40
15
41
* Libraries
16
-
17
- **Note: in 0.7 `core` was renamed `std` and `std` to `extra.
18
- These notes use the new crate names.**
19
-
20
42
* The `core` crate was renamed to `std`.
21
43
* The `std` crate was renamed to `extra`.
22
44
* `std::mut` removed.
45
+ * std: The prelude no longer reexports any modules, only types and traits.
46
+ * std: Prelude additions: `print`, `println`, `FromStr`, `ApproxEq`, `Equiv`,
47
+ `Iterator`, `IteratorUtil`, many numeric traits, many tuple traits.
23
48
* std: `iterator` module for external iterator objects.
49
+ * std: new numeric traits: `Fractional`, `Real`, `RealExt`, `Integer`, `Ratio`,
50
+ `Algebraic`, `Trigonometric`, `Exponential`, `Primitive`.
51
+ * std: Tuple traits and accessors defined for up to 12-tuples, e.g.
52
+ `(0, 1, 2).n2()` or `(0, 1, 2).n2_ref()`.
24
53
* std: many types implement `Clone` - tuples, @, @mut. TODO
25
54
* std: `path` type renamed to `Path`.
26
55
* std: Many standalone functions removed in favor of methods in
27
- `vec`, `str`, TODO. In the future methods will also work as functions.
56
+ `vec`, `str`. In the future methods will also work as functions.
57
+ * std: `reinterpret_cast` removed. Used `transmute`.
58
+ * std: ascii string handling in `std::ascii`.
59
+ * std: `Rand` is implemented for ~/@.
60
+ * std: `run` module for spawning processes overhauled.
61
+ * std: Various atomic types added to `unstable::atomic`.
62
+ * std: `LinearMap` and `LinearSet` renamed to `HashMap` and `HashSet`.
63
+ * std: Added `os::mkdir_recursive`.
64
+ * std: Added `os::glob` function performs filesystems globs.
65
+ * std: `FuzzyEq` renamed to `ApproxEq`.
66
+ * std: `Map` now defines `pop` and `swap` methods.
67
+ * extra: `flate` module moved from `std` to `extra`.
28
68
* extra: `FileInput` implements `std::io::Reader`.
29
69
* extra: `Complex` number type and `complex` module.
30
70
* extra: `Rational` number type and `rational` module.
31
71
* extra: `BigInt`, `BigUint` implement numeric and comparison traits.
72
+ * extra: `term` uses terminfo now, is more correct.
32
73
33
- * Other
74
+ * Tooling
34
75
* `unused_unsafe` lint mode for detecting unnecessary `unsafe` blocks.
35
- * More and improved library documentation .
76
+ * `unused_mut` lint mode for identifying unused `mut` qualifiers .
36
77
* The `rusti` command has been rewritten and a number of bugs addressed.
78
+ * rustc outputs in color on more terminals.
79
+ * rustc accepts a `--link-args` flag to pass arguments to the linker.
80
+ * rustc accepts a `-Z print-link-args` flag for debugging linkage.
81
+ * Compiling with `-g` will make the binary record information about
82
+ dynamic borrowcheck failures for debugging.
83
+ * rustdoc has a nicer stylesheet.
84
+ * Various improvements to rustdoc.
85
+
86
+ * Other
87
+ * More and improved library documentation.
88
+ * Various improvements on ARM and Android.
89
+ * Various improvements to MIPS backend.
90
+ * jemalloc is the Rust allocator.
37
91
38
92
Version 0.6 (April 2013)
39
93
------------------------
0 commit comments