Commit Graph

64263 Commits

Author SHA1 Message Date
Oliver Middleton
93f78bc45e rustdoc: Display extern "C" fn instead of extern fn 2017-05-15 00:52:17 +01:00
Robin Kruppe
1a24a591dd Remove rustc_llvm dependency from rustc_metadata
Move the code for loading metadata from rlibs and dylibs from
rustc_metadata into rustc_trans, and introduce a trait to avoid
introducing a direct dependency on rustc_trans.

This means rustc_metadata is no longer rebuilt when LLVM changes.
2017-05-14 20:30:22 +02:00
Felix Raimundo
a51777ec87 Improve thread::Builder documentation.
Part of #29378 .

- In particular explains *why* we would use the builder instead of
  the free function.
- Changes the parent-child explanation for a spawned-caller.
- Add link to `io::Result` in `thread::Builder`
- Corrects the `thread::Builder::spawn` documentation.
2017-05-14 20:13:32 +02:00
Oliver Middleton
d4f20eb7e3 linkchecker: Add support for <base> tag
Add support for the HTML <base> tag as used by mdBook so The Unstable
Book can be checked.

Also cleanup a few things:
* Stop checking the name attribute. It should never have been used and
mdBook has since been fixed not to use it.
* Make sure we only check html files.
* Remove a few unnecessary allocations.

Finally, dead links in The Unstable Book have been fixed.
2017-05-14 18:06:35 +01:00
Oliver Middleton
21ca9cab7d Fix some dead links in The Unstable Book 2017-05-14 18:06:13 +01:00
bors
386b0b9d39 Auto merge of #41978 - alexcrichton:update-cargo, r=Mark-Simulacrum
Update the Cargo submodule

Brings some nice updates like faster index clones/updates, retries on 500 from
crates.io, etc.
2017-05-14 16:16:17 +00:00
Felix Raimundo
a9cb094879 Explain why thread::yield_now could be used.
Part of #29378.
2017-05-14 14:05:10 +02:00
bors
9f15631c36 Auto merge of #41969 - Enet4:update-rls-313, r=Mark-Simulacrum
Update RLS to solve serious crash

As a follow-up to rust-lang-nursery/rls#312, this PR contains the fix to the latest experienced RLS crashes, which should hopefully reach the nightly release as soon as possible.
2017-05-14 05:57:38 +00:00
est31
0d0cb2796b librustc_incremental: remove unused macro in test case 2017-05-14 05:06:21 +02:00
bors
94497b73a7 Auto merge of #41987 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
Rollup of 7 pull requests

- Successful merges: #41612, #41826, #41939, #41946, #41950, #41975, #41979
- Failed merges:
2017-05-14 03:00:34 +00:00
Mark Simulacrum
7294ce10b6 Rollup merge of #41979 - pftbest:msp430_libcalls, r=alexcrichton
LLVM: Add support for EABI-compliant libcalls on MSP430.

This change will allow rust code to have proper support for division
and multiplication using libgcc.

r? @alexcrichton
cc @awygle
2017-05-13 20:55:13 -06:00
Mark Simulacrum
6764ae13be Rollup merge of #41975 - liranringel:pass-static-crt-to-llvm-cmake-config, r=alexcrichton
Pass static crt to llvm cmake configuration

Solves https://github.com/rust-lang/rust/issues/40246
2017-05-13 20:55:13 -06:00
Mark Simulacrum
24aba55805 Rollup merge of #41950 - GuillaumeGomez:rustdoc-links, r=frewsxcv
Fix anchor invalid redirection to search

Fixes #41933.

r? @rust-lang/docs
2017-05-13 20:55:12 -06:00
Mark Simulacrum
e71d4404bd Rollup merge of #41946 - qnighy:disallow-dot-underscore-in-float, r=petrochenkov
Disallow ._ in float literal.

This patch makes lexer stop parsing number literals before `._`, as well as before `.a`. Underscore itself is still allowed like in `4_000_000.000_000_`.

Fixes a half part of #41723. The other is `""_`.
2017-05-13 20:55:11 -06:00
Mark Simulacrum
cfea522226 Rollup merge of #41939 - eddyb:trait-assoc-const-default, r=petrochenkov
rustc_resolve: don't deny outer type parameters in embedded constants.

This solves a problem noted at https://github.com/rust-lang/rust/issues/29646#issuecomment-300929548, where an associated const default in a trait couldn't refer to `Self` or type parameters, due to inaccuracies in lexical scoping.

I've also allowed "embedded expressions" (`[T; expr]`,  `[x; expr]`, `typeof expr`) to refer to type parameters in scope. *However*, the typesystem still doesn't handle #34344.
Fully resolving that issue requires breaking cycles more aggressively (e.g. lazy evaluation), *even* in when the expression doesn't depend on type parameters, to type-check it at all, and then also type-level "constant projections" (in the vein of `{expr}` from const generics).
2017-05-13 20:55:10 -06:00
Mark Simulacrum
27ea129dd3 Rollup merge of #41826 - GuillaumeGomez:add-markdown-content, r=frewsxcv
Add markdown-[before|after]-content options

