Skip to content

Commit 103e52b

Browse files
committed
Merge branch 'master' into mulit-decor
2 parents 5d16772 + c2b30b8 commit 103e52b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+2401
-900
lines changed

AUTHORS.txt

+64-49
Large diffs are not rendered by default.

RELEASES.md

+140-76
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,142 @@
1-
Version 1.0.0-beta (April 2015)
2-
-------------------------------------
3-
4-
* ~1100 changes, numerous bugfixes
5-
6-
* Highlights
7-
8-
* The big news is that the vast majority of the standard library
9-
is now `#[stable]` -- 75% of the non-deprecated API surface at
10-
last count. Numerous crates are now running on stable
11-
Rust. Starting with this release, it is not possible to use
12-
unstable features on a stable build.
13-
* Arithmetic on basic integer types now
14-
[checks for overflow in debug builds][overflow].
15-
16-
* Language
17-
18-
* [`Send` no longer implies `'static`][send-rfc], which made
19-
possible the [`thread::scoped` API][scoped]. Scoped threads can
20-
borrow data from their parent's stack frame -- safely!
21-
* [UFCS now supports trait-less associated paths][moar-ufcs] like
22-
`MyType::default()`.
23-
* Primitive types [now have inherent methods][prim-inherent],
24-
obviating the need for extension traits like `SliceExt`.
25-
* Methods with `Self: Sized` in their `where` clause are
26-
[considered object-safe][self-sized], allowing many extension
27-
traits like `IteratorExt` to be merged into the traits they
28-
extended.
29-
* You can now [refer to associated types][assoc-where] whose
30-
corresponding trait bounds appear only in a `where` clause.
31-
* The final bits of [OIBIT landed][oibit-final], meaning that
32-
traits like `Send` and `Sync` are now library-defined.
33-
* A [Reflect trait][reflect] was introduced, which means that
34-
downcasting via the `Any` trait is effectively limited to
35-
concrete types. This helps retain the potentially-important
36-
"parametricity" property: generic code cannot behave differently
37-
for different type arguments except in minor ways.
38-
* The `unsafe_destructor` feature is now deprecated in favor of
39-
the [new `dropck`][dropck]. This change is a major reduction in
40-
unsafe code.
41-
* Trait coherence was [revised again][fundamental], this time with
42-
an eye toward API evolution over time.
43-
44-
* Libraries
45-
46-
* The new path and IO modules are complete and `#[stable]`. This
47-
was the major library focus for this cycle.
48-
* The path API was [revised][path-normalize] to normalize `.`,
49-
adjusting the tradeoffs in favor of the most common usage.
50-
* A large number of remaining APIs in `std` were also stabilized
51-
during this cycle; about 75% of the non-deprecated API surface
52-
is now stable.
53-
* The new [string pattern API][string-pattern] landed, which makes
54-
the string slice API much more internally consistent and flexible.
55-
* A shiny [framework for Debug implementations][debug-builder] landed.
56-
This makes it possible to opt in to "pretty-printed" debugging output.
57-
* A new set of [generic conversion traits][conversion] replaced
58-
many existing ad hoc traits.
59-
* Generic numeric traits were
60-
[completely removed][num-traits]. This was made possible thanks
61-
to inherent methods for primitive types, and the removal gives
62-
maximal flexibility for designing a numeric hierarchy in the future.
63-
* The `Fn` traits are now related via [inheritance][fn-inherit]
64-
and provide ergonomic [blanket implementations][fn-blanket].
65-
* The `Index` and `IndexMut` traits were changed to
66-
[take the index by value][index-value], enabling code like
67-
`hash_map["string"]` to work.
68-
* `Copy` now [inherits][copy-clone] from `Clone`, meaning that all
69-
`Copy` data is known to be `Clone` as well.
70-
71-
* Infrastructure
72-
73-
* Metadata was tuned, shrinking binaries [by 27%][metadata-shrink].
74-
* Much headway was made on ecosystem-wide CI, making it possible
75-
to [compare builds for breakage][ci-compare].
76-
1+
Version 1.0.0 (May 2015)
2+
========================
3+
4+
* ~1500 changes, numerous bugfixes
5+
6+
Highlights
7+
----------
8+
9+
* The vast majority of the standard library is now `#[stable]`. It is
10+
no longer possible to use unstable features with a stable build of
11+
the compiler.
12+
* Many popular crates on [crates.io] now work on the stable release
13+
channel.
14+
* Arithmetic on basic integer types now [checks for overflow in debug
15+
builds][overflow].
16+
17+
Language
18+
--------
19+
20+
* Several [restrictions have been added to trait coherence][coh] in
21+
order to make it easier for upstream authors to change traits
22+
without breaking downsteam code.
23+
* Digits of binary and octal literals are [lexed more eagerly][lex] to
24+
improve error messages and macro behavior. For example, `0b1234` is
25+
now lexed as `0b1234` instead of two tokens, `0b1` and `234`.
26+
* Trait bounds [are always invariant][inv], eleminating the need for
27+
the `PhantomFn` and `MarkerTrait` lang items, which have been
28+
removed.
29+
* ["-" is no longer a valid character in crate names][cr], the `extern crate
30+
"foo" as bar` syntax has been replaced with `extern crate foo as
31+
bar`, and Cargo now automatically translates "-" in *package* names
32+
to underscore for the crate name.
33+
* [Lifetime shadowing is an error][lt].
34+
* [`Send` no longer implies `'static`][send-rfc].
35+
* [UFCS now supports trait-less associated paths][moar-ufcs] like
36+
`MyType::default()`.
37+
* Primitive types [now have inherent methods][prim-inherent],
38+
obviating the need for extension traits like `SliceExt`.
39+
* Methods with `Self: Sized` in their `where` clause are [considered
40+
object-safe][self-sized], allowing many extension traits like
41+
`IteratorExt` to be merged into the traits they extended.
42+
* You can now [refer to associated types][assoc-where] whose
43+
corresponding trait bounds appear only in a `where` clause.
44+
* The final bits of [OIBIT landed][oibit-final], meaning that traits
45+
like `Send` and `Sync` are now library-defined.
46+
* A [Reflect trait][reflect] was introduced, which means that
47+
downcasting via the `Any` trait is effectively limited to concrete
48+
types. This helps retain the potentially-important "parametricity"
49+
property: generic code cannot behave differently for different type
50+
arguments except in minor ways.
51+
* The `unsafe_destructor` feature is now deprecated in favor of the
52+
[new `dropck`][dropck]. This change is a major reduction in unsafe
53+
code.
54+
55+
Libraries
56+
---------
57+
58+
* The `thread_local` module [has been renamed to `std::thread`][th].
59+
* The methods of `IteratorExt` [have been moved to the `Iterator`
60+
trait itself][ie].
61+
* Several traits that implement Rust's conventions for type
62+
conversions, `AsMut`, `AsRef`, `From`, and `Into` have been
63+
[centralized in the `std::convert` module][con].
64+
* The `FromError` trait [was removed in favor of `From`][fe].
65+
* The basic sleep function [has moved to
66+
`std::thread::sleep_ms`][slp].
67+
* The `splitn` function now takes an `n` parameter that represents the
68+
number of items yielded by the returned iterator [instead of the
69+
number of 'splits'][spl].
70+
* [On Unix, all file descriptors are `CLOEXEC` by default][clo].
71+
* [Derived implementations of `PartialOrd` now order enums according
72+
to their explicitly-assigned discriminants][po].
73+
* [Methods for searching strings are generic over `Pattern`s][pat],
74+
implemented presently by `&char`, `&str`, `FnMut(char) -> bool` and
75+
some others.
76+
* [In method resolution, object methods are resolved before inherent
77+
methods][meth].
78+
* [`String::from_str` has been deprecated in favor of the `From` impl,
79+
`String::from`][sf].
80+
* [`io::Error` implements `Sync`][ios].
81+
* [The `words` method on `&str` has been replaced with
82+
`split_whitespace`][sw], to avoid answering the tricky question, 'what is
83+
a word?'
84+
* The new path and IO modules are complete and `#[stable]`. This
85+
was the major library focus for this cycle.
86+
* The path API was [revised][path-normalize] to normalize `.`,
87+
adjusting the tradeoffs in favor of the most common usage.
88+
* A large number of remaining APIs in `std` were also stabilized
89+
during this cycle; about 75% of the non-deprecated API surface
90+
is now stable.
91+
* The new [string pattern API][string-pattern] landed, which makes
92+
the string slice API much more internally consistent and flexible.
93+
* A new set of [generic conversion traits][conversion] replaced
94+
many existing ad hoc traits.
95+
* Generic numeric traits were [completely removed][num-traits]. This
96+
was made possible thanks to inherent methods for primitive types,
97+
and the removal gives maximal flexibility for designing a numeric
98+
hierarchy in the future.
99+
* The `Fn` traits are now related via [inheritance][fn-inherit]
100+
and provide ergonomic [blanket implementations][fn-blanket].
101+
* The `Index` and `IndexMut` traits were changed to
102+
[take the index by value][index-value], enabling code like
103+
`hash_map["string"]` to work.
104+
* `Copy` now [inherits][copy-clone] from `Clone`, meaning that all
105+
`Copy` data is known to be `Clone` as well.
106+
107+
Misc
108+
----
109+
110+
* Many errors now have extended explanations that can be accessed with
111+
the `--explain` flag to `rustc`.
112+
* Many new examples have been added to the standard library
113+
documentation.
114+
* rustdoc has received a number of improvements focused on completion
115+
and polish.
116+
* Metadata was tuned, shrinking binaries [by 27%][metadata-shrink].
117+
* Much headway was made on ecosystem-wide CI, making it possible
118+
to [compare builds for breakage][ci-compare].
119+
120+
121+
[crates.io]: http://crates.io
122+
[clo]: https://github.com/rust-lang/rust/pull/24034
123+
[coh]: https://github.com/rust-lang/rfcs/blob/master/text/1023-rebalancing-coherence.md
124+
[con]: https://github.com/rust-lang/rust/pull/23875
125+
[cr]: https://github.com/rust-lang/rust/pull/23419
126+
[fe]: https://github.com/rust-lang/rust/pull/23879
127+
[ie]: https://github.com/rust-lang/rust/pull/23300
128+
[inv]: https://github.com/rust-lang/rust/pull/23938
129+
[ios]: https://github.com/rust-lang/rust/pull/24133
130+
[lex]: https://github.com/rust-lang/rfcs/blob/master/text/0879-small-base-lexing.md
131+
[lt]: https://github.com/rust-lang/rust/pull/24057
132+
[meth]: https://github.com/rust-lang/rust/pull/24056
133+
[pat]: https://github.com/rust-lang/rfcs/blob/master/text/0528-string-patterns.md
134+
[po]: https://github.com/rust-lang/rust/pull/24270
135+
[sf]: https://github.com/rust-lang/rust/pull/24517
136+
[slp]: https://github.com/rust-lang/rust/pull/23949
137+
[spl]: https://github.com/rust-lang/rfcs/blob/master/text/0979-align-splitn-with-other-languages.md
138+
[sw]: https://github.com/rust-lang/rfcs/blob/master/text/1054-str-words.md
139+
[th]: https://github.com/rust-lang/rfcs/blob/master/text/0909-move-thread-local-to-std-thread.md
77140
[send-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0458-send-improvements.md
78141
[scoped]: http://static.rust-lang.org/doc/master/std/thread/fn.scoped.html
79142
[moar-ufcs]: https://github.com/rust-lang/rust/pull/22172
@@ -97,6 +160,7 @@ Version 1.0.0-beta (April 2015)
97160
[copy-clone]: https://github.com/rust-lang/rust/pull/23860
98161
[path-normalize]: https://github.com/rust-lang/rust/pull/23229
99162

163+
100164
Version 1.0.0-alpha.2 (February 2015)
101165
-------------------------------------
102166

0 commit comments

Comments
 (0)