Commit Graph

90479 Commits

Author SHA1 Message Date
John Kåre Alsaker
892fed9d08 Add support for using a jobserver with Rayon 2019-03-01 01:15:37 +01:00
Alex Gaynor
96be181c7e
Fixed a syntax error in the pin docs 2019-02-28 16:34:03 -05:00
bors
350674b718 Auto merge of #58250 - Zoxc:rustc-interface-1, r=oli-obk
Introduce rustc_interface and move some methods there

Split out from https://github.com/rust-lang/rust/pull/56732

r? @oli-obk
2019-02-28 21:02:12 +00:00
John Kåre Alsaker
23a51f91c9 Introduce rustc_interface and move some methods there 2019-02-28 19:30:31 +01:00
bors
1999a22881 Auto merge of #57760 - dlrobertson:varargs1, r=alexreg
Support defining C compatible variadic functions

## Summary

Add support for defining C compatible variadic functions in unsafe rust with
`extern "C"` according to [RFC 2137].

## Details

### Parsing
When parsing a user defined function that is `unsafe` and `extern "C"` allow
variadic signatures and inject a "spoofed" `VaList` in the new functions
signature. This allows the user to interact with the variadic arguments via a
`VaList` instead of manually using `va_start` and `va_end` (See [RFC 2137] for
details).

### Codegen

When running codegen for a variadic function, remove the "spoofed" `VaList`
from the function signature and inject `va_start` when the arg local
references are created for the function and `va_end` on return.

## TODO

 - [x] Get feedback on injecting `va_start/va_end` in MIR vs codegen
 - [x] Properly inject `va_end` - It seems like it should be possible to inject
       `va_end` on the `TerminatorKind::Return`. I just need to figure out how
       to get the `LocalRef` here.
 - [x] Properly call Rust defined C variadic functions in Rust - The spoofed
       `VaList` causes problems here.

Related to: #44930

r? @ghost

[RFC 2137]: https://github.com/rust-lang/rfcs/blob/master/text/2137-variadic.md
2019-02-28 15:00:25 +00:00
bors
190feb6529 Auto merge of #58208 - taiki-e:libstd-2018, r=Centril
libstd => 2018

Transitions `libstd` to Rust 2018; cc #58099

r? @Centril
2019-02-28 11:38:40 +00:00
Mazdak Farrokhzad
0c1a38ce3b
Update src/libcore/mem.rs
Co-Authored-By: RalfJung <post@ralfj.de>
2019-02-28 09:24:35 +01:00
Nicholas Nethercote
fbdece47c8 Ensure record_layout_for_printing() is inlined.
This reduces instruction counts for the `ctfe-stress-2` benchmark by
about 1%.
2019-02-28 19:10:43 +11:00
Eric Huss
3aca176fb2 Update edition-guide 2019-02-27 21:09:10 -08:00
Andy Russell
a998b1f425
allow specifying attributes for tool lints 2019-02-27 16:50:47 -05:00
Taiki Endo
aad9e29f52 Fix rebase fail 2019-02-28 04:06:17 +09:00
Taiki Endo
90dbf59b92 Fix some imports and paths 2019-02-28 04:06:17 +09:00
Taiki Endo
9d691bd9ce Fix error in tag-that-dare-not-speak-its-name 2019-02-28 04:06:16 +09:00
Taiki Endo
2af18a2b38 Fix errors in test/ui 2019-02-28 04:06:16 +09:00
Taiki Endo
2c783c3543 Revert removed #![feature(nll)] 2019-02-28 04:06:16 +09:00
Taiki Endo
0749a04fb6 Fix #[macro_use] extern crate in sys/cloudabi 2019-02-28 04:06:15 +09:00
Taiki Endo
93b6d9e086 libstd => 2018 2019-02-28 04:06:15 +09:00
Ralf Jung
f92c20426e improve readability 2019-02-27 18:58:19 +01:00
Alex Crichton
320640060f Whitelist containers that allow older toolchains
We'll use this as a temporary measure to get an LLVM update landed, but
we'll have to go through and update images later to make sure they've
got the right toolchains.
2019-02-27 08:10:21 -08:00
Trevor Spiteri
b70a9532a9 Replace s with self in docs for str methods taking self. 2019-02-27 17:07:35 +01:00
bors
7e001e5c6c Auto merge of #58777 - Centril:rollup, r=Centril
Rollup of 14 pull requests

