about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2019-03-20Auto merge of #58791 - denzp:asm-compile-tests, r=alexcrichtonbors-140/+327
Introduce assembly tests suite The change introduces a new test suite - **Assembly** tests. The motivation behind this is an ability to perform end-to-end codegen testing with LLVM backend. Turned out, NVPTX backend sometimes missing common Rust features (`i128` and libcalls in the past, and still full atomics support) due to different reasons. Prior to this change, basic NVPTX assembly tests were implemented within `run-make` suite. Now, it's easier to write additional and maintain existing tests for the target. cc @gnzlbg @peterhj cc @eddyb I adjusted mangling scheme expectation, so there is no need to change the tests for #57967
2019-03-20Fix whitespaceJohn Kåre Alsaker-3/+3
2019-03-20Add eval_always to query macro and move a query overJohn Kåre Alsaker-13/+25
2019-03-20Add anon to query macro and move a query overJohn Kåre Alsaker-27/+44
2019-03-20Add no_force to query macro and move some queries overJohn Kåre Alsaker-65/+71
2019-03-20Allow itertoolsJohn Kåre Alsaker-0/+1
2019-03-20Add no_hash to query macro and move some queries overJohn Kåre Alsaker-235/+240
2019-03-20Auto merge of #57018 - dcreager:redundant-linker, r=alexcrichtonbors-25/+75
Keep last redundant linker flag, not first When a library (L1) is passed to the linker multiple times, this is sometimes purposeful: there might be several other libraries in the linker command (L2 and L3) that all depend on L1. You'd end up with a (simplified) linker command that looks like: ``` -l2 -l1 -l3 -l1 ``` With the previous behavior, when rustc encountered a redundant library, it would keep the first instance, and remove the later ones, resulting in: ``` -l2 -l1 -l3 ``` This can cause a linker error, because on some platforms (e.g. Linux), the linker will only include symbols from L1 that are needed *at the point it's referenced in the command line*. So if L3 depends on additional symbols from L1, which aren't needed by L2, the linker won't know to include them, and you'll end up with "undefined symbols" errors. A better behavior is to keep the *last* instance of the library: ``` -l2 -l3 -l1 ``` This ensures that all "downstream" libraries have been included in the linker command before the "upstream" library is referenced. Fixes rust-lang#47989
2019-03-20remove visit_static from librustc::mirSaleem Jaffer-32/+23
2019-03-20Add messages for different verbosity levels.O01eg-0/+12
Output copy actions
2019-03-20Add a -Z time option which prints only passes which runs onceJohn Kåre Alsaker-21/+26
2019-03-20Auto merge of #59298 - kennytm:rollup, r=kennytmbors-15/+46
Rollup of 5 pull requests (all of which changes `src/ci/docker`) Successful merges: - #58986 ([CI] Update binutils for powerpc64 and powerpc64le) - #59038 (Track embedded-book in the toolstate) - #59055 (CI: Set job names.) - #59253 (Calculate Docker cache hash precisely from Dockerfile's dependencies) - #59257 (Update CI configuration for building Redox libraries) Failed merges: r? @ghost
2019-03-20Move some bench tests back from libtestgnzlbg-0/+25
2019-03-20Rollup merge of #59257 - redox-os:upstream-redox, r=sanxiynkennytm-10/+4
Update CI configuration for building Redox libraries This fixes https://github.com/rust-lang/rust/issues/59254
2019-03-20Rollup merge of #59253 - kennytm:precise-docker-cache-hash, r=pietroalbinikennytm-1/+12
Calculate Docker cache hash precisely from Dockerfile's dependencies #58549 changed the Docker cache calculation to include every file under `src/ci/docker`, so that when files under `dist-x86_64-linux` is changed, its dependent image `dist-i686-linux` will also be rebuilt. However, this ultraconservative solution caused the `dist-i686-linux` to be rebuilt every time an irrelevant Dockerfile (e.g. the PowerPC ones) is changed, which increases the building time beyond 3 hours and forcing a spurious but expected failure. This commit instead parses the Dockerfile itself and look for the actual dependencies. The scripts needs to be copied into the Docker image, which must be done with the COPY command, so we just need to find all lines with a COPY command and add the source file into the hash calculator. Note: this script only handles single-lined COPY command in the form `COPY src1 src2 src3 dst`, since these are the only variant used inside this repository.
2019-03-20Rollup merge of #59038 - kennytm:track-embedded-book, r=oli-obkkennytm-3/+9
Track embedded-book in the toolstate The embedded book was tested in the tools job but the test result was never published. This PR adds maintainer information of embedded-book. This PR also requires the next update to embedded-book to pass the all tests, currently its state is test-fail. rust-lang-nursery/rust-toolstate#10 should be merged before this PR.
2019-03-20Rollup merge of #58986 - cuviper:ppc64-binutils, r=alexcrichtonkennytm-1/+21
[CI] Update binutils for powerpc64 and powerpc64le Cargo powerpc64 and powerpc64le are seeing `SIGILL` crashes in openssl, which was found to be a linking problem, fixed by newer binutils. See <https://github.com/rust-lang/rust/issues/57345#issuecomment-462094555> For powerpc64 we're using crosstool-ng, which doesn't offer a newer binutils version, but we can just compile it separately. On powerpc64le we're already building binutils. Both are now updated to binutils 2.32. Closes rust-lang/cargo#6320 Closes rust-lang/rust#57345 Closes rust-lang/rustup.rs#1620 r? @alexcrichton
2019-03-20Use `curl` instead of `wget` in install-x86_64-redox.shkennytm-1/+1
2019-03-19review commentsEsteban Küber-3/+5
2019-03-19rustc: Update linker flavor inference from filenameAlex Crichton-8/+11
This commit fixes what is believed to be a preexisting bug in the linker flavor inference and additionally adds a new features. Previously if the linker didn't end in `exe` the entire file name was compared to infer the linker's flavor. This commit fixes the code to instead unconditionally inspect `file_stem()` which is the relevant part we're looking at to figure out what the linker flavor is. Additionally this commit now also adds recognition of `clang` and clang wrappers that end in `-clang` (which look like gcc wrappers). This should allow clang-specific wrappers to get correctly inferred to the `Gcc` linker flavor rather than the default linker flavor configured for a target.
2019-03-19convert field/method confusion help to suggestionsAndy Russell-53/+98
2019-03-19Do not encode gensymed imports in metadataVadim Petrochenkov-4/+20
2019-03-19Ignore test on WindowsDouglas Creager-1/+6
2019-03-19Auto merge of #57842 - gnzlbg:extract_libtest, r=gnzlbgbors-5612/+25
Move libtest out of rust-lang/rust This is a first step towards a number of goals explained in this internals post: https://internals.rust-lang.org/t/a-path-forward-towards-re-usable-libtest-functionality-custom-test-frameworks-and-a-stable-bench-macro This PR does not fully remove libtest from rust-lang/rust, we keep a shim that imports and re-exports the external libtest, and adds the proc_macro dependency, etc. r? @alexcrichton cc @djrenren @petrochenkov
2019-03-19Remove libterm from bootstrapgnzlbg-1/+0
2019-03-19Fix missing cfg for aarch64 + ios in ffi.rsJames Duley-4/+6
2019-03-19Fix AArch64 typo in commentsJames Duley-3/+3
2019-03-19Fix aarch64 typoJames Duley-2/+2
2019-03-19Explicitly prefer dynamic linking in test caseDouglas Creager-0/+1
2019-03-19Rollup merge of #59290 - oli-obk:trivial_move_prop, r=davidtwcoMazdak Farrokhzad-0/+23
Run branch cleanup after copy prop This is preliminary work for https://github.com/rust-lang/rust/pull/59288#issuecomment-474277172 which gets rid of `if` in the HIR. cc @rust-lang/wg-mir-opt @Centril
2019-03-19Rollup merge of #59280 - joshlf:sandbox/joshlf/stabilize-refcell-map-split, ↵Mazdak Farrokhzad-5/+2
r=cramertj,Centril Stabilize refcell_map_split feature Closes #51476.
2019-03-19Rollup merge of #59275 - regexident:docs-self, r=joshtriplettMazdak Farrokhzad-44/+44
Replaced self-reflective explicit types with clearer `Self` or `Self::…` in stdlib docs Many docs examples use explicit types instead of the semantically more clear `Self`/`Self::…` aliases. By using the latter it's clear that the value's type depends on either `Self`, or an associated type of `Self`, instead of some constant type. It's also more consistent (and I'd argue correct), as the current docs aren't really consistent in this, as can be seen from the diff. This is a best effort PR, as I was basically going through the docs manually, looking for offending examples. I'm sure I missed a few. Gotta start somewhere.
2019-03-19Rollup merge of #59116 - estebank:comma-sugg, r=petrochenkovMazdak Farrokhzad-9/+27
Be more discerning on when to attempt suggesting a comma in a macro invocation Fix #58796.
2019-03-19Rollup merge of #58939 - taeguk:fix-doc-about-pin, r=rkruppeMazdak Farrokhzad-1/+1
Fix a tiny error in documentation of std::pin. `new_unmoved` must be `mut` for passing to `std::mem::swap`.
2019-03-19Rollup merge of #58812 - jonhoo:floor_v_trunc, r=alexcrichtonMazdak Farrokhzad-8/+16
Clarify distinction between floor() and trunc() `floor()` rounds towards `-INF`, `trunc()` rounds towards 0. This PR clarifies this in the examples.
2019-03-19Rollup merge of #58778 - xfix:exact_size_case_mapping_iter, r=SimonSapinMazdak Farrokhzad-0/+26
Implement ExactSizeIterator for ToLowercase and ToUppercase
2019-03-19Rollup merge of #57847 - clarcharr:dbg_no_params, r=CentrilMazdak Farrokhzad-4/+15
dbg!() without parameters Fixes #57845.
2019-03-19Rollup merge of #57729 - ↵Mazdak Farrokhzad-0/+99
pnkfelix:issue-55748-pat-types-are-constraints-on-bindings-too, r=nikomatsakis extra testing of how NLL handles wildcard type `_` test that wildcard type `_` is not duplicated by `type Foo<X> = (X, X);` and potentially instantiated at different types when used in type ascriptions in let bindings. (NLL's handling of this for the type ascription *expression form* is currently broken, or at least differs from what AST-borrowck does. I'll file a separate bug about that. Its not something critical to address since that expression is guarded by `#![feature(type_ascription)]`.) cc #55748
2019-03-19Rollup merge of #56348 - matklad:todo-macro, r=withoutboatsMazdak Farrokhzad-1/+61
Add todo!() macro The primary use-case of `todo!()` macro is to be a much easier to type alternative to `unimplemented!()` macro. EDIT: hide unpopular proposal about re-purposing unimplemented <details> However, instead of just replacing `unimplemented!()`, it gives it a more nuanced meaning: a thing which is intentionally left unimplemented and which should not be called at runtime. Usually, you'd like to prevent such cases statically, but sometimes you, for example, have to implement a trait only some methods of which are applicable. There are examples in the wild of code doing this thing, and in this case, the current message of `unimplemented`, "not *yet* implemented" is slightly misleading. With the addition of TODO, you have three nuanced choices for a `!`-returning macro (in addition to a good-old panic we all love): * todo!() * unreachable!() * unimplemented!() Here's a rough guideline what each one means: - `todo`: use it during development, as a "hole" or placeholder. It might be a good idea to add a pre-commit hook which checks that `todo` is not accidentally committed. - `unreachable!()`: use it when your code can statically guarantee that some situation can not happen. If you use a library and hit `unreachable!()` in the library's code, it's definitely a bug in the library. It's OK to have `unreachable!()` in the code base, although, if possible, it's better to replace it with compiler-verified exhaustive checks. - `unimplemented!()`: use it when the type checker forces you to handle some situation, but there's a contract that a callee must not actually call the code. If you use a library and hit `unimplemented!()`, it's probably a bug in your code, though it *could* be a bug in the library (or library docs) as well. It is ok-ish to see an `unimplemented!()` in real code, but it usually signifies a clunky, eyebrow-rising API. </details>
2019-03-19Make Option<ThreadId> no larger than ThreadId, with NonZeroU64Simon Sapin-3/+4
2019-03-19Directly reference the roadmap upstreamgnzlbg-18/+1
2019-03-19Export stats::Summary from libtestgnzlbg-1/+4
2019-03-19Add missing explicit importsgnzlbg-1/+6
2019-03-19Move black_box back to rust-lang/libtest and use explicit importsgnzlbg-1/+20
2019-03-19Add a README to libtest with a roadmapgnzlbg-0/+30
2019-03-19Allow the staged_apignzlbg-0/+1
2019-03-19Use feature(test)gnzlbg-0/+1
2019-03-19Use libtest from crates.iognzlbg-1/+1
2019-03-19Re-export libtestgnzlbg-0/+17
2019-03-19Move libtest out of rust-lang/rustgnzlbg-5646/+1