cc @nical

r? @rust-lang/docs
2017-05-13 20:55:09 -06:00
Mark Simulacrum
c75ccd7b4e Rollup merge of #41612 - mandeep:add-ops-generics, r=GuillaumeGomez,frewsxcv
Added generic example of std::ops::Add in doc comments

We discussed on IRC how the std::ops examples were potentially missing examples using generics. This PR adds an example to std::ops::Add that shows the use of a generic type T. I'm not sure this is ready for merge as I think the two examples now make the documentation a bit verbose, but I think it's a good starting point. I'd love to hear others thoughts on this. This is in relation to the last item in issue #29365.
2017-05-13 20:55:08 -06:00
Eduardo Pinho
b8684347ae Update rls submodule with important fixes
- Updates ls_types to "0.10.0", which prevents RLS crashes
2017-05-14 01:25:58 +01:00
bors
93dd1cab5d Auto merge of #41919 - nrc:save-crate, r=eddyb
Include the crate's root module in save-analysis

r? @eddyb
2017-05-13 22:58:04 +00:00
Vadzim Dambrouski
51cebb3e63 LLVM: Add support for EABI-compliant libcalls on MSP430.
This change will allow rust code to have proper support for division
and multiplication using libgcc libcalls.
2017-05-13 21:23:00 +03:00
Alex Crichton
d0a6af37e7 Update the Cargo submodule
Brings some nice updates like faster index clones/updates, retries on 500 from
crates.io, etc.
2017-05-13 11:07:33 -07:00
bors
826d8f3850 Auto merge of #41914 - eddyb:region-refactor, r=nikomatsakis
rustc: simpler ParameterEnvironment and free regions.

The commits describe the slow transformation but the highlights are:
* `ReEarlyBound` is considered free, with a scope based on the item that defined the lifetime parameter, and the root body of the `RegionMaps` in use, removing the need for `free_substs`
* `liberate_late_bound_regions` and `implicit_region_bound` moved to typeck
* `CodeExtent` not interned at all now - ideally it would be 2 `u32` but it's small anyway

Future work building up on this could include:
* `ParameterEnvironment` becoming just the result of `predicates_of`
  * interning makes my "parent chain" scheme unnecessary
* `implicit_region_bound` could be retrieved from `RegionMaps`
* renaming `CodeExtent` to `Scope`
  * generalizing "call site" to "use site" or something better to include constants
* renaming `RegionMaps` to `ScopeTree` and its API to talk about "parents" explicitly
2017-05-13 17:56:09 +00:00
Liran Ringel
1163f2cc23 Pass static crt to llvm cmake configuration 2017-05-13 17:12:19 +02:00
Eduard-Mihai Burtescu
dc7ffbeca4 rustc_resolve: don't deny outer type parameters in embedded constants. 2017-05-13 17:45:54 +03:00
Eduard-Mihai Burtescu
6da4123f5f rustc: don't keep a second reference to the HIR map in middle::region. 2017-05-13 17:43:32 +03:00
Eduard-Mihai Burtescu
ea1c6df81e rustc: stop interning CodeExtent, it's small enough. 2017-05-13 17:43:32 +03:00
Eduard-Mihai Burtescu
da8b6e276e rustc: remove redundant fn_id's from CodeExtentData. 2017-05-13 17:42:59 +03:00
Eduard-Mihai Burtescu
2da080e779 rustc: treat ReEarlyBound as free without replacing it with ReFree. 2017-05-13 17:42:59 +03:00
Eduard-Mihai Burtescu
dbae169ac1 rustc_typeck: do not leak late-bound lifetimes from bounds to closures. 2017-05-13 17:42:59 +03:00
Eduard-Mihai Burtescu
74c6788d9c rustc: move liberate_late_bound_regions to rustc_typeck. 2017-05-13 17:42:59 +03:00
Eduard-Mihai Burtescu
6d4c2141b5 rustc: use DefId instead of CodeExtent for FreeRegion's scope. 2017-05-13 17:42:59 +03:00
Eduard-Mihai Burtescu
72aab7ade4 rustc_mir: remove unnecessary drop scope for constants. 2017-05-13 17:42:59 +03:00
Eduard-Mihai Burtescu
9809fe0d02 rustc: use call_site_extent for closure environment free regions. 2017-05-13 17:42:59 +03:00
Eduard-Mihai Burtescu
bd8246be74 rustc: uniformly compute ParameterEnvironment's "free outlive scope". 2017-05-13 17:42:59 +03:00
Jorge Aparicio
94d2c43300 add -Z pre-link-arg{,s} to rustc
This commit adds two unstable flags to `rustc`: `-Z pre-link-arg` and `-Z
pre-link-args`. These are the counterpart of the existing `-C link-arg{,s}`
flags and can be used to pass extra arguments at the *beginning* of the linker
invocation, before the Rust object files are passed.
2017-05-13 09:26:55 -05:00
est31
b36d23c8af Add test, and fix the other tests 2017-05-13 16:02:29 +02:00
est31
ba0601d4b6 libcore: #[allow] some unused macros 2017-05-13 16:02:29 +02:00
est31
d14d194f61 Support #[allow] etc logic on a per macro level
This commit extends the current unused macro linter
to support directives like #[allow(unused_macros)]
or #[deny(unused_macros)] directly next to the macro
definition, or in one of the modules the macro is
inside. Before, we only supported such directives
at a per crate level, due to the crate's NodeId
being passed to session.add_lint.