Successful merges:

 - #58075 (Fix for issue  #58050)
 - #58627 (rustdoc: move collapse and unindent docs passes earlier)
 - #58630 (Make `visit_clobber` panic-safe.)
 - #58678 (Deny `async fn` in 2015 edition)
 - #58680 (Fix an indexing error when using `x.py help`)
 - #58703 (Fix copy-pasted typo for read_string return value)
 - #58744 (Update dlmalloc to 0.1.3)
 - #58746 (std: docs: Disable running several Stdio doctests)
 - #58748 (update scoped_tls to 1.0)
 - #58749 (Reduce Repetitions of (n << amt) >> amt)
 - #58752 (Update string_cache_codegen to 0.4.2)
 - #58755 (Clarify `rotate_{left,right}` docs)
 - #58757 (Normalize the type Self resolves to in an impl)
 - #58761 (Add tracking issue for the unwind attribute)

Failed merges:

r? @ghost
2019-02-27 15:54:48 +00:00
Dan Robertson
f7dd4389f8
Fix doc comments in librustc/hir/lowering.rs 2019-02-27 10:21:59 -05:00
Dan Robertson
08bd4ff998
Rename variadic to c_variadic
Function signatures with the `variadic` member set are actually
C-variadic functions. Make this a little more explicit by renaming the
`variadic` boolean value, `c_variadic`.
2019-02-27 10:21:54 -05:00
Dan Robertson
a618ad6335
Refactor FunctionCx::codgen_terminator
- Move closures defined in codegen_terminator into a separate helper
   structure and implementation.
 - Create helper functions for each of the complex match arms on the
   terminators kind in codegen_terminator.
2019-02-27 10:21:50 -05:00
Dan Robertson
1a6e9e2408
Add c_variadic to the unstable-book
- Add the c_variadic language feature
 - Add the c_variadic library feature
2019-02-27 10:21:45 -05:00
Dan Robertson
210c6071b0
Add c_variadic language feature item 2019-02-27 10:21:40 -05:00
Dan Robertson
58147d486b
Support defining C compatible variadic functions
Add support for defining C compatible variadic functions in unsafe rust
with extern "C".
2019-02-27 10:21:35 -05:00
Dan Robertson
cd56472cc4
Fix tidy check for language and library features 2019-02-27 10:21:28 -05:00
Ralf Jung
4e7d4c7778 ManuallyDrop != MaybeUninit 2019-02-27 15:32:32 +01:00
Mazdak Farrokhzad
1394b6f3a1
Rollup merge of #58761 - Mark-Simulacrum:add-feature-gate-unwind, r=Centril
Add tracking issue for the unwind attribute

cc https://github.com/rust-lang/rust/issues/58760
2019-02-27 13:32:37 +01:00
Mazdak Farrokhzad
5910271b91
Rollup merge of #58757 - aoikonomopoulos:issue-58212, r=oli-obk
Normalize the type Self resolves to in an impl

This is required at the very least in order to evaluate associated
constants for arrays.

Fixes #57796
Fixes #58212.

r? @oli-obk
cc @hellow554
2019-02-27 13:32:36 +01:00
Mazdak Farrokhzad
90cbf8ebf7
Rollup merge of #58755 - tbu-:pr_doc_clarifyrotate, r=Centril
Clarify `rotate_{left,right}` docs

I wondered what the `<<!` operator is although the exclamation mark was
only the end of the sentence.
2019-02-27 13:32:34 +01:00
Mazdak Farrokhzad
0c871fa2bd
Rollup merge of #58752 - taiki-e:update-string_cache_codegen, r=alexcrichton
Update string_cache_codegen to 0.4.2

This removes two dependencies of the old version (string_cache is already the latest version).
2019-02-27 13:32:33 +01:00
Mazdak Farrokhzad
851689c138
Rollup merge of #58749 - kenta7777:reduce-repetition, r=oli-obk
Reduce Repetitions of (n << amt) >> amt

Fixes part of [#49937](https://github.com/rust-lang/rust/issues/49937).
2019-02-27 13:32:31 +01:00
Mazdak Farrokhzad
a20c2fdd47
Rollup merge of #58748 - hellow554:scoped_tls, r=estebank
update scoped_tls to 1.0

scoped_tls has been updated to version 1.0
This PR will hopefully merge flawlessly :)

This fixes, among others, https://github.com/alexcrichton/scoped-tls/issues/9

Note, that the nightly feature has been removed in 64bd7b84a1
2019-02-27 13:32:29 +01:00
Mazdak Farrokhzad
c0c7d59c2b
Rollup merge of #58746 - ipetkov:std-process-docs, r=cramertj
std: docs: Disable running several Stdio doctests

