mirror of
https://github.com/rust-lang/rust
synced 2024-09-05 16:57:03 +00:00
rollup merge of #23959: aturon/beta-relnotes
Collected from TWiR and the PR log. r? @alexcrichton f? @brson @nikomatsakis @huonw
This commit is contained in:
commit
fb77443213
99
RELEASES.md
99
RELEASES.md
|
@ -1,3 +1,102 @@
|
|||
Version 1.0.0-beta (April 2015)
|
||||
-------------------------------------
|
||||
|
||||
* ~1100 changes, numerous bugfixes
|
||||
|
||||
* Highlights
|
||||
|
||||
* The big news is that the vast majority of the standard library
|
||||
is now `#[stable]` -- 75% of the non-deprecated API surface at
|
||||
last count. Numerous crates are now running on stable
|
||||
Rust. Starting with this release, it is not possible to use
|
||||
unstable features on a stable build.
|
||||
* Arithmetic on basic integer types now
|
||||
[checks for overflow in debug builds][overflow].
|
||||
|
||||
* Language
|
||||
|
||||
* [`Send` no longer implies `'static`][send-rfc], which made
|
||||
possible the [`thread::scoped` API][scoped]. Scoped threads can
|
||||
borrow data from their parent's stack frame -- safely!
|
||||
* [UFCS now supports trait-less associated paths][moar-ufcs] like
|
||||
`MyType::default()`.
|
||||
* Primitive types [now have inherent methods][prim-inherent],
|
||||
obviating the need for extension traits like `SliceExt`.
|
||||
* Methods with `Self: Sized` in their `where` clause are
|
||||
[considered object-safe][self-sized], allowing many extension
|
||||
traits like `IteratorExt` to be merged into the traits they
|
||||
extended.
|
||||
* You can now [refer to associated types][assoc-where] whose
|
||||
corresponding trait bounds appear only in a `where` clause.
|
||||
* The final bits of [OIBIT landed][oibit-final], meaning that
|
||||
traits like `Send` and `Sync` are now library-defined.
|
||||
* A [Reflect trait][reflect] was introduced, which means that
|
||||
downcasting via the `Any` trait is effectively limited to
|
||||
concrete types. This helps retain the potentially-important
|
||||
"parametricity" property: generic code cannot behave differently
|
||||
for different type arguments.
|
||||
* The `unsafe_destructor` feature is now deprecated in favor of
|
||||
the [new `dropck`][dropck]. This change is a major reduction in
|
||||
unsafe code.
|
||||
* Trait coherence was [revised again][fundamental], this time with
|
||||
an eye toward API evolution over time.
|
||||
|
||||
* Libraries
|
||||
|
||||
* The new path and IO modules are complete and `#[stable]`. This
|
||||
was the major library focus for this cycle.
|
||||
* The path API was [revised][path-normalize] to normalize `.`,
|
||||
adjusting the tradeoffs in favor of the most common usage.
|
||||
* A large number of remaining APIs in `std` were also stabilized
|
||||
during this cycle; about 75% of the non-deprecated API surface
|
||||
is now stable.
|
||||
* The new [string pattern API][string-pattern] landed, which makes
|
||||
the string slice API much more internally consistent and flexible.
|
||||
* A shiny [framework for Debug implementations][debug-builder] landed.
|
||||
This makes it possible to opt in to "pretty-printed" debugging output.
|
||||
* A new set of [generic conversion traits][conversion] replaced
|
||||
many existing ad hoc traits.
|
||||
* Generic numeric traits were
|
||||
[completely removed][num-traits]. This was made possible thanks
|
||||
to inherent methods for primitive types, and the removal gives
|
||||
maximal flexibility for designing a numeric hierarchy in the future.
|
||||
* The `Fn` traits are now related via [inheritance][fn-inherit]
|
||||
and provide ergonomic [blanket implementations][fn-blanket].
|
||||
* The `Index` and `IndexMut` traits were changed to
|
||||
[take the index by value][index-value], enabling code like
|
||||
`hash_map["string"]` to work.
|
||||
* `Copy` now [inherits][copy-clone] from `Clone`, meaning that all
|
||||
`Copy` data is known to be `Clone` as well.
|
||||
|
||||
* Infrastructure
|
||||
|
||||
* Metadata was tuned, shrinking binaries [by 27%][metadata-shrink].
|
||||
* Much headway was made on ecosystem-wide CI, making it possible
|
||||
to [compare builds for breakage][ci-compare].
|
||||
|
||||
[send-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0458-send-improvements.md
|
||||
[scoped]: http://static.rust-lang.org/doc/master/std/thread/fn.scoped.html
|
||||
[moar-ufcs]: https://github.com/rust-lang/rust/pull/22172
|
||||
[prim-inherent]: https://github.com/rust-lang/rust/pull/23104
|
||||
[overflow]: https://github.com/rust-lang/rust/pull/22532
|
||||
[metadata-shrink]: https://github.com/rust-lang/rust/pull/22971
|
||||
[self-sized]: https://github.com/rust-lang/rust/pull/22301
|
||||
[assoc-where]: https://github.com/rust-lang/rust/pull/22512
|
||||
[string-pattern]: https://github.com/rust-lang/rust/pull/22466
|
||||
[oibit-final]: https://github.com/rust-lang/rust/pull/21689
|
||||
[reflect]: https://github.com/rust-lang/rust/pull/23712
|
||||
[debug-builder]: https://github.com/rust-lang/rfcs/blob/master/text/0640-debug-improvements.md
|
||||
[conversion]: https://github.com/rust-lang/rfcs/pull/529
|
||||
[num-traits]: https://github.com/rust-lang/rust/pull/23549
|
||||
[index-value]: https://github.com/rust-lang/rust/pull/23601
|
||||
[dropck]: https://github.com/rust-lang/rfcs/pull/769
|
||||
[fundamental]: https://github.com/rust-lang/rfcs/pull/1023
|
||||
[ci-compare]: https://gist.github.com/brson/a30a77836fbec057cbee
|
||||
[fn-inherit]: https://github.com/rust-lang/rust/pull/23282
|
||||
[fn-blanket]: https://github.com/rust-lang/rust/pull/23895
|
||||
[copy-clone]: https://github.com/rust-lang/rust/pull/23860
|
||||
[path-normalize]: https://github.com/rust-lang/rust/pull/23229
|
||||
|
||||
Version 1.0.0-alpha.2 (February 2015)
|
||||
-------------------------------------
|
||||
|
||||
|
|
Loading…
Reference in a new issue