|
1 |
| -Version 0.10 (April 2014) |
2 |
| -------------------------- |
3 |
| - |
4 |
| - * ~1500 changes, numerous bugfixes |
5 |
| - |
6 |
| - * Language |
7 |
| - * A new RFC process is now in place for modifying the language. |
8 |
| - * Patterns with `@`-pointers have been removed from the language. |
9 |
| - * Patterns with unique vectors have been removed from the language. |
10 |
| - * `@str` has been removed from the language. |
11 |
| - * `@[T]` has been removed from the language. |
12 |
| - * `@self` has been removed from the language. |
13 |
| - * `@Trait` has been removed from the language. |
14 |
| - * Headers on `~` allocations which contain `@` boxes inside the type for |
15 |
| - reference counting have been removed. |
16 |
| - * The semantics around the lifetimes of temporary expressions have changed, |
17 |
| - see #3511 and #11585 for more information. |
18 |
| - * Cross-crate syntax extensions are now possible, but feature gated. See |
19 |
| - #11151 for more information. This includes both `macro_rules!` macros as |
20 |
| - well as syntax extensions such as `format!`. |
21 |
| - * New lint modes have been added, and older ones have been turned on to be |
22 |
| - warn-by-default. |
23 |
| - * Unnecessary parentheses |
24 |
| - * Uppercase statics |
25 |
| - * Camel Case types |
26 |
| - * Uppercase variables |
27 |
| - * Publicly visible private types |
28 |
| - * Unsafe functions can no longer be coerced to closures. |
29 |
| - * Various obscure macros such as `log_syntax!` are now behind feature gates. |
30 |
| - * The #[simd] attribute is now behind a feature gate. |
31 |
| - * Visibility is no longer allowed on `extern crate` statements, and |
32 |
| - unnecessary visibility (`priv`) is no longer allowed on `use` statements. |
33 |
| - * Trailing commas are now allowed in argument lists and tuple patterns. |
34 |
| - * The `do` keyword has been removed, it is now a reserved keyword. |
35 |
| - * Default type parameters have been implemented, but are feature gated. |
36 |
| - * Borrowed variables through captures in closures are now considered soundly. |
37 |
| - * `extern mod` is now `extern crate` |
38 |
| - * The `Freeze` trait has been removed. |
39 |
| - * The `Share` trait has been added for types that can be shared among |
40 |
| - threads. |
41 |
| - * Labels in macros are now hygienic. |
42 |
| - * Expresson/statement macro invocations can be delimited with `{}` now. |
43 |
| - * Treatment of types allowed in `static mut` locations has been tweaked. |
44 |
| - * The `*` and `.` operators are now overloadable through the `Deref` and |
45 |
| - `DerefMut` traits. |
46 |
| - * `~Trait` and `proc` no longer have `Send` bounds by default. |
47 |
| - * Partial type hints are now supported with the `_` type marker. |
48 |
| - * An `Unsafe` type was introduced for interior mutability. It is now |
49 |
| - considered undefined to transmute from `&T` to `&mut T` without using the |
50 |
| - `Unsafe` type. |
51 |
| - * The #[linkage] attribute was implemented for extern statics/functions. |
52 |
| - * The inner attribute syntax has changed from `#[foo];` to `#![foo]`. |
53 |
| - * `Pod` was renamed to `Copy`. |
54 |
| - |
55 |
| - * Libraries |
56 |
| - * The `libextra` library has been removed. It has now been decomposed into |
57 |
| - component libraries with smaller and more focused nuggets of |
58 |
| - functionality. The full list of libraries can be found on the |
59 |
| - documentation index page. |
60 |
| - * std: `std::condition` has been removed. All I/O errors are now propagated |
61 |
| - through the `Result` type. In order to assist with error handling, a |
62 |
| - `try!` macro for unwrapping errors with an early return and an lint for |
63 |
| - unused results has been added. See #12039 for more information. |
64 |
| - * std: The `vec` module has been renamed to `slice`. |
65 |
| - * std: A new vector type, `Vec<T>`, has been added in preparation for DST. |
66 |
| - This will become the only growable vector in the future. |
67 |
| - * std: `std::io` now has more public-reexports. Types such as `BufferedReader` |
68 |
| - are now found at `std::io::BufferedReader` instead of |
69 |
| - `std::io::buffered::BufferedReader`. |
70 |
| - * std: `print` and `println` are no longer in the prelude, the `print!` and |
71 |
| - `println!` macros are intended to be used instead. |
72 |
| - * std: `Rc` now has a `Weak` pointer for breaking cycles, and it no longer |
73 |
| - attempts to statically prevent cycles. |
74 |
| - * std: The standard distribution is adopting the policy of pushing failure |
75 |
| - to the user rather than failing in libraries. Many functions (such as |
76 |
| - `slice::last()`) now return `Option<T>` instead of `T` + failing. |
77 |
| - * std: `fmt::Default` has been renamed to `fmt::Show`, and it now has a new |
78 |
| - deriving mode: `#[deriving(Show)]`. |
79 |
| - * std: `ToStr` is now implemented for all types implementing `Show`. |
80 |
| - * std: The formatting trait methods now take `&self` instead of `&T` |
81 |
| - * std: The `invert()` method on iterators has been renamed to `rev()` |
82 |
| - * std: `std::num` has seen a reduction in the genericity of its traits, |
83 |
| - consolidating functionality into a few core traits. |
84 |
| - * std: Backtraces are now printed on task failure if the environment |
85 |
| - variable `RUST_BACKTRACE` is present. |
86 |
| - * std: Naming conventions for iterators have been standardized. More details |
87 |
| - can be found on the wiki's style guide. |
88 |
| - * std: `eof()` has been removed from the `Reader` trait. Specific types may |
89 |
| - still implement the function. |
90 |
| - * std: Networking types are now cloneable to allow simultaneous reads/writes. |
91 |
| - * std: `assert_approx_eq!` has been removed |
92 |
| - * std: The `e` and `E` formatting specifiers for floats have been added to |
93 |
| - print them in exponential notation. |
94 |
| - * std: The `Times` trait has been removed |
95 |
| - * std: Indications of variance and opting out of builtin bounds is done |
96 |
| - through marker types in `std::kinds::marker` now |
97 |
| - * std: `hash` has been rewritten, `IterBytes` has been removed, and |
98 |
| - `#[deriving(Hash)]` is now possible. |
99 |
| - * std: `SharedChan` has been removed, `Sender` is now cloneable. |
100 |
| - * std: `Chan` and `Port` were renamed to `Sender` and `Receiver`. |
101 |
| - * std: `Chan::new` is now `channel()`. |
102 |
| - * std: A new synchronous channel type has been implemented. |
103 |
| - * std: A `select!` macro is now provided for selecting over `Receiver`s. |
104 |
| - * std: `hashmap` and `trie` have been moved to `libcollections` |
105 |
| - * std: `run` has been rolled into `io::process` |
106 |
| - * std: `assert_eq!` now uses `{}` instead of `{:?}` |
107 |
| - * std: The equality and comparison traits have seen some reorganization. |
108 |
| - * std: `rand` has moved to `librand`. |
109 |
| - * std: `to_{lower,upper}case` has been implemented for `char`. |
110 |
| - * std: Logging has been moved to `liblog`. |
111 |
| - * collections: `HashMap` has been rewritten for higher performance and less |
112 |
| - memory usage. |
113 |
| - * native: The default runtime is now `libnative`. If `libgreen` is desired, |
114 |
| - it can be booted manually. The runtime guide has more information and |
115 |
| - examples. |
116 |
| - * native: All I/O functionality except signals has been implemented. |
117 |
| - * green: Task spawning with `libgreen` has been optimized with stack caching |
118 |
| - and various trimming of code. |
119 |
| - * green: Tasks spawned by `libgreen` now have an unmapped guard page. |
120 |
| - * sync: The `extra::sync` module has been updated to modern rust (and moved |
121 |
| - to the `sync` library), tweaking and improving various interfaces while |
122 |
| - dropping redundant functionality. |
123 |
| - * sync: A new `Barrier` type has been added to the `sync` library. |
124 |
| - * sync: An efficient mutex for native and green tasks has been implemented. |
125 |
| - * serialize: The `base64` module has seen some improvement. It treats |
126 |
| - newlines better, has non-string error values, and has seen general |
127 |
| - cleanup. |
128 |
| - * fourcc: A `fourcc!` macro was introduced |
129 |
| - * hexfloat: A `hexfloat!` macro was implemented for specifying floats via a |
130 |
| - hexadecimal literal. |
131 |
| - |
132 |
| - * Tooling |
133 |
| - * `rustpkg` has been deprecated and removed from the main repository. Its |
134 |
| - replacement, `cargo`, is under development. |
135 |
| - * Nightly builds of rust are now available (INSERT URL HERE) |
136 |
| - * The memory usage of rustc has been improved many times throughout this |
137 |
| - release cycle. |
138 |
| - * The build process supports disabling rpath support for the rustc binary |
139 |
| - itself. |
140 |
| - * Code generation has improved in some cases, giving more information to the |
141 |
| - LLVM optimization passes to enable more extensive optimizations. |
142 |
| - * Debuginfo compatibility with lldb on OSX has been restored. |
143 |
| - * The master branch is now gated on an android bot, making building for |
144 |
| - android much more reliable. |
145 |
| - * Output flags have been centralized into one `--emit` flag. |
146 |
| - * Crate type flags have been centralized into one `--crate-type` flag. |
147 |
| - * Codegen flags have been consolidated behind a `-C` flag. |
148 |
| - * `rustdoc` now implements syntax highlighting and rendering markdown files. |
149 |
| - * `rustdoc --test` now tests all code blocks by default. |
150 |
| - * `rustdoc` now shows documented macros. |
151 |
| - * `rustdoc` inlines documentation for reexported types. |
152 |
| - * `rustdoc` search works across crates now. |
153 |
| - * Linking against outdated crates now has improved error messages. |
154 |
| - * Error messages with lifetimes will often suggest how to annotate the |
155 |
| - function to fix the error. |
156 |
| - * Many more types are documented in the standard library, and new guides |
157 |
| - were written. |
158 |
| - |
159 | 1 | Version 0.9 (January 2014)
|
160 | 2 | --------------------------
|
161 | 3 |
|
|
0 commit comments