* A number of `Stdio` related doc examples include running the "rev"
command to illustrate piping commands. The majority of these tests are
marked as `no_run` except for two tests which were not
* Not running these tests is unlikely to cause any negative impact, and
doing so also allows the test suite to pass in environments where the
"rev" command is unavailable
2019-02-27 13:32:27 +01:00
Mazdak Farrokhzad
5eadeed702
Rollup merge of #58744 - jethrogb:jb/dlmalloc-0.1.3, r=alexcrichton
Update dlmalloc to 0.1.3

r? @alexcrichton
2019-02-27 13:32:26 +01:00
Mazdak Farrokhzad
115c8a1f09
Rollup merge of #58703 - shepmaster:read_line_return, r=centril
Fix copy-pasted typo for read_string return value
2019-02-27 13:32:24 +01:00
Mazdak Farrokhzad
fed5610025
Rollup merge of #58680 - varkor:xpy-help-index-error, r=alexcrichton
Fix an indexing error when using `x.py help`

Fixes https://github.com/rust-lang/rust/issues/58640.
2019-02-27 13:32:23 +01:00
Mazdak Farrokhzad
f84a8cf28a
Rollup merge of #58678 - doctorn:refuse-async-fn-2015-edition, r=varkor
Deny `async fn` in 2015 edition

This commit prevents code using `async fn` from being compiled in Rust 2015 edition.

Compiling code of the form:

```rust
async fn foo() {}
```

Will now result in the error:

```
error[E0670]: `async fn` is not permitted in the 2015 edition
 --> async.rs:1:1
  |
1 | async fn foo() {}
  | ^^^^^

error: aborting due to error

For more information about an error, try `rustc --explain E0670`.
```

This resolves #58652 and also resolves #53714.

r? @varkor
2019-02-27 13:32:21 +01:00
Mazdak Farrokhzad
a46b00eeb5
Rollup merge of #58630 - nnethercote:fix-fold_clobber, r=petrochenkov
Make `visit_clobber` panic-safe.

Local measurements indicate the performance effect is negligible.

r? @petrochenkov
2019-02-27 13:32:19 +01:00
Mazdak Farrokhzad
f6673a4e7c
Rollup merge of #58627 - euclio:rustdoc-pass-order, r=QuietMisdreavus
rustdoc: move collapse and unindent docs passes earlier

Moves these passes as early as possible so later passes will see the same markdown that is passed to the test collector.

Fixes #58473, and a similar issue with the private-doc-tests lint.

r? @QuietMisdreavus
2019-02-27 13:32:18 +01:00
Mazdak Farrokhzad
2f58c2cfc0
Rollup merge of #58075 - asettouf:master, r=varkor
Fix for issue  #58050

Hi,

a quick PR to mention in the compiler error message that `?` is a macro operator, as according to issue #58050

It passed `python x.py test src/tools/tidy`  locally, as well as the recommendation to run `/x.py test src/test/ui --stage 1 --bless`.

Let me know if anything else is needed.
2019-02-27 13:32:16 +01:00
Tim Vermeulen
88bd624a88 Add trailing newline 2019-02-27 13:22:18 +01:00
bors
4855370740 Auto merge of #58741 - varkor:lang-lib-feature-shared-name, r=alexreg
Allow lang and lib features to share names

Fixes https://github.com/rust-lang/rust/issues/58715.

I didn't add a test, because there's currently no standard lang test feature and I felt apprehensive about adding a permanently unstable feature. Instead, a shared lang/lib feature will be used in https://github.com/rust-lang/rust/pull/57760 and will essentially provide an immediately test.
2019-02-27 12:22:13 +00:00
Tim Vermeulen
ec2e4ba919 Improve existing benchmarks to prevent extreme optimizations 2019-02-27 11:46:37 +01:00
Tim Vermeulen
88847718f0 Add relevant benchmarks 2019-02-27 11:44:30 +01:00
bors
f5b5f924eb Auto merge of #58709 - kornelski:book, r=QuietMisdreavus
Update book submodule

Updates the book to the latest commit

This is to include [documentation SEO fix](https://github.com/rust-lang/book/pull/1788) ASAP.
2019-02-27 07:53:56 +00:00
bors
f0be45738d Auto merge of #58321 - csmoe:substs, r=oli-obk
[Step 1] Implement "small substs optimization" for substs of length 1

addresses part of #58310
r?@arielb1
2019-02-27 01:22:13 +00:00
Mark Rousskov
f313baedba Add tracking issue for the unwind attribute. 2019-02-26 13:59:05 -07:00