Skip to content
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

Rollup of 24 pull requests #37597

Merged
merged 67 commits into from
Nov 6, 2016
Merged

Rollup of 24 pull requests #37597

merged 67 commits into from
Nov 6, 2016

Conversation

alexcrichton
Copy link
Member

mbrubeck and others added 30 commits October 18, 2016 10:56
The example code for higher-ranked trait bounds on closures had an
unnecessary `mut` which was confusing, and the text referred to an
mutable reference which does not exist in the code (and isn't needed).
Removed the `mut`s and fixed the text to better describe the actual
error for the failing example.
This commit is an implementation of [RFC 1665] which adds support for the
`#![windows_subsystem]` attribute. This attribute allows specifying either the
"windows" or "console" subsystems on Windows to the linker.

[RFC 1665]: https://github.com/rust-lang/rfcs/blob/master/text/1665-windows-subsystem.md

Previously all Rust executables were compiled as the "console" subsystem which
meant that if you wanted a graphical application it would erroneously pop up a
console whenever opened. When compiling an application, however, this is
undesired behavior and the "windows" subsystem is used instead to have control
over user interactions.

This attribute is validated, but ignored on all non-Windows platforms.

cc rust-lang#37499
This commit is a rewrite of the user-facing interface to the rustbuild build
system. The intention here is to make it much easier to compile/test the project
without having to remember weird rule names and such. An overall view of the new
interface is:

    # build everything
    ./x.py build

    # document everyting
    ./x.py doc

    # test everything
    ./x.py test

    # test libstd
    ./x.py test src/libstd

    # build libcore stage0
    ./x.py build src/libcore --stage 0

    # run stage1 run-pass tests
    ./x.py test src/test/run-pass --stage 1

The `src/bootstrap/bootstrap.py` script is now aliased as a top-level `x.py`
script. This `x` was chosen to be both short and easily tab-completable (no
collisions in that namespace!). The build system now accepts a "subcommand" of
what to do next, the main ones being build/doc/test.

Each subcommand then receives an optional list of arguments. These arguments are
paths in the source repo of what to work with. That is, if you want to test a
directory, you just pass that directory as an argument.

The purpose of this rewrite is to do away with all of the arcane renames like
"rpass" is the "run-pass" suite, "cfail" is the "compile-fail" suite, etc. By
simply working with directories and files it's much more intuitive of how to run
a test (just pass it as an argument).

The rustbuild step/dependency management was also rewritten along the way to
make this easy to work with and define, but that's largely just a refactoring of
what was there before.

The *intention* is that this support is extended for arbitrary files (e.g.
`src/test/run-pass/my-test-case.rs`), but that isn't quite implemented just yet.
Instead directories work for now but we can follow up with stricter path
filtering logic to plumb through all the arguments.
The rustc-generated function `main` should respect the same config for
frame pointer elimination as the rest of code.
Environment variables on windows can't be empty.
`Token::Interpolated(Nonterminal)` -> `Token::Interpolated(Rc<Nonterminal>)`.
* Correct the stability attributes.
* Make Add and AddAssign actually behave the same.
* Use String::with_capacity when allocating a new string.
* Fix the tests.
On 64-bit platforms this reduces the size of `Expr` from 96 bytes to 88
bytes.
On 64-bit platforms this reduces the size of `Expr_` from  64 bytes to
56 bytes, and reduces the size of `Expr` from 88 bytes to 80 bytes.
@bors
Copy link
Contributor

bors commented Nov 6, 2016

💔 Test failed - auto-linux-64-cross-freebsd

@alexcrichton
Copy link
Member Author

@bors: r+ force

@bors
Copy link
Contributor

bors commented Nov 6, 2016

📌 Commit bdacb63 has been approved by alexcrichton

@bors
Copy link
Contributor

bors commented Nov 6, 2016

⌛ Testing commit bdacb63 with merge b7b88bf...

@bors
Copy link
Contributor

bors commented Nov 6, 2016

💔 Test failed - auto-win-msvc-64-opt

@alexcrichton
Copy link
Member Author

@bors: retry force clean

@alexcrichton
Copy link
Member Author

@bors: force

@bors
Copy link
Contributor

bors commented Nov 6, 2016

⌛ Testing commit bdacb63 with merge 3fc8304...

bors added a commit that referenced this pull request Nov 6, 2016
@TimNN
Copy link
Contributor

TimNN commented Nov 6, 2016

🎉

@alexcrichton alexcrichton deleted the rollup branch November 6, 2016 16:34
eddyb added a commit to eddyb/rust that referenced this pull request Nov 11, 2016
Add changelog for 1.13.0

The diagnostics PRs are excellent and some have excellent examples thanks @jonathandturner @estebank.

[Here are some notes about the performance changes during the release.
Compile times are improved %40 in some cases](https://gist.github.com/brson/1404c4bf4868d7d108f240a6ecba7f31).

This desires to be backported to beta for 1.13.

Sadly, the [1.12.1 changelog PR](rust-lang#37317) has not merged to master yet, and is sitting in a [rollup PR](rust-lang#37597).

r? @rust-lang/lang @rust-lang/compiler @rust-lang/libs @rust-lang/core
eddyb added a commit to eddyb/rust that referenced this pull request Nov 12, 2016
Add changelog for 1.13.0

The diagnostics PRs are excellent and some have excellent examples thanks @jonathandturner @estebank.

[Here are some notes about the performance changes during the release.
Compile times are improved %40 in some cases](https://gist.github.com/brson/1404c4bf4868d7d108f240a6ecba7f31).

This desires to be backported to beta for 1.13.

Sadly, the [1.12.1 changelog PR](rust-lang#37317) has not merged to master yet, and is sitting in a [rollup PR](rust-lang#37597).

r? @rust-lang/lang @rust-lang/compiler @rust-lang/libs @rust-lang/core
@Centril Centril added the rollup A PR which is a rollup label Oct 2, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup
Projects
None yet
Development

Successfully merging this pull request may close these issues.