about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2017-07-31async-llvm(9): Move OngoingCrateTranslation into back::write.Michael Woerister-73/+83
2017-07-31async-llvm(8): Clean up resource management and drop LLVM modules ASAP.Michael Woerister-151/+256
2017-07-31async-llvm(7): Clean up error handling a bit.Michael Woerister-6/+13
2017-07-31async-llvm(6): Make the LLVM work coordinator get its work package through a ↵Michael Woerister-28/+53
channel instead of upfront.
2017-07-31async-llvm(5): Do continuous error handling on main thread.Michael Woerister-14/+55
2017-07-31async-llvm(4): Move work coordination to separate thread in order to free up ↵Michael Woerister-63/+61
the main thread for translation.
2017-07-31async-llvm(3): Make write::CodegenContext Clone and Send.Michael Woerister-82/+78
2017-07-31async-llvm(2): Decouple diagnostics emission from LLVM worker coordination.Michael Woerister-154/+238
2017-07-31async-llvm(1): Run LLVM already in trans_crate().Michael Woerister-72/+129
2017-07-31Auto merge of #43562 - alexcrichton:no-clean-rebuild, r=petrochenkovbors-13/+0
rustbuild: Remove `--enable-llvm-clean-rebuild` This was intended for bots back in the day where we'd persist caches of LLVM builds across runs, but nowadays we don't do that on any of the bots so this option is no longer necessary
2017-07-31Auto merge of #43546 - nikomatsakis:issue-43132, r=arielb1bors-6/+86
save subobligations in the projection cache The projection cache explicitly chose not to "preserve" subobligations for projections, since the fulfillment context ought to have been doing so. But for the trait evaluation scheme that causes problems. This PR reproduces subobligations. This has the potential to slow down compilation, but minimal investigation suggests it does not do so. One hesitation about this PR: I could not find a way to make a standalone test case for #43132 (but admittedly I did not try very hard). Fixes #43132. r? @arielb1
2017-07-31Auto merge of #43519 - zackmdavis:long_diagnostics_ever_after, r=GuillaumeGomezbors-22/+90
a couple more error explanations for posterity E0436, E0595, and moving E0569 to where it belongs in the file rather than being bizarrely out of numerical order r? @GuillaumeGomez
2017-07-30Auto merge of #43563 - tbu-:pr_from_str_radix_panic, r=alexcrichtonbors-0/+4
Document the `from_str_radix` panic CC #42034
2017-07-30Document the `from_str_radix` panicTobias Bucher-0/+4
CC #42034
2017-07-30rustbuild: Remove `--enable-llvm-clean-rebuild`Alex Crichton-13/+0
This was intended for bots back in the day where we'd persist caches of LLVM builds across runs, but nowadays we don't do that on any of the bots so this option is no longer necessary
2017-07-30Auto merge of #43556 - dmizuk:remove-z-opt-usage, r=arielb1bors-5/+9
librustc_driver: Remove -Z option from usage on stable compiler The `-Z` flag has been disabled since Rust 1.19 stable, but it still shows in `rustc --help`. This PR addresses the inconsistency by removing the message on the stable channel.
2017-07-30extended info for E0595 closure cannot mutate immutable local variableZack M. Davis-1/+18
2017-07-30move extended info for E0569 to numerical-order location in fileZack M. Davis-20/+22
We want the error explanations to appear in numerical order so that they're easy to find. (Also, any other order would be arbitrary and thus not constitute a Schelling point.) Bizarrely, the extended information for E0569 was placed between E0244 and E0318 in librustc_typeck/diagnostics.rs (when the code was introduced in 9a649c32). This commit moves it to be between E0562 and E0570, where it belongs. (Also, at reviewer request, say "Erroneous code example", the standard verbiage that it has been decided that we say everywhere.)
2017-07-30add extended info for E0436 functional record update syntax needs structZack M. Davis-1/+50
This example focuses on struct-like enum variants, because it's not immediately obvious in what other context we can get E0436 alone, without any other, more serious, errors. (Triggering E0436 with a union also emits a separate "union expressions should have exactly one field" error.) (One might argue that we ought to accept the functional record update syntax for struct-like enums, but that is beyond the scope of this error-index-comprehensiveness commit.)
2017-07-30save the subobligations as wellNiko Matsakis-6/+86
2017-07-30Auto merge of #43515 - QuietMisdreavus:show-assoc-types, r=GuillaumeGomezbors-0/+7
rustdoc: print associated types in traits "implementors" section When viewing a trait's implementors, they won't show anything about the implementation other than any bounds on the generics. You can see the full implementation details on the page for the type, but if the type is external (e.g. it's an extension trait being implemented for primitives), then you'll never be able to see the details of the implementation without opening the source code. This doesn't solve everything about that, but it does still show an incredibly useful piece of information: the associated types. This can help immensely for traits like `Deref` or `IntoIterator` in libstd, and also for traits like `IntoFuture` outside the standard library. Fixes #24200 🚨 BIKESHED ALERT 🚨 The indentation and sizing of the types is suspect. I put it in the small text so it wouldn't blend in with the next impl line. (It shares a CSS class with the where clauses, as you can see in the following image.) However, the indentation is nonstandard. I initially tried with no indentation (looked awkward and blended too well with the surrounding impls) and with 4-space indentation (too easy to confuse with where clauses), before settling on the 2-space indentation seen below. It's... okay, i guess. Open to suggestions. ![snippet of the implementors of IntoIterator, showing the associated types](https://user-images.githubusercontent.com/5217170/28697456-a4e01a12-7301-11e7-868e-2a6441d6c9e0.png)
2017-07-30Auto merge of #43543 - petrochenkov:32330, r=nikomatsakisbors-278/+113
Cleanup some remains of `hr_lifetime_in_assoc_type` compatibility lint r? @nikomatsakis
2017-07-30librustc_driver: Remove -Z option from usage on stable compilerDaiki Mizukami-5/+9
2017-07-30Auto merge of #43551 - Mark-Simulacrum:rollup, r=Mark-Simulacrumbors-58/+160
Rollup of 8 pull requests - Successful merges: #43409, #43501, #43509, #43512, #43513, #43536, #43544, #43549 - Failed merges:
2017-07-29Rollup merge of #43549 - alexcrichton:build-llvm, r=Mark-SimulacrumMark Simulacrum-1/+7
rustbuild: Enable building LLVM I use this from time to time debugging LLVM builds, useful to have!
2017-07-29Rollup merge of #43544 - redox-os:update_redox_sys, r=sfacklerMark Simulacrum-10/+62
Update redox sys - Add JoinHandleExt - Split FL and FD for fcntl
2017-07-29Rollup merge of #43536 - alexcrichton:privileged, r=TimNNMark Simulacrum-0/+7
Flag docker invocations as --privileged on CI When upgrading to LLVM 5.0 it was found that the leak sanitizer tests were failing with fatal errors, but they were passing locally when run. Turns out it looks like they may be using new ptrace-like syscalls so the docker container now needs `--privileged` when executing to complete the test.
2017-07-29Rollup merge of #43513 - alexcrichton:inline-repeat, r=BurntSushiMark Simulacrum-0/+22
std: Mark `Layout::repeat` as `#[inline]` This fixes an optimization regression by allowing LLVM to see through more functions. Closes #43272
2017-07-29Rollup merge of #43512 - arielb1:untyped-move-paths, r=eddybMark Simulacrum-19/+28
erase types in the move-path abstract domain Leaving types unerased would lead to 2 types with a different "name" getting different move-paths, which would cause major brokenness (see e.g. #42903). This does not fix any *known* issue, but is required if we want to use abs_domain with non-erased regions (because the same can easily have different names). cc @RalfJung. r? @eddyb
2017-07-29Rollup merge of #43509 - QuietMisdreavus:method-src, r=GuillaumeGomezMark Simulacrum-1/+13
rustdoc: add [src] links to associated functions inside an impl block While impl blocks currently have a `[src]` link to show the source for the impl block as a whole, individual methods inside that impl block do not. This can pose a problem for structs with a lot of methods, like many in libstd. This change adds little `[src]` links to individual methods that point directly to the function in the bundled source. fixes #12932 ![methods on HashMap, showing the new src links](https://user-images.githubusercontent.com/5217170/28686066-9e7a19de-72cf-11e7-8e6b-b7d60fa33032.png)
2017-07-29Rollup merge of #43501 - topecongiro:span-to-whereclause, r=nrcMark Simulacrum-2/+13
Add Span to ast::WhereClause This PR adds `Span` field to `ast::WhereClause`. The motivation here is to make rustfmt's life easier when recovering comments before and after where clause. r? @nrc
2017-07-29Rollup merge of #43409 - tshepang:concise, r=steveklabnikMark Simulacrum-25/+8
doc: make into_iter example more concise Also, remove dupe example
2017-07-29Auto merge of #43009 - GuillaumeGomez:unused-doc-comments, r=nrcbors-35/+110
Throw errors when doc comments are added where they're unused #42617
2017-07-29Update rls submoduleGuillaume Gomez-0/+0
2017-07-29Flag docker invocations as --privileged on CIAlex Crichton-0/+7
When upgrading to LLVM 5.0 it was found that the leak sanitizer tests were failing with fatal errors, but they were passing locally when run. Turns out it looks like they may be using new ptrace-like syscalls so the docker container now needs `--privileged` when executing to complete the test.
2017-07-29rustbuild: Enable building LLVMAlex Crichton-1/+7
I use this from time to time debugging LLVM builds, useful to have!
2017-07-29Auto merge of #43541 - gaurikholkar:lifetime_errors, r=nikomatsakisbors-12/+12
Changing E0623 error message - both anonymous lifetime regions Changing the error message to ``` error[E0623]: lifetime mismatch --> $DIR/ex3-both-anon-regions.rs:12:12 | 11 | fn foo(x: &mut Vec<&u8>, y: &u8) { | --- --- these references are not declared with the same lifetime... 12 | x.push(y); | ^ ...but data from `y` flows into `x` here error: aborting due to previous error ``` cc @nikomatsakis @aturon @jonathandturner r? @nikomatsakis
2017-07-29std: Mark `Layout::repeat` as `#[inline]`Alex Crichton-0/+22
This fixes an optimization regression by allowing LLVM to see through more functions. Closes #43272
2017-07-29Split FL and FD fcntlsJeremy Soller-10/+12
2017-07-29Redox: Add JoinHandleExt (matching Unix version)Ian Douglas Scott-0/+50
2017-07-29Cleanup some remains of `hr_lifetime_in_assoc_type` compatibility lintVadim Petrochenkov-278/+113
2017-07-29print associated types in traits "implementors" sectionQuietMisdreavus-0/+7
2017-07-29Update cargo versionGuillaume Gomez-2/+11
2017-07-29Auto merge of #43534 - alexcrichton:cargo-target-runner, r=Mark-Simulacrumbors-69/+26
rustbuild: Use Cargo's "target runner" This commit leverages a relatively new feature in Cargo to execute cross-compiled tests, the `target.$target.runner` configuration. We configure it through environment variables in rustbuild and this avoids the need for us to locate and run tests after-the-fact, instead relying on Cargo to do all that execution for us.
2017-07-29changing E0623 error messagegaurikholkar-12/+12
2017-07-29Auto merge of #43530 - alexcrichton:update-freebsd-compilers, ↵bors-4/+4
r=Mark-Simulacrum,cuviper rustbuild: Update cross-compilers for FreeBSD When working through bugs for the LLVM 5.0 upgrade it looks like the FreeBSD cross compilers we're currently using are unable to build LLVM, failing with references to the function `std::to_string` claiming it doesn't exist. I don't actually know what this function is, but assuming that it was added in a more recent version of a C++ standard I've updated the gcc versions for the toolchains we're using. This made the error go away!
2017-07-29Auto merge of #43527 - alexcrichton:different-llvm-cross, r=Mark-Simulacrumbors-0/+8
rustbuild: Tweak how we cross-compile LLVM In preparation for upgrading to LLVM 5.0 it looks like we need to tweak how we cross compile LLVM slightly. It's using `CMAKE_SYSTEM_NAME` to infer whether to build libFuzzer which only works on some platforms, and then once we configure that it needs to apparently reach into the host build area to try to compile `llvm-config` as well. Once these are both configured, though, it looks like we can successfully cross-compile LLVM.
2017-07-29Auto merge of #43492 - lu-zero:master, r=alexcrichtonbors-17/+186
More Altivec Intrinsics
2017-07-29Auto merge of #43518 - cuviper:aapcs_vfp, r=eddybbors-5/+55
Support homogeneous aggregates for hard-float ARM Hard-float ARM targets use the AAPCS-VFP ABI, which passes and returns homogeneous float/vector aggregates in the VFP registers. Fixes #43329. r? @eddyb
2017-07-28rustbuild: Use Cargo's "target runner"Alex Crichton-69/+26
This commit leverages a relatively new feature in Cargo to execute cross-compiled tests, the `target.$target.runner` configuration. We configure it through environment variables in rustbuild and this avoids the need for us to locate and run tests after-the-fact, instead relying on Cargo to do all that execution for us.