Skip to content

Commit bad7ecb

Browse files
committed
Update RELEASES.md for 0.12.0
1 parent ea4d5d2 commit bad7ecb

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed

RELEASES.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,99 @@
1+
Version 0.12.0 (October 2014)
2+
-----------------------------
3+
4+
* ~1700 changes, numerous bugfixes
5+
6+
* Highlights
7+
8+
* The introductory documentation (now called The Rust Guide) has
9+
been completely rewritten, as have a number of supplementary
10+
guides.
11+
* Rust's package manager, Cargo, is awesome.
12+
* Many API's in `std` have been reviewed and updated for
13+
consistency with the in-development Rust coding
14+
guidelines. The standard library documentation tracks
15+
stabilization progress.
16+
* Minor libraries have been moved out-of-tree to the rust-lang org
17+
on GitHub: uuid, semver, glob, num, hexfloat, fourcc. They can
18+
be installed with Cargo.
19+
* Lifetime elision allows lifetime annotations to be left off of
20+
function declarations in many common scenarios.
21+
* Rust now works on 64-bit Windows.
22+
23+
* Language
24+
* A new slicing syntax (e.g. `[0..4]`) has been introduced behind
25+
the 'slicing_syntax' feature gate, and can be overloaded with
26+
the `Slice` or `SliceMut` traits.
27+
* Indexing can be overloaded with the `Index` and `IndexMut`
28+
traits.
29+
* The `if let` construct takes a branch only if the `let` pattern
30+
matches, currently behind the 'if_let' feature gate.
31+
* `let` and `match` bindings and argument names in macros are now
32+
hygienic.
33+
* The `#[crate_id]` attribute is no longer supported; versioning
34+
is handled by the package manager.
35+
* Mutation and assignment is no longer allowed in pattern guards.
36+
* Generic structs and enums can now have trait bounds.
37+
* `use foo = bar` is now written `use bar as foo`.
38+
* The new, more efficient, closure types ('unboxed closures') have
39+
been added under a feature gate, 'unboxed_closures'. These will
40+
soon replace the existing closure types, once higher-ranked
41+
trait lifetimes are added to the language.
42+
* The `Share` trait is now called `Sync` to free up the term
43+
'shared' to refer to 'shared reference' (the default reference
44+
type.
45+
* Dynamically-sized types have been mostly implemented,
46+
unifying the behavior of fat-pointer types with the rest of the
47+
type system.
48+
* As part of dynamically-sized types, the `Sized` trait has been
49+
introduced, which qualifying types implement by default, and
50+
which type parameters expect by default. To specify that a type
51+
parametr does not need to be sized, write `<Sized? T>`. Most
52+
types are `Sized`, notable exceptions being unsized arrays
53+
(`[T]`) and trait types.
54+
* Closures can return `!`, as in `|| -> !` or `proc() ->`.
55+
* The syntax for matching of sub-slices has been changed to use a
56+
postfix `..` instead of prefix (.e.g. `[a, b, c..]`), for
57+
consistency with other uses of `..` and to future-proof
58+
potential additional uses of the syntax.
59+
* Matching of sub-slices in non-tail positions (e.g. `[a.., b,
60+
c]`) has been put behind the 'advanced_slice_patterns' feature
61+
gate and may be removed in the future.
62+
63+
* Libraries
64+
* Library documentation has been improved for a number of modules.
65+
* Bit-vectors, collections::bitv has been modernized.
66+
* The url crate is deprecated in favor of
67+
http://github.com/servo/rust-url, which can be installed with
68+
Cargo.
69+
* Most I/O stream types can be cloned and subsequently closed
70+
from a different thread.
71+
* A `std::time::Duration` type has been added for use in I/O
72+
methods that rely on timers, as well as in the 'time' crate's
73+
`Timespec` arithmetic.
74+
* The green-thread scheduler, libgreen, has been removed, as
75+
has the associated runtime I/O abstraction layer.
76+
77+
* Tooling
78+
* rustdoc output now indicates the stability levels of API's.
79+
* The `--crate-name` flag can specify the name of the crate
80+
being compiled, like `#[crate_name]`.
81+
* The `-C metadata` specifies additional metada to hash into
82+
symbol names, and `-C extra-filename` specifies additional
83+
information to put into the output filename, for use by
84+
the package manager for versioning.
85+
* debug info generation has continued to improve and should be
86+
more reliable under both gdb and lldb.
87+
* rustc has experimental support for compiling in parallel
88+
using the `-C codegen-units` flag.
89+
* rustc no longer encodes rpath information into binaries by
90+
default.
91+
92+
* Misc
93+
* Stack usage has been optimized with LLVM lifetime annotations.
94+
* Official Rust binaries on Linux are more compatible with older
95+
kernels and distributions, built on CentOS 5.10.
96+
197
Version 0.11.0 (July 2014)
298
-------------------------
399

0 commit comments

Comments
 (0)