We also had to implement handling of the macro's
NodeId in the lint visitor.
2017-05-13 16:02:29 +02:00
est31
db82c57cb7 Extend the libsyntax visitor to work over macro defs 2017-05-13 16:02:29 +02:00
est31
df188b8f97 Add lint for unused macros 2017-05-13 16:02:29 +02:00
bors
77f1bec6f5 Auto merge of #41920 - arielb1:inline-drop, r=eddyb
remove the #[inline] attribute from drop_in_place

Apparently LLVM has exponential code growth while inlining landing pads
if that attribute is present.

Fixes #41696.

beta-nominating  because regression.
r? @eddyb
2017-05-13 13:59:19 +00:00
kennytm
115854e19c
Fix #35829 (syntax extension's quote_expr!() does not handle b"…")
* Handles `b"…"`, `br#"…"#` and `...` for `quote_expr!()`.
* Refactored the match statement to allow it to complain loudly on any
  unhandled token.
* Similarly, proc_macro's `quote!()` did not handle `br#"…"#` or `r#"…"#`,
  so this commit fixes it too.
2017-05-13 21:41:25 +08:00
Ariel Ben-Yehuda
237dbe939a add min-llvm-version 2017-05-13 14:38:15 +03:00
bors
ef3ec5ece5 Auto merge of #41965 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
Rollup of 15 pull requests

- Successful merges: #41820, #41860, #41876, #41896, #41912, #41916, #41918, #41921, #41923, #41934, #41935, #41940, #41942, #41943, #41951
- Failed merges:
2017-05-13 11:35:59 +00:00
bors
453cad6e65 Auto merge of #41861 - arthurprs:update-jemalloc, r=alexcrichton
Update jemalloc to 4.5.0

* pointing jemalloc submodule to the 4.5.0 HEAD + generated configure script
* removed the now unnecessary extra config for windows. jemalloc is now much better at configuring itself overall.

Let's see what the CI think.
2017-05-13 09:12:09 +00:00
Tatsuyuki Ishi
30383b2384 Reenable opt-level 3
This comment is quite old, let's see what would happen with current MSVC.
2017-05-13 14:35:16 +09:00
bors
4f3886abf1 Auto merge of #41847 - alexcrichton:less-unstable-annotations, r=eddyb
rustc: Add a new `-Z force-unstable-if-unmarked` flag

This commit adds a new `-Z` flag to the compiler for use when bootstrapping the
compiler itself. We want to be able to use crates.io crates, but we also want
the usage of such crates to be as ergonomic as possible! To that end compiler
crates are a little tricky in that the crates.io crates are not annotated as
unstable, nor do they expect to pull in unstable dependencies.

To cover all these situations it's intended that the compiler will forever now
bootstrap with `-Z force-unstable-if-unmarked`. This flags serves a dual purpose
of forcing crates.io crates to themselves be unstable while also allowing them
to use other "unstable" crates.io crates. This should mean that adding a
dependency to compiler no longer requires upstream modification with
unstable/staged_api attributes for inclusion!
2017-05-13 05:22:08 +00:00
Mark Simulacrum
f28e3cdf54 Rollup merge of #41951 - Eijebong:master, r=GuillaumeGomez
rustdoc: Break words in the location box of the sidebar.

This prevents long names from overflowing.

Before:
![before](https://img.bananium.fr/eijebong/afcfe18b-393e-4d3b-bc11-fe3def6659b9.png)

After:
![after](https://img.bananium.fr/eijebong/9483466b-3b6c-4509-ab0f-fd0c6572ef27.png)
2017-05-12 18:57:38 -06:00
Mark Simulacrum
7b1e51d798 Rollup merge of #41943 - malbarbo:android-openssl, r=alexcrichton
bootstrap: openssl android support
2017-05-12 18:57:37 -06:00
Mark Simulacrum
c17811cce3 Rollup merge of #41942 - tommyip:master, r=Mark-Simulacrum
Fix unexpected panic with the -Z treat-err-as-bug option

This fix an issue where the compiler panics even if there is no error when passed with the `-Z treat-err-as-bug` option.

Fixes #35886.

r? @Mark-Simulacrum
2017-05-12 18:57:37 -06:00