Commit Graph

75031 Commits

Author SHA1 Message Date
kennytm
8671f6931f
Rollup merge of #47784 - alexcrichton:less-dsymutil, r=michaelwoerister
rustc: Add the ability to not run dsymutil

This commit adds the ability for rustc to not run `dsymutil` by default
on OSX. A new codegen option, `-Z run-dsymutil=no`, was added to specify
that `dsymutil` should *not* run and instead the compiler should
unconditionally keep the object files around in a compilation if
necessary for debug information.

cc #47240
2018-02-14 16:14:27 +08:00
Nick Cameron
fa94c5c311 Update RLS 2018-02-14 21:13:30 +13:00
Michael Lamparski
9205f3d8e3 macro-commas test cleanup 2018-02-14 02:15:27 -05:00
Jimmy Brush
ab9cae1ba1
only pass -no-pie if linker_is_gnu 2018-02-13 22:10:27 -05:00
Jimmy Brush
c8def9222b
handle -no-pie error from clang 2018-02-13 22:10:27 -05:00
Jimmy Brush
f0e9af1c55
verify passed -no-pie arg before retrying failed link 2018-02-13 22:10:27 -05:00
Jimmy Brush
8a72f589e5
pass correct pie args to gcc linker 2
Recent versions of gcc default to creating a position independent
executable and must be explicitly told not to with the -no-pie argument.

Old versions of gcc don't understand -no-pie and will throw an error.
Check for that case and retry without -no-pie. This is safe because
these old versions of gcc should never default to creating a position
independent executable.
2018-02-13 22:10:26 -05:00
Jimmy Brush
16350526d8
pass correct pie args to gcc linker
When linking with gcc, run gcc -v to see if --enable-default-pie is
compiled in. If it is, pass -no-pie when necessary to disable pie.
Otherwise, pass -pie when necessary to enable it.

Fixes #48032 and fixes #35061
2018-02-13 22:10:26 -05:00
csmoe
20dcc72127 inform type annotations 2018-02-14 11:06:08 +08:00
Taylor Cramer
dbacf0c56b Test err on impl Trait projection within dyn Trait 2018-02-13 17:52:22 -08:00
Taylor Cramer
f1fbf79223 Amend nested impl Trait error message 2018-02-13 17:46:33 -08:00
Mark Simulacrum
a64575c3bd Fix default Steps without paths.
Some Steps are by-default run but don't have any paths associated with
them. We need to have at least one PathSet per each Step, though, so we
add an empty one on calls to `never()`.
2018-02-13 18:46:29 -07:00
Taylor Cramer
70e1f4fc6d Disallow projections from impl Trait types 2018-02-13 17:34:26 -08:00
Taylor Cramer
75f72c0de1 Make nested impl Trait a hard error 2018-02-13 17:34:26 -08:00
bobtwinkles
3118cbe41c Allow two-phase borrows of &mut self in ops
We need two-phase borrows of ops to be in the initial NLL release since without
them lots of existing code will break. Fixes #48129
2018-02-13 20:28:10 -05:00
Guillaume Gomez
9a30673d2b Add missing feature 2018-02-14 01:34:30 +01:00
Paolo Teti
893fc32744 Update compiler-builtins to latest master.
- Rebase compiler-rt to LLVM 6
- New VFP intrinsics on ARM
- Add generic conversion from a narrower to a wider FP type (f32->f64)
- Fixes minor issues on _subsf3, __subdf3 and __aeabi_fcmple
- Split test suite to a separate crate
2018-02-13 22:39:11 +01:00
Shaun Steenkamp
e034dddb32 38880 remove unnecessary self.table.size check 2018-02-13 20:25:10 +00:00
Vitali Lovich
6fe2d1d765 Misc fixes
Switch feature guards to unstable
Add missing semicolon
Remove mut that's no longer necessary
2018-02-13 11:32:04 -08:00
Shaun Steenkamp
f3330cea7f 38880 fix incorrect negation 2018-02-13 17:15:58 +00:00
Shaun Steenkamp
94c3c84b6a 38880 hashmap check size=0, not just capacity=0 2018-02-13 16:40:02 +00:00
Shaun Steenkamp
a295ec1ec9 38880 restore original entry(key) method 2018-02-13 16:32:35 +00:00
Jacob Kiesel
fbad3b2468
Switch to retain calling drain_filter. 2018-02-13 08:48:25 -07:00
Mark Simulacrum
7cf5ea02a9 Add note about Cargo cwd change to release notes 2018-02-13 08:08:38 -07:00
Michael Woerister
335e25fd79 incr.comp.: Don't keep RefCells in on-disk-cache borrowed in order to allow for recursive invocations. 2018-02-13 15:50:37 +01:00
kennytm
7984c895b6
Improve debuggability of #48116.
1. When the invalid condition is hit, write out the relevant variables too
2. In compile-fail/parse-fail tests, check for ICE first, so the invalid
   error patterns won't mask our ICE output.
