| Age | Commit message (Collapse) | Author | Lines |
|
- rust-lang/cargo#5577 - revert rust-lang/cargo#5461 (Support crate renames in `cargo metadata`)
- rust-lang/cargo#5567 - Copy `--all-features` request to all workspace members
|
|
Regression fixes:
- rust-lang/cargo#5510 `cargo rustc` broken for tests in project with bins
- rust-lang/cargo#5523 (#50640) shared proc-macro dependency built incorrectly
|
|
This commit prepares the 1.27.0 beta release by doing:
* Update the release channel to `beta`
* Update Cargo's submodule
* Update `stdsimd`'s submodule
* Update the bootstrap compiler to the freshly minted 1.26.0 stable release
* Don't attempt to verify clippy/miri build
|
|
Add some groundwork for cross-language LTO.
Implements part of #49879:
- Adds a `-Z cross-lang-lto` flag to rustc
- Makes sure that bitcode is embedded in object files if the flag is set.
This should already allow for using cross language LTO for staticlibs (where one has to invoke the linker manually anyway). However, `rustc` will not try to enable LTO for its own linker invocations yet.
r? @alexcrichton
|
|
Ping infra team on all tool bustage
r? @kennytm
cc @rust-lang/core as discussed at today's meeting
|
|
Pass a test directory to rustfmt
Another attempt to fix the rustfmt tests. `RUSTFMT_TEST_DIR` is consumed by Rustfmt in the latext commit (thus the Rustfmt update) because we need a place to create temp files that won't be read-only.
r? @alexcrichton
|
|
rustbuild: Allow quick testing of libstd and libcore at stage0
This PR implemented two features:
1. Added a `--no-doc` flag to allow testing a crate *without* doc tests. In this mode, we don't need to build rustdoc, and thus we can skip building the stage2 compiler. (Ideally stage0 test should use the bootstrap rustdoc, but I don't want to mess up the core builder logic here)
2. Moved all libcore tests externally and added a tidy test to ensure we don't accidentally add `#[test]` into libcore.
After this PR, one could run `./x.py test --stage 0 --no-doc src/libstd` to test `libstd` without building the compiler, thus enables us to quickly test new library features.
|
|
|
|
Misc tweaks
This:
- ~~Add explicit dependencies on `getops`~~
- Fixes the libtest-json test when `RUST_BACKTRACE=1` is set
- ~~Sets `opt-level` to `3`~~
- Removes the use of `staged_api` from `rustc_plugin`
- ~~Enables the Windows Error Reporting dialog when running rustc during bootstrapping~~
- Disables Windows Error Reporting dialog when running compiletest tests
- Enables backtraces when running rustc during bootstrapping
- ~~Removes the `librustc` dependency on `libtest`~~
- Triggers JIT debugging on Windows if rustc panics during bootstrapping
r? @alexcrichton
|
|
|
|
|
|
Add armv5te-unknown-linux-musl target
This PR adds the armv5te-unknown-linux-musl target. The following steps should let you produce a fully statically linked binary now:
1. Running `./src/ci/docker/run.sh dist-armv5te-linux-musl`
2. Changing the run.sh script to start bash instead of the build process and running the container
3.
```sh
export USER=root
export PATH=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin:$PATH
```
4. Configuring Cargo
```yaml
[target.armv5te-unknown-linux-musl]
linker = "arm-linux-gnueabi-gcc"
```
5. Building a project
```sh
cargo new --bin hello
cd hello
cargo build --target=armv5te-unknown-linux-musl --release
```
|
|
|
|
|
|
This commit adds a dedicated mode to compiletest for running rustfix tests,
adding a new `src/test/rustfix` directory which will execute all tests as a
"rustfix" test, namely requiring that a `*.fixed` is next to the main file which
is the result of the rustfix project's application of fixes.
The `rustfix` crate is pulled in to actually perform the fixing, and the rustfix
compiletest mode will assert a few properties about the fixing:
* The expected fixed output must be the same as rustc's output suggestions
applied to the original code.
* The fixed code must compile successfully
* The fixed code must have no further diagnostics emitted about it
|
|
|
|
|
|
Uses branch from <https://github.com/rust-lang-nursery/rustfix/pull/63>
until we publish a new release.
|
|
This is the first small step towards testing auto-fixable compiler
suggestions using compiletest. Currently, it only checks if next to a
UI test there also happens to a `*.rs.fixed` file, and then uses rustfix
(added as external crate) on the original file, and asserts that it
produces the fixed version.
To show that this works, I've included one such test. I picked this test
case at random (and because it was simple) -- It is not relevant to the
2018 edition. Indeed, in the near future, we want to be able to restrict
rustfix to edition-lints, so this test cast might go away soon.
In case you still think this is somewhat feature-complete, here's a
quick list of things currently missing that I want to add before telling
people they can use this:
- [ ] Make this an actual compiletest mode, with `test [fix] …` output
and everything
- [ ] Assert that fixed files still compile
- [ ] Assert that fixed files produce no (or a known set of) diagnostics
output
- [ ] Update `update-references.sh` to support rustfix
- [ ] Use a published version of rustfix (i.e.: publish a new version
rustfix that exposes a useful API for this)
|
|
pnkfelix:issue-27282-immut-borrow-all-pat-ids-in-guards, r=nikomatsakis
Immutably and implicitly borrow all pattern ids for their guards (NLL only)
This is an important piece of rust-lang/rust#27282.
It applies only to NLL mode. It is a change to MIR codegen that is currently toggled on only when NLL is turned on. It thus affect MIR-borrowck but not the earlier static analyses (such as the type checker).
This change makes it so that any pattern bindings of type T for a match arm will map to a `&T` within the context of the guard expression for that arm, but will continue to map to a `T` in the context of the arm body.
To avoid surfacing this type distinction in the user source code (which would be a severe change to the language and would also require far more revision to the compiler internals), any occurrence of such an identifier in the guard expression will automatically get a deref op applied to it.
So an input like:
```rust
let place = (1, Foo::new());
match place {
(1, foo) if inspect(foo) => feed(foo),
...
}
```
will be treated as if it were really something like:
```rust
let place = (1, Foo::new());
match place {
(1, Foo { .. }) if { let tmp1 = &place.1; inspect(*tmp1) }
=> { let tmp2 = place.1; feed(tmp2) },
...
}
```
And an input like:
```rust
let place = (2, Foo::new());
match place {
(2, ref mut foo) if inspect(foo) => feed(foo),
...
}
```
will be treated as if it were really something like:
```rust
let place = (2, Foo::new());
match place {
(2, Foo { .. }) if { let tmp1 = & &mut place.1; inspect(*tmp1) }
=> { let tmp2 = &mut place.1; feed(tmp2) },
...
}
```
In short, any pattern binding will always look like *some* kind of `&T` within the guard at least in terms of how the MIR-borrowck views it, and this will ensure that guard expressions cannot mutate their the match inputs via such bindings. (It also ensures that guard expressions can at most *copy* values from such bindings; non-Copy things cannot be moved via these pattern bindings in guard expressions, since one cannot move out of a `&T`.)
|
|
|
|
|
|
|
|
Update Cargo
This should fix RLS
cc https://github.com/rust-lang/rust/pull/50379, https://github.com/rust-lang/cargo/pull/5465
|
|
|
|
|
|
a mir-opt test.
|
|
|
|
r=QuietMisdreavus
Add query search order check
Fixes #50180.
r? @QuietMisdreavus
|
|
|
|
|
|
|
|
|
|
|
|
compiletest: detect non-ICE compiler panics
Fixes #49888, but will be blocked by revealing #49889.
|
|
|
|
|
|
|
|
|
|
Fix the miri tool
r? @eddyb
cc @bjorn3
fixes #49777
|
|
Fix revision support for UI tests.
Fixes #48878
|
|
|
|
|
|
Update Cargo
Some noteble changes:
* ~~regression fix: https://github.com/rust-lang/cargo/pull/5390~~
* ~~potentially breaking bug-fix: https://github.com/rust-lang/cargo/pull/5389~~
* ~~Cargo now caches the result of `rustc -vV`. It checks `rustc` binary
mtime and rustup toolchain settings, so it should probably "just work"
with rustbuild.~~
potentially breaking bug-fix: https://github.com/rust-lang/cargo/pull/5390
|
|
|
|
Some noteble changes:
* regression fix: https://github.com/rust-lang/cargo/pull/5390
* potentially breaking bug-fix: https://github.com/rust-lang/cargo/pull/5389
* Cargo now caches the result of `rustc -vV`. It checks `rustc` binary
mtime and rustup toolchain settings, so it should probably "just work"
with rustbuild.
|
|
Update the Cargo submodule
|
|
|
|
Fixes #48878
|
|
|