Skip to content

Rolling up PRs in the queue #23963

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 85 commits into from
Apr 2, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
e05c2f8
trans: Add early-out when translating unreachable controlflow express…
michaelwoerister Mar 5, 2015
3527507
Remove unneeded `T: Send + Sync` bounds from `Arc`.
huonw Mar 8, 2015
25d070f
Remove unneeded `Send`/`Sync` bounds from `Mutex`/`RwLock`.
huonw Mar 8, 2015
0f6b43a
Remove unneeded `Send` bounds from `std::sync::mpsc`.
huonw Mar 8, 2015
fb78ca8
rustup: Fix comment about Darwin's uname -m
richo Mar 29, 2015
ee3dffa
Add support for channel selection
richo Mar 29, 2015
45c10db
Clarified and simplified algorithm for increasing size of buffer in
Mar 29, 2015
2982fe3
80 character line limit
Mar 29, 2015
8d3e559
Clearer wording
Mar 29, 2015
240734c
Only zero at most 64k at a time. We still use the doubling
Mar 30, 2015
0939837
Rename the cryptic cres and ures types.
nikomatsakis Mar 9, 2015
4b0edb9
Combine `try` and `commit_if_ok` and make some details of inference
nikomatsakis Mar 10, 2015
7c62640
Refactor unification interface by moving the methods off of inferctxt…
nikomatsakis Feb 15, 2015
c581840
Make union-find helper fns private, change to u32.
nikomatsakis Feb 16, 2015
a6d9930
Extract more `ty` and `infer` dependencies from the unification engine
nikomatsakis Mar 10, 2015
e78550b
Switch to FnvHashMap
nikomatsakis Mar 18, 2015
e301d7c
Remove unused import
nikomatsakis Mar 18, 2015
8403b82
Port over type inference to using the new type relation stuff
nikomatsakis Mar 22, 2015
cead47c
Add a "match" relation that can be used to make recursion check during
nikomatsakis Mar 20, 2015
cdb10b8
A very simple hack to force an autoderef if the callee has type `&mut
nikomatsakis Mar 31, 2015
27b7841
Add blanket impls for references to the `Fn` traits.
nikomatsakis Mar 20, 2015
11111bb
Add tests for blanket impls.
nikomatsakis Mar 31, 2015
a547962
Pretty print ids for assoc items
nrc Mar 24, 2015
bfc2f5d
Improvements to PhantomData<T>'s docs 👻
steveklabnik Apr 1, 2015
0dd0925
Tidying up and reformatting
nrc Mar 29, 2015
39aa668
Added Arc::try_unique
kvark Mar 29, 2015
8ded156
Add examples + documentation for std::path
steveklabnik Apr 1, 2015
343c110
Fix rust book error-handling.md for new std::io.
Apr 1, 2015
4b6248a
Simplify `match` branches in iter.rs example
frewsxcv Apr 1, 2015
03d3ba7
Implement the changes to coherence such that we consider a type to be
nikomatsakis Mar 30, 2015
35c261a
Add `#[fundamental]` annotations into libcore so that `Sized` and the
nikomatsakis Mar 30, 2015
b0af587
Update tests for new coherence rules, and add a swatch of new tests
nikomatsakis Mar 30, 2015
30b2d9e
Fallout in libstd: remove impls now considered to conflict.
nikomatsakis Mar 30, 2015
15b58fe
Fallout in libsyntax/librustc: use newtype'd options for linked lists,
nikomatsakis Mar 30, 2015
c4edd0c
Make the trait Copy extend Clone.
nikomatsakis Mar 26, 2015
890ed5c
Fallout in tests
nikomatsakis Mar 30, 2015
d9530c0
Fallout out rustc
nikomatsakis Mar 30, 2015
49b76a0
Fallout in libsyntax
nikomatsakis Mar 30, 2015
c35c468
Fallout in public-facing and semi-public-facing libs
nikomatsakis Mar 30, 2015
943729f
Missing imports
nikomatsakis Apr 1, 2015
c054ae2
Merge branch 'fix-rustup' of https://github.com/richo/rust
alexcrichton Apr 1, 2015
28d7693
iOS: os::last_os_error() fallout
vhbit Apr 1, 2015
63f3d7f
rustup: Default to the beta channel
alexcrichton Apr 1, 2015
ed63d32
Add (unstable) FnBox trait as a nicer replacement for `Thunk`. The doc
nikomatsakis Apr 1, 2015
cade32a
Remove `Thunk` struct and `Invoke` trait; change `Thunk` to be an alias
nikomatsakis Apr 1, 2015
02b38a2
Rollup merge of #23066 - michaelwoerister:unreachable-if, r=pnkfelix
Manishearth Apr 1, 2015
1d17e6e
Rollup merge of #23844 - kvark:try_unique, r=alexcrichton
Manishearth Apr 1, 2015
abd747c
Rollup merge of #23847 - bcoopers:read_clarification, r=sfackler
Manishearth Apr 1, 2015
9eb0bab
Rollup merge of #23867 - nikomatsakis:issue-23086-take-3, r=pnkfelix
Manishearth Apr 1, 2015
debac97
Rollup merge of #23895 - nikomatsakis:fn-trait-inheritance-add-impls,…
Manishearth Apr 1, 2015
6a3e844
Rollup merge of #23924 - nrc:unqual-assoc3, r=alexcrichton
Manishearth Apr 1, 2015
2159bbf
Rollup merge of #23925 - steveklabnik:gh22914, r=Gankro
Manishearth Apr 1, 2015
77112bb
Rollup merge of #23927 - frewsxcv:patch-7, r=Manishearth
Manishearth Apr 1, 2015
ec6c2c3
Rollup merge of #23932 - steveklabnik:doc_std_path, r=flaper87
Manishearth Apr 1, 2015
eac94fa
Re-write closures chapter
steveklabnik Mar 20, 2015
19d3dab
Collect the definition of the `Error` trait into `libstd` for now. This
nikomatsakis Apr 1, 2015
c0f86a9
Re-add min_value, max_value methods
aturon Apr 1, 2015
4496433
Fix enum timezone across all platforms.
nikomatsakis Apr 1, 2015
d81e866
Feature gate rust-call ABI.
nikomatsakis Apr 1, 2015
8eed73f
Remove TODO
nikomatsakis Apr 1, 2015
971c355
rustup: Fix typo in nightly
richo Apr 1, 2015
3d8df31
Path rustdoc test
nikomatsakis Apr 1, 2015
232e79f
rollup merge of #23568: steveklabnik/closure_docs
alexcrichton Apr 1, 2015
a3f6273
rollup merge of #23867: nikomatsakis/issue-23086-take-3
alexcrichton Apr 1, 2015
fd182f4
rollup merge of #23933: kgv/kgv_fix
alexcrichton Apr 1, 2015
a3e5b35
rollup merge of #23942: vhbit/ios-rand
alexcrichton Apr 1, 2015
d55ffa9
rollup merge of #23944: alexcrichton/rustup-beta
alexcrichton Apr 1, 2015
fb4029f
rollup merge of #23947: aturon/revise-num
alexcrichton Apr 1, 2015
e98dce3
std: Changing the meaning of the count to splitn
alexcrichton Apr 1, 2015
e9bacba
rollup merge of #23951: alexcrichton/splitn
alexcrichton Apr 1, 2015
9bb05fd
rollup merge of #23939: nikomatsakis/fn-box
alexcrichton Apr 1, 2015
371277f
Stabilize basic timeout functionality
aturon Apr 1, 2015
f0a9a0c
manually adding the last two bitrig snapshots
Apr 1, 2015
bb252a8
rollup merge of #23948: nikomatsakis/feature-gate-rust-abi
alexcrichton Apr 1, 2015
655634e
rollup merge of #23949: aturon/stab-timeout
alexcrichton Apr 1, 2015
0304e15
Test fixes and rebase conflicts, round 1
alexcrichton Apr 1, 2015
2e3b0c0
Auto merge of #23955 - alexcrichton:rollup, r=alexcrichton
bors Apr 1, 2015
35a6a37
Add release notes for 1.0.0-beta
aturon Apr 1, 2015
9edbf42
rollup merge of #23945: pnkfelix/gate-u-negate
alexcrichton Apr 2, 2015
05654e5
rollup merge of #23953: dhuseby/master
alexcrichton Apr 2, 2015
f92e7ab
rollup merge of #23860: nikomatsakis/copy-requires-clone
alexcrichton Apr 2, 2015
d49b67e
rollup merge of #23176: huonw/rm-bounds
alexcrichton Apr 2, 2015
57f5ac9
Test fixes and rebase conflicts, round 2
alexcrichton Apr 1, 2015
fb77443
rollup merge of #23959: aturon/beta-relnotes
alexcrichton Apr 2, 2015
e3b7e6c
Tweak relese notes + rebase fixes
alexcrichton Apr 2, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
99 changes: 99 additions & 0 deletions RELEASES.md
Original file line number Diff line number Diff line change
@@ -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 except in minor ways.
* 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/rfcs/blob/master/text/0560-integer-overflow.md
[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)
-------------------------------------