2018-02-13 22:48:16 +08:00
James Cowgill
f45a474bd6 rustc_trans: add abi::CastTarget::ChunkedPrefix 2018-02-13 13:40:51 +00:00
Michael Woerister
580dd42cfa incr.comp.: Run cache directory garbage collection before loading dep-graph. 2018-02-13 13:37:32 +01:00
Michael Woerister
0397fc1b3a Handle path prefix mapping in a more stable way when computing the crate hash. 2018-02-13 10:55:54 +01:00
Mazdak Farrokhzad
db13296b6f core::iter::repeat_with: fix missing word, see @Pazzaz's review 2018-02-13 06:20:17 +01:00
Vitali Lovich
97df227d19 Fix wait_timeout value 2018-02-12 21:08:14 -08:00
bors
4d2d3fc5da Auto merge of #47804 - retep007:recursive-requirements, r=pnkfelix
Optimized error reporting for recursive requirements #47720

Fixes #47720
2018-02-13 00:14:11 +00:00
Brad Gibson
7948afdc53 changed termination_trait's bound from Error to Debug; added compiletest header command and appropriate tests 2018-02-12 13:52:49 -08:00
Niko Matsakis
cc05561048 detect wrong number of args when type-checking a closure
Instead of creating inference variables for those argument types, use
the trait error-reporting code to give a nicer error.
2018-02-12 16:49:21 -05:00
Mazdak Farrokhzad
91a4b9044d core::iter::repeat_with: tracking issue is #48169 2018-02-12 21:47:59 +01:00
Niko Matsakis
bd10ef7b27 rustc_typeck/check/closure: rustfmt 2018-02-12 14:47:31 -05:00
Mark Simulacrum
f237e9e2e7 Remove allocation from width of character function. 2018-02-12 12:28:32 -07:00
hedgehog1024
4360dfa126
Delete information about 'entry_and_modify' from Unstable book 2018-02-12 22:27:33 +03:00
hedgehog1024
862132be72
Stabilize 'entry_and_modify' feature for HashMap 2018-02-12 22:25:03 +03:00
hedgehog1024
770fdeddb4
Stabilize 'entry_and_modify' feature for BTreeMap 2018-02-12 22:19:37 +03:00
Alex Crichton
4c658f76c1 Update compiletest's read2 function
This was originally copied over from Cargo and Cargo has since [been
updated][update] so let's pull in the fixes here too!

[update]: https://github.com/rust-lang/cargo/pull/5030
2018-02-12 10:46:31 -08:00
Alex Crichton
43e8ac27d9 rustc: Persist LLVM's Linker in Fat LTO
This commit updates our Fat LTO logic to tweak our custom wrapper around LLVM's
"link modules" functionality. Previously whenever the
`LLVMRustLinkInExternalBitcode` function was called it would call LLVM's
`Linker::linkModules` wrapper. Internally this would crate an instance of a
`Linker` which internally creates an instance of an `IRMover`. Unfortunately for
us the creation of `IRMover` is somewhat O(n) with the input module. This means
that every time we linked a module it was O(n) with respect to the entire module
we had built up!

Now the modules we build up during LTO are quite large, so this quickly started
creating an O(n^2) problem for us! Discovered in #48025 it turns out this has
always been a problem and we just haven't noticed it. It became particularly
worse recently though due to most libraries having 16x more object files than
they previously did (1 -> 16).

This commit fixes this performance issue by preserving the `Linker` instance
across all links into the main LLVM module. This means we only create one
`IRMover` and allows LTO to progress much speedier.

From the `cargo-cache` project in #48025 a **full build** locally when from
5m15s to 2m24s. Looking at the timing logs each object file was linked in in
single-digit millisecond rather than hundreds, clearly being a nice improvement!

Closes #48025
2018-02-12 09:11:06 -08:00
Mazdak Farrokhzad
9cee79a7ff core::iter::repeat_with: document DoubleEndedIterator behavior 2018-02-12 18:03:56 +01:00
Alex Crichton
0f16eee013 rustc: Add the ability to not run dsymutil
This commit adds the ability for rustc to not run `dsymutil` by default
on OSX. A new codegen option, `-Z run-dsymutil=no`, was added to specify
that `dsymutil` should *not* run and instead the compiler should
unconditionally keep the object files around in a compilation if
necessary for debug information.

cc #47240
2018-02-12 07:44:40 -08:00
Shaun Steenkamp
fd78621717 38880 fixup add missing mut 2018-02-12 14:53:29 +00:00
Shaun Steenkamp
29f71488bc 38880 remove redundant extra function 2018-02-12 14:00:08 +00:00
Antoni Boucher
146b81c2c6 Fix tidy errors 2018-02-12 08:07:10 -05:00
Scott McMurray
0bb818cc0b Add Iterator::try_for_each
The fallible version of for_each and the stateless version of try_fold.
2018-02-12 01:39:01 -08:00
bors
16362c737f Auto merge of #47843 - estebank:teach, r=nikomatsakis
Add `-Zteach` documentation

Add extra inline documentation to E0019, E0016, E0013, E0396, E0017,
E0018, E0010, E0022, E0030, E0029, E0033, E0026 and E0027.

Follow up to #47652.
2018-02-12 09:38:40 +00:00
Mazdak Farrokhzad
efa332038c core::iter::repeat_with: fix doc tests 2018-02-12 09:18:22 +01:00