Commit Graph

87141 Commits

Author SHA1 Message Date
Jethro Beekman
1a894f135e SGX target: implement streams 2018-12-07 11:26:51 +05:30
Jethro Beekman
8d6edc9f8f SGX target: implement synchronization primitives and threading 2018-12-07 11:26:51 +05:30
Jethro Beekman
1e44e2de6c SGX target: implement user memory management 2018-12-07 11:26:50 +05:30
Jethro Beekman
39f9751716 SGX target: add thread local storage 2018-12-07 11:26:50 +05:30
Jethro Beekman
4a3505682e Add x86_64-fortanix-unknown-sgx target to libstd and dependencies
The files src/libstd/sys/sgx/*.rs are mostly copied/adapted from
the wasm target.

This also updates the dlmalloc submodule to the very latest version.
2018-12-07 11:26:50 +05:30
kennytm
a40aa45980
Rollup merge of #56574 - cbarrick:master, r=varkor
Fix a stutter in the docs for slice::exact_chunks

Before this change, the docs for `slice::exact_chunks` reads like this:

> See `chunks` for a variant of this iterator that also returns the remainder as a smaller chunk, and `rchunks_exact` for the same iterator but starting at the end of the slice of the slice.

Notice that stutter at the end? This commit fixes it.
2018-12-07 12:42:36 +08:00
kennytm
06f3b57633
Rollup merge of #56561 - Zoxc:too-raw, r=Gankro
Fix bug in from_key_hashed_nocheck
2018-12-07 12:42:35 +08:00
kennytm
aa5ba8315a
Rollup merge of #56555 - Mark-Simulacrum:stderr-profile, r=wesleywiser
Send textual profile data to stderr, not stdout

This makes it possible to run with RUSTFLAGS="-Zself-profile" without
having to redirect compiler output; otherwise Cargo will error out due
to non-empty compiler stdout.

r? @wesleywiser
2018-12-07 12:42:34 +08:00
kennytm
0e41ef13aa
Rollup merge of #56516 - frewsxcv:frewsxcv-eq, r=Mark-Simulacrum
Replace usages of `..i + 1` ranges with `..=i`.

Before this change we were using old computer code techniques. After this change we use the new and improved computer code techniques.
2018-12-07 12:42:32 +08:00
kennytm
6a07f23c78
Rollup merge of #56434 - Zoxc:par-tests, r=michaelwoerister
Improve query cycle errors for parallel queries

r? @michaelwoerister
2018-12-07 12:42:31 +08:00
kennytm
6d3501ebe3
Rollup merge of #56250 - dwijnand:ptr-hash, r=alexcrichton
Introduce ptr::hash for references

The RHS is what I used, which wasn't as convenient as `ptr::eq`, so I wondered: should `ptr::hash` exist?

My first Rust PR, so I'm going to need some guidance. :)
2018-12-07 12:42:30 +08:00
kennytm
92638ef0cb
Rollup merge of #56000 - hug-dev:armv8m.main, r=alexcrichton
Add Armv8-M Mainline targets

This commit enables the Armv8-M Mainline architecture profile.
It adds two targets:
  - `thumbv8m.main-none-eabi`
  - `thumbv8m.main-none-eabihf`

The second one uses the Floating Point Unit for floating point
operations. It mainly targets the Cortex-M33 processor, which
can have the optional Floating Point Unit extension.

It follows #55041 which does it for Baseline. I will rebase this branch on top of it when it is merged to not create conflicts as we have some files in common. To make it work, it still relies on the Cargo change to be merged (accepting "." in target names, rust-lang/cargo#6255).

The goal would also be to add this target in the CI so that the `core` library is available for everybody. To do this, some changes will be needed to compile successfully the needed libraries:

* `cc-rs` needs to be updated to allow compiling C code for Armv8-M architectures profiles. It is only a few lines to add [here](a76611ad98/src/lib.rs (L1299)).
* Some assembly files in `builtins` in `compiler-rt` were not assembling for Armv8-M Mainline. I sent changes [upstream](https://reviews.llvm.org/D51854) to that project to fix that. The Rust version of `compiler-rt` will have to be updated to contain [that commit](a34cdf8bb4).

I tested it using the [Musca-A Test Chip board](https://developer.arm.com/products/system-design/development-boards/iot-test-chips-and-boards/musca-a-test-chip-board) but more intensively on the [Armv8-M FVP](https://developer.arm.com/products/system-design/fixed-virtual-platforms) (emulation platform). I am going to try to release my test code soon, once I tidy it up 👍
2018-12-07 12:42:29 +08:00
bors
a2fb99bc17 Auto merge of #54271 - petrochenkov:nolegder, r=eddyb,alexcrichton
Unsupport `#[derive(Trait)]` sugar for `#[derive_Trait]` legacy plugin attributes

This is a long deprecated unstable feature that doesn't mesh well with regular resolution/expansion.

How to fix broken code:
- The recommended way is to migrate to stable procedural macros - derives or attributes (https://doc.rust-lang.org/nightly/book/first-edition/procedural-macros.html).
- If that's not possible right now for some reason, you can keep code working with a simple mechanical replacement `#[derive(Legacy)]` -> `#[derive_Legacy]`.

Closes https://github.com/rust-lang/rust/issues/29644

r? @ghost
2018-12-07 00:48:00 +00:00
Vadim Petrochenkov
8ab115c21d Unsupport #[derive(Trait)] sugar for #[derive_Trait] legacy plugin attributes 2018-12-07 03:30:01 +03:00
bors
5182cc1ca6 Auto merge of #55318 - Aaron1011:fix/final-auto-trait-resolve, r=nikomatsakis
Ensure that Rustdoc discovers all necessary auto trait bounds

Fixes #50159

This commit makes several improvements to AutoTraitFinder:

* Call infcx.resolve_type_vars_if_possible before processing new
predicates. This ensures that we eliminate inference variables wherever
possible.
* Process all nested obligations we get from a vtable, not just ones
with depth=1.
  * The 'depth=1' check was a hack to work around issues processing
certain predicates. The other changes in this commit allow us to
properly process all predicates that we encounter, so the check is no
longer necessary,
* Ensure that we only display predicates *without* inference variables
to the user, and only attempt to unify predicates that *have* an
inference variable as their type.

Additionally, the internal helper method is_of_param now operates
directly on a type, rather than taking a Substs. This allows us to use
the 'self_ty' method, rather than directly dealing with Substs.
2018-12-06 22:23:24 +00:00
John Kåre Alsaker
813b484d1e Fix printing of spans with no TyCtxt 2018-12-06 23:18:06 +01:00
John Kåre Alsaker
93294ea456 Fix 2018-12-06 23:18:06 +01:00
John Kåre Alsaker
4fac7396a2 Fix a race condition 2018-12-06 23:18:06 +01:00
John Kåre Alsaker
ecd5efa641 Show usages of query cycles and correctly shift queries in a cycle 2018-12-06 23:18:06 +01:00
Chris Barrick
b6d3668c42 Fix a stutter in the docs for slice::exact_chunks 2018-12-06 16:53:24 -05:00
ljedrz
adaeb10b5b codegen_utils, driver: fix clippy errors 2018-12-06 21:14:23 +01:00
bors
118e052d84 Auto merge of #56565 - matthiaskrgr:clippy, r=oli-obk
submodules: update clippy from 29bf75cd to 1df5766c

Fixes clippy toolstate.

Changes:
````
Remove -preview suffix from README
rustup clippy build with latest rustc (breakage due to 08f8faedd0 )
Forgot to remove some debugging code ...
Improved code noted by clippy.
Fix bug in `implicit_return`. Bug was already covered by test, but test was not checked for.
fix #3482 and add ui test for it
Don't change current working directory of cargo tests
Use cargo's "PROFILE" envvar and set CLIPPY_DOGFOOD
Use dogfood_runner for deterministic test ordering
Remove unnecessary documentation
Fix dogfood tests.
Added additional reasoning to `Why is this bad?`. Added comment to explain usage of MIR.
Renamed to `implicit_return`. Covered all other kinds besides `ExprKind::Lit`. Added check for replacing `break` with `return`.
Appeasing the Test Gods. Seems I'm not smart enough to run the tests locally before committing.
Renamed `forced_return` to `missing_returns`. Better clarification in the docs. Ran `update_lints`.
Added `FORCED_RETURN` lint.
````
r? @oli-obk
2018-12-06 19:51:38 +00:00
bors
cd48ce1e9a Auto merge of #56282 - qnighy:additional-sizedness-fix, r=nikomatsakis
Fix #56237: normalize type before deferred sizedness checking.

This seems to fix #56237, which was introduced by #56045. I don't thoroughly understand how this works, but the problem seemed to be a lack of normalization.

r? @cramertj
2018-12-06 17:31:15 +00:00
Matthias Krüger
078984d892 submodules: update clippy from 29bf75cd to 1df5766c
Fixes clippy toolstate.

Changes:
````
Remove -preview suffix from README
rustup clippy build with latest rustc (breakage due to 08f8faedd0 )
Forgot to remove some debugging code ...
Improved code noted by clippy.
Fix bug in `implicit_return`. Bug was already covered by test, but test was not checked for.
fix #3482 and add ui test for it
Don't change current working directory of cargo tests
Use cargo's "PROFILE" envvar and set CLIPPY_DOGFOOD
Use dogfood_runner for deterministic test ordering
Remove unnecessary documentation
Fix dogfood tests.
Added additional reasoning to `Why is this bad?`. Added comment to explain usage of MIR.
Renamed to `implicit_return`. Covered all other kinds besides `ExprKind::Lit`. Added check for replacing `break` with `return`.
Appeasing the Test Gods. Seems I'm not smart enough to run the tests locally before committing.
Renamed `forced_return` to `missing_returns`. Better clarification in the docs. Ran `update_lints`.
Added `FORCED_RETURN` lint.
````
2018-12-06 17:38:01 +01:00
John Kåre Alsaker
a70babed03 Use a function to access the Hir map to be able to turn it into a query later 2018-12-06 17:24:36 +01:00
bors
4bb5d35659 Auto merge of #56392 - petrochenkov:regensym, r=oli-obk
Delay gensym creation for "underscore items" (`use foo as _`/`const _`) until name resolution

So they cannot be cloned by macros. See https://github.com/rust-lang/rust/pull/56303 for the discussion.

Mostly fix cross-crate use of underscore items by inverting the "gensyms are lost in metadata" bug as described in https://github.com/rust-lang/rust/pull/56303#issuecomment-442464695.
Fix unused import warnings for single-segment imports (first commit) and `use crate_name as _` imports (as specified in https://github.com/rust-lang/rust/pull/56303#issuecomment-442274118).
Prohibit accidentally implemented `static _: TYPE = EXPR;` (cc https://github.com/rust-lang/rust/pull/55983).
Add more tests for `use foo as _` imports.
2018-12-06 15:08:11 +00:00
Jethro Beekman
c559216ad0 Change sys::Thread::new to take the thread entry as Box<dyn FnBox() + 'static>̣ 2018-12-06 20:37:15 +05:30
Jethro Beekman
6c03640646 Update compiler_builtins and remove wasm f32<->f64 math conversions 2018-12-06 20:37:15 +05:30
Jethro Beekman
22c4368993 Refactor net::each_addr/lookup_host to forward error from resolve 2018-12-06 20:37:15 +05:30
Jethro Beekman
030b1ed7f7 Refactor stderr_prints_nothing into a more modular function 2018-12-06 20:37:15 +05:30
John Kåre Alsaker
7df4b812f0 Fix bug in from_key_hashed_nocheck 2018-12-06 14:32:00 +01:00
bors
367e783e6f Auto merge of #56557 - pietroalbini:rollup, r=pietroalbini
Rollup of 11 pull requests

Successful merges:

 - #56315 (Rustdoc inline macro reexport)
 - #56332 ([rustdoc] Specific crate search)
 - #56362 (Stabilise exhaustive integer patterns)
 - #56426 (libsyntax_pos: A few tweaks)
 - #56441 (rustbuild: Fix issues with compiler docs)
 - #56446 (pass the parameter environment to `traits::find_associated_item`)
 - #56500 (cleanup: remove static lifetimes from consts)
 - #56525 (Avoid extra copy and syscall in std::env::current_exe)
 - #56528 (Remove unused dependency (rustc_lint -> rustc_mir))
 - #56548 (Optimized string FromIterator + Extend impls)
 - #56553 (Don't print the profiling summary to stdout when -Zprofile-json is set)

Failed merges:

r? @ghost
2018-12-06 12:41:30 +00:00
bors
128a1fa4e1 Auto merge of #55635 - oli-obk:min_const_unsafe_fn, r=nikomatsakis
Allow calling `const unsafe fn` in `const fn` behind a feature gate

cc #55607

r? @Centril
2018-12-06 10:18:17 +00:00
Pietro Albini
cd1ee5edbd
Rollup merge of #56553 - wesleywiser:silence_profiler_output, r=Mark-Simulacrum
Don't print the profiling summary to stdout when -Zprofile-json is set

cc rust-lang-nursery/rustc-perf#299
2018-12-06 07:49:02 +01:00
Pietro Albini
e9e92d53ad
Rollup merge of #56548 - Lucretiel:string-extend-optimize, r=sfackler
Optimized string FromIterator + Extend impls

I noticed that there was a lost opportunity to reuse string buffers in `FromIterator<String>` and `FromIterator<Cow<str>>`; updated the implementations to use these. In practice this translates to at least one fewer allocation when using these APIs.

Additionally, rewrote `Extend` implementations to use `iter.for_each`, which (supposedly) helps the compiler optimize those loops (because iterator adapters are encouraged to provide optimized implementations of `fold` and `try_fold`.
2018-12-06 07:49:01 +01:00
Pietro Albini
9e7ff56750
Rollup merge of #56528 - sinkuu:unused_dep, r=Mark-Simulacrum
Remove unused dependency (rustc_lint -> rustc_mir)
2018-12-06 07:49:00 +01:00
Pietro Albini
bd8dd11d4d
Rollup merge of #56525 - udoprog:linux-current-exe, r=alexcrichton
Avoid extra copy and syscall in std::env::current_exe
2018-12-06 07:48:58 +01:00
Pietro Albini
e941e1a624
Rollup merge of #56500 - ljedrz:cleanup_rest_of_const_lifetimes, r=zackmdavis
cleanup: remove static lifetimes from consts

A follow-up to https://github.com/rust-lang/rust/pull/56497.
2018-12-06 07:48:57 +01:00
Pietro Albini
50148a9566
Rollup merge of #56446 - arielb1:special-env-implications, r=nikomatsakis
pass the parameter environment to `traits::find_associated_item`

dropping the param-env on the floor is obviously the wrong thing to do.

The ICE was probably exposed by #54490 adding the problem-exposing use of
`traits::find_associated_item`.

Fixes #55380.

r? @nikomatsakis
2018-12-06 07:48:56 +01:00
Pietro Albini
0be8537e23
Rollup merge of #56441 - ollie27:rustbuild_compiler_docs, r=alexcrichton
rustbuild: Fix issues with compiler docs

* Create output directories for crates beforehand so rustdoc uses relative links (fixes #56107)
* Readd rustc_codegen_ssa (fixes #56196)
* Don't build out of tree dependencies for rustdoc like we don't for rustc
2018-12-06 07:48:55 +01:00
Pietro Albini
0aa72ad55d
Rollup merge of #56426 - petrochenkov:syntweak, r=nikomatsakis
libsyntax_pos: A few tweaks
2018-12-06 07:48:53 +01:00
Pietro Albini
e57ed0ddab
Rollup merge of #56362 - varkor:stabilise-exhaustive-integer-patterns, r=nikomatsakis
Stabilise exhaustive integer patterns

This is dependent on the FCP for https://github.com/rust-lang/rfcs/pull/2591 being completed, but that should happen tomorrow, so there's little harm in opening this PR early.

Closes #50907.
2018-12-06 07:48:52 +01:00
Pietro Albini
a88feabac4
Rollup merge of #56332 - GuillaumeGomez:specifi-crate-search, r=QuietMisdreavus
[rustdoc] Specific crate search

Reopening of #54706.
Fixes #54616.

<img width="1440" alt="screenshot 2018-11-29 at 01 29 11" src="https://user-images.githubusercontent.com/3050060/49191372-979adf80-f376-11e8-963e-e4feb927c1da.png">

r? @QuietMisdreavus
2018-12-06 07:48:50 +01:00
Pietro Albini
3073c7af5f
Rollup merge of #56315 - weiznich:rustdoc_inline_macro_reexport, r=QuietMisdreavus
Rustdoc inline macro reexport

Fixes #56173

I assume this needs to have tests? Any pointers where these need to be added?
2018-12-06 07:48:48 +01:00
bors
77a6a61f06 Auto merge of #56307 - RalfJung:stacked-borrows-2-phase, r=oli-obk
Stacked borrows: Support 2 phase borrows

Some infrastructure needed for Stacked Borrows to be able to handle 2-phase-borros.

r? @oli-obk
2018-12-06 06:30:17 +00:00
Mark Rousskov
84443a3a24 Send textual profile data to stderr, not stdout
This makes it possible to run with RUSTFLAGS="-Zself-profile" without
having to redirect compiler output; otherwise Cargo will error out due
to non-empty compiler stdout.
2018-12-05 21:48:25 -07:00
Wesley Wiser
3858aff9d3 Don't print the profiling summary to stdout when -Zprofile-json is set
cc rust-lang-nursery/rustc-perf#299
2018-12-05 21:11:09 -05:00
Nathan West
811a2bfe53
Added explainatory comments 2018-12-05 17:46:03 -08:00
bors
1839c144bc Auto merge of #54517 - mcr431:53956-panic-on-include_bytes-of-own-file, r=michaelwoerister
53956 panic on include bytes of own file

fix #53956

When using `include_bytes!` on a source file in the project, compiler would panic on subsequent compilations because `expand_include_bytes` would overwrite files in the source_map with no source. This PR changes `expand_include_bytes` to check source_map and use the already existing src, if any.
2018-12-06 01:36:51 +00:00
Nathan West
823dd8ca33 Fixed mutability 2018-12-05 15:11:32 -08:00