Expand Down
3 changes: 1 addition & 2 deletions src/compiletest/compiletest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ extern crate log;
use std::env;
use std::fs;
use std::path::{Path, PathBuf};
use std::thunk::Thunk;
use getopts::{optopt, optflag, reqopt};
use common::Config;
use common::{Pretty, DebugInfoGdb, DebugInfoLldb, Codegen};
Expand Down Expand Up @@ -351,7 +350,7 @@ pub fn make_test_name(config: &Config, testfile: &Path) -> test::TestName {
pub fn make_test_closure(config: &Config, testfile: &Path) -> test::TestFn {
let config = (*config).clone();
let testfile = testfile.to_path_buf();
test::DynTestFn(Thunk::new(move || {
test::DynTestFn(Box::new(move || {
runtest::run(config, &testfile)
}))
}
Expand Down
2 changes: 1 addition & 1 deletion src/compiletest/header.rs
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ fn parse_exec_env(line: &str) -> Option<(String, String)> {
parse_name_value_directive(line, "exec-env").map(|nv| {
// nv is either FOO or FOO=BAR
let mut strs: Vec<String> = nv
.splitn(1, '=')
.splitn(2, '=')
.map(|s| s.to_string())
.collect();

Expand Down
6 changes: 5 additions & 1 deletion src/doc/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -1648,7 +1648,7 @@ specific type.
Implementations are defined with the keyword `impl`.

```
# #[derive(Copy)]
# #[derive(Copy, Clone)]
# struct Point {x: f64, y: f64};
# type Surface = i32;
# struct BoundingBox {x: f64, y: f64, width: f64, height: f64};
Expand All @@ -1661,6 +1661,10 @@ struct Circle {

impl Copy for Circle {}

impl Clone for Circle {
fn clone(&self) -> Circle { *self }
}

impl Shape for Circle {
fn draw(&self, s: Surface) { do_draw_circle(s, *self); }
fn bounding_box(&self) -> BoundingBox {
Expand Down
Loading