]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoRollup merge of #59587 - XAMPPRocky:master, r=Centril
Mazdak Farrokhzad [Sun, 31 Mar 2019 17:19:56 +0000 (19:19 +0200)]
Rollup merge of #59587 - XAMPPRocky:master, r=Centril

Remove #[doc(hidden)] from Error::type_id

Nominating this for beta so that `Error::type_id` has documentation in time for release.

cc @rust-lang/release @rust-lang/docs

5 years agoRollup merge of #59583 - oberien:patch-1, r=Centril
Mazdak Farrokhzad [Sun, 31 Mar 2019 17:19:54 +0000 (19:19 +0200)]
Rollup merge of #59583 - oberien:patch-1, r=Centril

match match match match match

5 years agoRollup merge of #59581 - jmcomets:stabilize-refcell_replace_swap, r=Centril
Mazdak Farrokhzad [Sun, 31 Mar 2019 17:19:53 +0000 (19:19 +0200)]
Rollup merge of #59581 - jmcomets:stabilize-refcell_replace_swap, r=Centril

Stabilize refcell_replace_swap feature

Please be kind, this is my first time contributing. :smile:

I noticed #43570 only needs stabilizing (and I need it for a side project I'm working on), so I followed the [guide](https://rust-lang.github.io/rustc-guide/stabilization_guide.html#stabilization-pr) to move things forward.

I'm happy to amend things if needed, let me know!

5 years agoRollup merge of #59580 - taiki-e:coerce-closure, r=oli-obk
Mazdak Farrokhzad [Sun, 31 Mar 2019 17:19:51 +0000 (19:19 +0200)]
Rollup merge of #59580 - taiki-e:coerce-closure, r=oli-obk

Allow closure to unsafe fn coercion

Closes #57883

5 years agoRollup merge of #59519 - eddyb:layout-variants-refactor, r=oli-obk
Mazdak Farrokhzad [Sun, 31 Mar 2019 17:19:50 +0000 (19:19 +0200)]
Rollup merge of #59519 - eddyb:layout-variants-refactor, r=oli-obk

rustc_target: factor out common fields of non-Single Variants.

@tmandry and I were discussing ways to generalize the current variants/discriminant layout to allow more fields in the "`enum`" (or another multi-variant types, such as potentially generator state, in the future), shared by all variants, than just the tag/niche discriminant.

This refactor should make it easier to extend multi-variant layouts, as nothing is duplicating anymore between "tagged enums" and "niche-filling enums".

r? @oli-obk

5 years agoRollup merge of #59506 - JohnTitor:improve-mcount, r=nagisa
Mazdak Farrokhzad [Sun, 31 Mar 2019 17:19:48 +0000 (19:19 +0200)]
Rollup merge of #59506 - JohnTitor:improve-mcount, r=nagisa

Use platform dependent mcount function

close #59097

This pull-request is based on #57244 and [here](https://github.com/llvm-mirror/clang/search?q=MCountName&unscoped_MCountName).

r? @nagisa

5 years agoRollup merge of #58805 - fabric-and-ink:redundant_import, r=petrochenkov
Mazdak Farrokhzad [Sun, 31 Mar 2019 17:19:47 +0000 (19:19 +0200)]
Rollup merge of #58805 - fabric-and-ink:redundant_import, r=petrochenkov

Lint for redundant imports

Add lint for redundant imports. The changes are suggested by @petrochenkov.

Closes #10178.

5 years agoAllow closure to unsafe fn coercion
Taiki Endo [Sun, 31 Mar 2019 15:00:43 +0000 (00:00 +0900)]
Allow closure to unsafe fn coercion

5 years agoRemove #[doc(hidden)] from Error::type_id
Aaron Power [Sun, 31 Mar 2019 14:54:05 +0000 (16:54 +0200)]
Remove #[doc(hidden)] from Error::type_id

5 years agoUse `u{1}` instead of `01`
Yuki OKUSHI [Sun, 31 Mar 2019 14:17:49 +0000 (23:17 +0900)]
Use `u{1}` instead of `01`

5 years agoAuto merge of #59584 - Centril:rollup, r=Centril
bors [Sun, 31 Mar 2019 14:11:11 +0000 (14:11 +0000)]
Auto merge of #59584 - Centril:rollup, r=Centril

Rollup of 4 pull requests

Successful merges:

 - #58828 (libstd: deny(elided_lifetimes_in_paths))
 - #59234 (Mention `no merge policy` in the CONTRIBUTING guide)
 - #59572 (Include bounds in generic re-ordering diagnostic)
 - #59574 (Distinguish message for external macros depending on error level)

Failed merges:

r? @ghost

5 years agoRollup merge of #59574 - JohnTitor:distinguish-error-vs-warning, r=Centril
Mazdak Farrokhzad [Sun, 31 Mar 2019 14:10:38 +0000 (16:10 +0200)]
Rollup merge of #59574 - JohnTitor:distinguish-error-vs-warning, r=Centril

Distinguish message for external macros depending on error level

fixes #57716

(I picked you because assigned to this issue.)
r? @estebank

5 years agoRollup merge of #59572 - davidtwco:issue-59508, r=varkor
Mazdak Farrokhzad [Sun, 31 Mar 2019 14:10:37 +0000 (16:10 +0200)]
Rollup merge of #59572 - davidtwco:issue-59508, r=varkor

Include bounds in generic re-ordering diagnostic

Fixes #59508.

r? @estebank
cc @varkor

5 years agoRollup merge of #59234 - stepnivlk:add-no_merge_policy, r=oli-obk
Mazdak Farrokhzad [Sun, 31 Mar 2019 14:10:36 +0000 (16:10 +0200)]
Rollup merge of #59234 - stepnivlk:add-no_merge_policy, r=oli-obk

Mention `no merge policy` in the CONTRIBUTING guide

Issue: https://github.com/rust-lang/rust/issues/59233

5 years agoRollup merge of #58828 - Centril:deny-elided_lifetimes_in_paths-libstd, r=oli-obk
Mazdak Farrokhzad [Sun, 31 Mar 2019 14:10:34 +0000 (16:10 +0200)]
Rollup merge of #58828 - Centril:deny-elided_lifetimes_in_paths-libstd, r=oli-obk

libstd: deny(elided_lifetimes_in_paths)

r? @oli-obk

5 years agomatch match match match match
Jaro Fietz [Sun, 31 Mar 2019 13:20:10 +0000 (15:20 +0200)]
match match match match match

5 years agorefcell_replace_swap: remove feature gate & obsolete documentation item
Jean-Marie Comets [Sun, 31 Mar 2019 12:50:06 +0000 (14:50 +0200)]
refcell_replace_swap: remove feature gate & obsolete documentation item

5 years agolibstd: deny(elided_lifetimes_in_paths), fixes in redox
Mazdak Farrokhzad [Sun, 31 Mar 2019 12:33:50 +0000 (14:33 +0200)]
libstd: deny(elided_lifetimes_in_paths), fixes in redox

5 years agoRemove redundant import
Fabian Drinck [Sun, 31 Mar 2019 12:11:46 +0000 (14:11 +0200)]
Remove redundant import

5 years agolibstd: deny(elided_lifetimes_in_paths), fixes in sgx
Mazdak Farrokhzad [Sun, 31 Mar 2019 10:56:42 +0000 (12:56 +0200)]
libstd: deny(elided_lifetimes_in_paths), fixes in sgx

5 years agolibstd: deny(elided_lifetimes_in_paths), fixes in wasi
Mazdak Farrokhzad [Sat, 30 Mar 2019 14:22:19 +0000 (15:22 +0100)]
libstd: deny(elided_lifetimes_in_paths), fixes in wasi

5 years agolibstd: deny(elided_lifetimes_in_paths), fixes in cloudabi
Mazdak Farrokhzad [Sat, 30 Mar 2019 09:30:57 +0000 (10:30 +0100)]
libstd: deny(elided_lifetimes_in_paths), fixes in cloudabi

5 years agolibstd: deny(elided_lifetimes_in_paths)
Mazdak Farrokhzad [Fri, 1 Mar 2019 08:34:11 +0000 (09:34 +0100)]
libstd: deny(elided_lifetimes_in_paths)

5 years agoAdd back missing import
Fabian Drinck [Sun, 31 Mar 2019 10:02:27 +0000 (12:02 +0200)]
Add back missing import

5 years agoStabilize refcell_replace_swap feature, closes #43570
Jean-Marie Comets [Sun, 31 Mar 2019 08:54:00 +0000 (10:54 +0200)]
Stabilize refcell_replace_swap feature, closes #43570

5 years agoAuto merge of #59566 - cuviper:llvm-rebuild-sha, r=Mark-Simulacrum
bors [Sun, 31 Mar 2019 01:22:07 +0000 (01:22 +0000)]
Auto merge of #59566 - cuviper:llvm-rebuild-sha, r=Mark-Simulacrum

Use the existing LLVM GitInfo for checking rebuilds

Fixes #59565

5 years agoOnly mention const generics if enabled.
David Wood [Sat, 30 Mar 2019 19:57:04 +0000 (20:57 +0100)]
Only mention const generics if enabled.

This commit updates the generic parameter re-ordering diagnostic to only
mention const generics if the feature is enabled.

5 years agoInclude bounds in generic reordering diagnostic.
David Wood [Sat, 30 Mar 2019 19:30:36 +0000 (20:30 +0100)]
Include bounds in generic reordering diagnostic.

This commit extends the existing generic re-ordering diagnostic to
include any bounds on the generic parameter, thus producing correct
suggestions.

5 years agoDistinguish depending on error level
Yuki OKUSHI [Sat, 30 Mar 2019 21:30:45 +0000 (06:30 +0900)]
Distinguish depending on error level

Remove unnecessary comment

5 years agoAuto merge of #59575 - Centril:rollup, r=Centril
bors [Sat, 30 Mar 2019 22:15:05 +0000 (22:15 +0000)]
Auto merge of #59575 - Centril:rollup, r=Centril

Rollup of 3 pull requests

Successful merges:

 - #59405 (doc: use correct body font URLs)
 - #59562 (Changed reference style in dbg macro docs.)
 - #59569 (Add book.toml with title to unstable-book doc)

Failed merges:

r? @ghost

5 years agoRollup merge of #59569 - gruberb:add-title-for-unstable-book, r=frewsxcv
Mazdak Farrokhzad [Sat, 30 Mar 2019 22:14:43 +0000 (23:14 +0100)]
Rollup merge of #59569 - gruberb:add-title-for-unstable-book, r=frewsxcv

Add book.toml with title to unstable-book doc

Adding a title to the unstable book based on https://github.com/rust-lang/rust/issues/59554

5 years agoRollup merge of #59562 - DevQps:dbg-macro-docs, r=Centril
Mazdak Farrokhzad [Sat, 30 Mar 2019 22:14:42 +0000 (23:14 +0100)]
Rollup merge of #59562 - DevQps:dbg-macro-docs, r=Centril

Changed reference style in dbg macro docs.

# Description

A continuation of Pull Request #59528 :
- Fixed method of referencing and adjusted the references as suggested by @lzutao

5 years agoRollup merge of #59405 - benesch:docs-font, r=GuillaumeGomez
Mazdak Farrokhzad [Sat, 30 Mar 2019 22:14:40 +0000 (23:14 +0100)]
Rollup merge of #59405 - benesch:docs-font, r=GuillaumeGomez

doc: use correct body font URLs

The CSS for the docs homepage (docs.rust-lang.org) was using the wrong
URL for the body font, resulting in the fallback serif font being used,
instead of the desired Source Serif Pro fonts.

(It's worth noting that the CSS for rustdoc's API generation got these URLs right.)

5 years agoFix test
Yuki OKUSHI [Sat, 30 Mar 2019 22:13:59 +0000 (07:13 +0900)]
Fix test

5 years agoRestore test
Fabian Drinck [Mon, 18 Mar 2019 16:51:00 +0000 (17:51 +0100)]
Restore test

5 years agoHandle glob import in redundancy check
Fabian Drinck [Mon, 18 Mar 2019 16:50:49 +0000 (17:50 +0100)]
Handle glob import in redundancy check

5 years agoChange message to present tense
Fabian Drinck [Sun, 17 Mar 2019 20:07:57 +0000 (21:07 +0100)]
Change message to present tense

5 years agoFix doc tests
Fabian Drinck [Sun, 17 Mar 2019 16:40:25 +0000 (17:40 +0100)]
Fix doc tests

5 years agoFix more tests
Fabian Drinck [Sun, 17 Mar 2019 12:30:42 +0000 (13:30 +0100)]
Fix more tests

5 years agoAdd glob import to redundancy test
Fabian Drinck [Sun, 17 Mar 2019 10:55:32 +0000 (11:55 +0100)]
Add glob import to redundancy test

5 years agoFix tests
Fabian Drinck [Sun, 17 Mar 2019 10:38:38 +0000 (11:38 +0100)]
Fix tests

5 years agoReplace REDUNDANT_IMPORT with UNUSED_IMPORTS
Fabian Drinck [Sun, 17 Mar 2019 08:49:31 +0000 (09:49 +0100)]
Replace REDUNDANT_IMPORT with UNUSED_IMPORTS

5 years agoEdit ui tests
Fabian Drinck [Sat, 16 Mar 2019 18:21:03 +0000 (19:21 +0100)]
Edit ui tests

5 years agoRemove redundant import
Fabian Drinck [Sat, 16 Mar 2019 18:19:40 +0000 (19:19 +0100)]
Remove redundant import

5 years agoDistinguish between imported and defined items
Fabian Drinck [Sat, 16 Mar 2019 18:06:22 +0000 (19:06 +0100)]
Distinguish between imported and defined items

5 years agoBless tests
Fabian Drinck [Sat, 16 Mar 2019 17:08:51 +0000 (18:08 +0100)]
Bless tests

5 years agoImprove warning
Fabian Drinck [Sat, 16 Mar 2019 16:38:12 +0000 (17:38 +0100)]
Improve warning

5 years agoEdit comments
Fabian Drinck [Sat, 16 Mar 2019 15:49:13 +0000 (16:49 +0100)]
Edit comments

5 years agoRemove redundant imports
Fabian Drinck [Sun, 10 Mar 2019 11:52:30 +0000 (12:52 +0100)]
Remove redundant imports

5 years agoAdd lint for redundant imports
Fabian Drinck [Fri, 22 Feb 2019 14:07:18 +0000 (15:07 +0100)]
Add lint for redundant imports

Co-authored-by: Stephan Schauerte <stephan.schauerte@gmail.com>
5 years agoAdd book.toml with title to unstable-book doc
Bastian Gruber [Sat, 30 Mar 2019 18:46:43 +0000 (19:46 +0100)]
Add book.toml with title to unstable-book doc

5 years agoDon't ignore git for LLVM info
Josh Stone [Sat, 30 Mar 2019 18:14:02 +0000 (11:14 -0700)]
Don't ignore git for LLVM info

5 years agoUse a single llvm_info variable
Josh Stone [Sat, 30 Mar 2019 18:11:32 +0000 (11:11 -0700)]
Use a single llvm_info variable

5 years agoAuto merge of #59516 - ehuss:update-cargo, r=alexcrichton
bors [Sat, 30 Mar 2019 17:22:21 +0000 (17:22 +0000)]
Auto merge of #59516 - ehuss:update-cargo, r=alexcrichton

Update cargo

Update cargo

22 commits in 0e35bd8af0ec72d3225c4819b330b94628f0e9d0..63231f438a2b5b84ccf319a5de22343ee0316323
2019-03-13 06:52:51 +0000 to 2019-03-27 12:26:45 +0000
- Code cleanup (rust-lang/cargo#6787)
- Add cargo:rustc-link-arg to pass custom linker arguments (rust-lang/cargo#6298)
- Testsuite: remove some unnecessary is_nightly checks. (rust-lang/cargo#6786)
- cargo metadata: Don't show `null` deps. (rust-lang/cargo#6534)
- Some fingerprint cleanup. (rust-lang/cargo#6785)
- Fix fingerprint for canceled build script. (rust-lang/cargo#6782)
- Canonicalize default target if it ends with `.json` (rust-lang/cargo#6778)
- Fix setting `panic=unwind` compiling lib a extra time. (rust-lang/cargo#6781)
- Always nicely show errors from crates.io if possible (rust-lang/cargo#6771)
- Testsuite: Make `cwd()` relative to project root. (rust-lang/cargo#6768)
- Allow `cargo fix` if gitignore matches root working dir. (rust-lang/cargo#6767)
- Remove redundant imports (rust-lang/cargo#6763)
- Handle backcompat hazard with `toml` crate (rust-lang/cargo#6761)
- Fix spurious error in dirty_both_lib_and_test. (rust-lang/cargo#6756)
- Update toml requirement from 0.4.2 to 0.5.0 (rust-lang/cargo#6760)
- Reuse std::env::consts::EXE_SUFFIX (rust-lang/cargo#6758)
- Proptest 0.9.1 (rust-lang/cargo#6753)
- Don't need extern crate in 2018 (rust-lang/cargo#6752)
- Release a jobserver token while locking a file (rust-lang/cargo#6748)
- Minor doc fix for publish command synopsis (rust-lang/cargo#6749)
- Stricter package change detection. (rust-lang/cargo#6740)
- Fix resolving yanked crates when using a local registry. (rust-lang/cargo#6742)

5 years agoUse the existing LLVM GitInfo for checking rebuilds
Josh Stone [Sat, 30 Mar 2019 16:45:26 +0000 (09:45 -0700)]
Use the existing LLVM GitInfo for checking rebuilds

5 years agoUpdate cargo
Eric Huss [Fri, 29 Mar 2019 03:13:13 +0000 (20:13 -0700)]
Update cargo

5 years agoAuto merge of #59561 - Centril:rollup, r=Centril
bors [Sat, 30 Mar 2019 14:12:12 +0000 (14:12 +0000)]
Auto merge of #59561 - Centril:rollup, r=Centril

Rollup of 5 pull requests

Successful merges:

 - #59343 (rustc(codegen): uncache `def_symbol_name` prefix from `symbol_name`.)
 - #59380 (Fix invalid DWARF for enums when using ThinLTO)
 - #59463 (skip dyn keyword lint under macros)
 - #59539 (Fix infinite recursion)
 - #59544 (manifest: only include miri on the nightly channel)

Failed merges:

r? @ghost

5 years agoAdded a missing !.
Christian [Sat, 30 Mar 2019 13:35:51 +0000 (14:35 +0100)]
Added a missing !.

5 years agoAdded an example that shows how the remainder function on floating point values is...
Christian [Sat, 30 Mar 2019 13:26:54 +0000 (14:26 +0100)]
Added an example that shows how the remainder function on floating point values is computed internally.

5 years agoRollup merge of #59544 - cuviper:miri-nightly, r=Centril
Mazdak Farrokhzad [Sat, 30 Mar 2019 13:14:58 +0000 (14:14 +0100)]
Rollup merge of #59544 - cuviper:miri-nightly, r=Centril

manifest: only include miri on the nightly channel

miri needs to build std with xargo, which doesn't allow stable/beta:
<https://github.com/japaric/xargo/pull/204#issuecomment-374888868>

Therefore, at this time there's no point in making miri available on any
but the nightly channel.  If we get a stable way to build `std`, like
[RFC 2663], then we can re-evaluate whether to start including miri,
perhaps still as `miri-preview`.

[RFC 2663]: https://github.com/rust-lang/rfcs/pull/2663

5 years agoRollup merge of #59539 - GuillaumeGomez:rustdoc-infinite-recursion, r=eddyb
Mazdak Farrokhzad [Sat, 30 Mar 2019 13:14:56 +0000 (14:14 +0100)]
Rollup merge of #59539 - GuillaumeGomez:rustdoc-infinite-recursion, r=eddyb

Fix infinite recursion

Temporary fix for #59502.

r? @eddyb

5 years agoRollup merge of #59463 - pnkfelix:issue-56327-skip-dyn-keyword-lint-under-macros...
Mazdak Farrokhzad [Sat, 30 Mar 2019 13:14:55 +0000 (14:14 +0100)]
Rollup merge of #59463 - pnkfelix:issue-56327-skip-dyn-keyword-lint-under-macros, r=matthewjasper

skip dyn keyword lint under macros

This PR is following my own intuition that `rustfix` should never inject bugs into working code (even if that comes at the expense of it failing to fix things that will become bugs).

Fix #56327

5 years agoRollup merge of #59380 - philipc:thinlto-variant, r=michaelwoerister
Mazdak Farrokhzad [Sat, 30 Mar 2019 13:14:53 +0000 (14:14 +0100)]
Rollup merge of #59380 - philipc:thinlto-variant, r=michaelwoerister

Fix invalid DWARF for enums when using ThinLTO

We were setting the same identifier for both the DW_TAG_structure_type
and the DW_TAG_variant_part. This becomes a problem when using ThinLTO
becauses it uses the identifier as a key for a map of types that is used
to delete duplicates based on the ODR, so one of them is deleted as a
duplicate, resulting in invalid DWARF.

The DW_TAG_variant_part isn't a standalone type, so it doesn't need
an identifier. Fix by omitting its identifier.

ODR uniquing is [enabled here](https://github.com/rust-lang/rust/blob/f21dee2c6179276321a88a63300dce74ff707e92/src/rustllvm/PassWrapper.cpp#L1101).

5 years agoRollup merge of #59343 - eddyb:rm-def-symbol-name, r=michaelwoerister
Mazdak Farrokhzad [Sat, 30 Mar 2019 13:14:52 +0000 (14:14 +0100)]
Rollup merge of #59343 - eddyb:rm-def-symbol-name, r=michaelwoerister

rustc(codegen): uncache `def_symbol_name` prefix from `symbol_name`.

The `def_symbol_name` query was an optimization to avoid recomputing the common part of a symbol name, as only the hash needs to be added to it for each symbol.

However, #57967 will add a new mangling scheme, which doesn't readily support this kind of reuse - while it's plausible, it requires a lot more effort, since you'd have to "symbolically evaluate" mangling, and keep it in a form where the backreference positions can be computed correctly in the final step.

So I want to see how much time we're actually saving with this `def_symbol_name` optimization, nowadays.

cc @michaelwoerister

5 years agoUse CString
Yuki OKUSHI [Sat, 30 Mar 2019 12:37:02 +0000 (21:37 +0900)]
Use CString

5 years agoFix infinite recursion
Guillaume Gomez [Fri, 29 Mar 2019 22:57:03 +0000 (23:57 +0100)]
Fix infinite recursion

5 years agoUse target_mcount
Yuki OKUSHI [Sat, 30 Mar 2019 09:50:34 +0000 (18:50 +0900)]
Use target_mcount

5 years agoAdd target_mcount option
Yuki OKUSHI [Sat, 30 Mar 2019 09:50:19 +0000 (18:50 +0900)]
Add target_mcount option

5 years agoAuto merge of #59550 - Centril:rollup, r=Centril
bors [Sat, 30 Mar 2019 08:32:13 +0000 (08:32 +0000)]
Auto merge of #59550 - Centril:rollup, r=Centril

Rollup of 10 pull requests

Successful merges:

 - #59376 (RFC 2008: Enum Variants)
 - #59453 (Recover from parse error in tuple syntax)
 - #59455 (Account for short-hand field syntax when suggesting borrow)
 - #59499 (Fix broken download link in the armhf-gnu image)
 - #59512 (implement `AsRawFd` for stdio locks)
 - #59525 (Whitelist some rustc attrs)
 - #59528 (Improve the dbg! macro docs )
 - #59532 (In doc examples, don't ignore read/write results)
 - #59534 (rustdoc: collapse blanket impls in the same way as normal impls)
 - #59537 (Fix OnceWith docstring.)

Failed merges:

r? @ghost

5 years agoRollup merge of #59537 - goffrie:patch-3, r=Centril
Mazdak Farrokhzad [Sat, 30 Mar 2019 06:51:47 +0000 (07:51 +0100)]
Rollup merge of #59537 - goffrie:patch-3, r=Centril

Fix OnceWith docstring.

This was incorrectly copypasta'd from RepeatWith.

5 years agoRollup merge of #59534 - laurmaedje:collapse-blanket-impls, r=GuillaumeGomez
Mazdak Farrokhzad [Sat, 30 Mar 2019 06:51:45 +0000 (07:51 +0100)]
Rollup merge of #59534 - laurmaedje:collapse-blanket-impls, r=GuillaumeGomez

rustdoc: collapse blanket impls in the same way as normal impls

If the rustdoc setting _Auto-hide trait implementations documentation_ is activated (on by default), normal trait implementations are collapsed by default.

Blanket impls on the other hand are not collapsed. I'm not sure whether this is intended, but considering that the blanket impls for `From`, `Into`, `TryFrom`, ... are on every type, it would reduce the documentation bloat if these would also be collapsed when the setting is active.

(I'm not really familiar with the codebase and therefore just copied the code for the normal impl collapsing, but I could deduplicate it into a method, of course, too.)

5 years agoRollup merge of #59532 - mbrubeck:docs, r=Centril
Mazdak Farrokhzad [Sat, 30 Mar 2019 06:51:44 +0000 (07:51 +0100)]
Rollup merge of #59532 - mbrubeck:docs, r=Centril

In doc examples, don't ignore read/write results

Calling `Read::read` or `Write::write` without checking the returned `usize` value is almost always an error.  Example code in the documentation should demonstrate how to use the return value correctly.  Otherwise, people might copy the example code thinking that it is okay to "fire and forget" these methods.

5 years agoRollup merge of #59528 - DevQps:improve-dbg-macro-docs, r=Centril
Mazdak Farrokhzad [Sat, 30 Mar 2019 06:51:43 +0000 (07:51 +0100)]
Rollup merge of #59528 - DevQps:improve-dbg-macro-docs, r=Centril

Improve the dbg! macro docs

# Description

As stated has been discussed in #58383 the docs do not clearly state why it is useful to have the option to use `dbg!` in release builds as well. This PR should change that.

closes #58383

5 years agoRollup merge of #59525 - pnkfelix:whitelist-some-rustc-attrs, r=petrochenkov
Mazdak Farrokhzad [Sat, 30 Mar 2019 06:51:41 +0000 (07:51 +0100)]
Rollup merge of #59525 - pnkfelix:whitelist-some-rustc-attrs, r=petrochenkov

Whitelist some rustc attrs

These rustc attrs are used within libcore, and were causing failures when one mixed incremental compilation with bootstrapping (due to a default of `-D warnings` when bootstrapping).

Fix #59523
Fix #59524

Cc #58633

5 years agoRollup merge of #59512 - euclio:stdio-locks, r=sfackler
Mazdak Farrokhzad [Sat, 30 Mar 2019 06:51:40 +0000 (07:51 +0100)]
Rollup merge of #59512 - euclio:stdio-locks, r=sfackler

implement `AsRawFd` for stdio locks

cc https://github.com/rust-lang/rfcs/issues/2074.

5 years agoRollup merge of #59499 - pietroalbini:fix-arm-broken-link, r=alexcrichton
Mazdak Farrokhzad [Sat, 30 Mar 2019 06:51:38 +0000 (07:51 +0100)]
Rollup merge of #59499 - pietroalbini:fix-arm-broken-link, r=alexcrichton

Fix broken download link in the armhf-gnu image

Thanks to @johnterickson for pointing this out!

r? @alexcrichton

5 years agoRollup merge of #59455 - estebank:borrow-sugg-shorthand-field, r=davidtwco
Mazdak Farrokhzad [Sat, 30 Mar 2019 06:51:37 +0000 (07:51 +0100)]
Rollup merge of #59455 - estebank:borrow-sugg-shorthand-field, r=davidtwco

Account for short-hand field syntax when suggesting borrow

Fix #52965.

5 years agoRollup merge of #59453 - estebank:recover-tuple-parse, r=petrochenkov
Mazdak Farrokhzad [Sat, 30 Mar 2019 06:51:36 +0000 (07:51 +0100)]
Rollup merge of #59453 - estebank:recover-tuple-parse, r=petrochenkov

Recover from parse error in tuple syntax

5 years agoRollup merge of #59376 - davidtwco:finally-rfc-2008-variants, r=petrochenkov,QuietMis...
Mazdak Farrokhzad [Sat, 30 Mar 2019 06:51:34 +0000 (07:51 +0100)]
Rollup merge of #59376 - davidtwco:finally-rfc-2008-variants, r=petrochenkov,QuietMisdreavus

RFC 2008: Enum Variants

Part of #44109. See [Zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/rfc-2008/near/132663140) for previous discussion.

r? @petrochenkov
cc @nikomatsakis

5 years agoAuto merge of #59464 - alexcrichton:wasi-pr, r=fitzgen
bors [Sat, 30 Mar 2019 02:34:13 +0000 (02:34 +0000)]
Auto merge of #59464 - alexcrichton:wasi-pr, r=fitzgen

Add a new wasm32-unknown-wasi target

This commit adds a new wasm32-based target distributed through rustup,
supported in the standard library, and implemented in the compiler. The
`wasm32-unknown-wasi` target is intended to be a WebAssembly target
which matches the [WASI proposal recently announced][LINK]. In summary
the WASI target is an effort to define a standard set of syscalls for
WebAssembly modules, allowing WebAssembly modules to not only be
portable across architectures but also be portable across environments
implementing this standard set of system calls.

The wasi target in libstd is still somewhat bare bones. This PR does not
fill out the filesystem, networking, threads, etc. Instead it only
provides the most basic of integration with the wasi syscalls, enabling
features like:

* `Instant::now` and `SystemTime::now` work
* `env::args` is hooked up
* `env::vars` will look up environment variables
* `println!` will print to standard out
* `process::{exit, abort}` should be hooked up appropriately

None of these APIs can work natively on the `wasm32-unknown-unknown`
target, but with the assumption of the WASI set of syscalls we're able
to provide implementations of these syscalls that engines can implement.
Currently the primary engine implementing wasi is [wasmtime], but more
will surely emerge!

In terms of future development of libstd, I think this is something
we'll probably want to discuss. The purpose of the WASI target is to
provide a standardized set of syscalls, but it's *also* to provide a
standard C sysroot for compiling C/C++ programs. This means it's
intended that functions like `read` and `write` are implemented for this
target with a relatively standard definition and implementation. It's
unclear, therefore, how we want to expose file descriptors and how we'll
want to implement system primitives. For example should `std::fs::File`
have a libc-based file descriptor underneath it? The raw wasi file
descriptor? We'll see! Currently these details are all intentionally
hidden and things we can change over time.

A `WasiFd` sample struct was added to the standard library as part of
this commit, but it's not currently used. It shows how all the wasi
syscalls could be ergonomically bound in Rust, and they offer a possible
implementation of primitives like `std::fs::File` if we bind wasi file
descriptors exactly.

Apart from the standard library, there's also the matter of how this
target is integrated with respect to its C standard library. The
reference sysroot, for example, provides managment of standard unix file
descriptors and also standard APIs like `open` (as opposed to the
relative `openat` inspiration for the wasi ssycalls). Currently the
standard library relies on the C sysroot symbols for operations such as
environment management, process exit, and `read`/`write` of stdio fds.
We want these operations in Rust to be interoperable with C if they're
used in the same process. Put another way, if Rust and C are linked into
the same WebAssembly binary they should work together, but that requires
that the same C standard library is used.

We also, however, want the `wasm32-unknown-wasi` target to be
usable-by-default with the Rust compiler without requiring a separate
toolchain to get downloaded and configured. With that in mind, there's
two modes of operation for the `wasm32-unknown-wasi` target:

1. By default the C standard library is statically provided inside of
   `liblibc.rlib` distributed as part of the sysroot. This means that
   you can `rustc foo.wasm --target wasm32-unknown-unknown` and you're
   good to go, a fully workable wasi binary pops out. This is
   incompatible with linking in C code, however, which may be compiled
   against a different sysroot than the Rust code was previously
   compiled against. In this mode the default of `rust-lld` is used to
   link binaries.

2. For linking with C code, the `-C target-feature=-crt-static` flag
   needs to be passed. This takes inspiration from the musl target for
   this flag, but the idea is that you're no longer using the provided
   static C runtime, but rather one will be provided externally. This
   flag is intended to also get coupled with an external `clang`
   compiler configured with its own sysroot. Therefore you'll typically
   use this flag with `-C linker=/path/to/clang-script-wrapper`. Using
   this mode the Rust code will continue to reference standard C
   symbols, but the definition will be pulled in by the linker configured.

Alright so that's all the current state of this PR. I suspect we'll
definitely want to discuss this before landing of course! This PR is
coupled with libc changes as well which I'll be posting shortly.

[LINK]: https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/
[wasmtime]: https://github.com/cranestation/wasmtime-wasi

5 years agomanifest: only include miri on the nightly channel
Josh Stone [Sat, 30 Mar 2019 00:59:07 +0000 (17:59 -0700)]
manifest: only include miri on the nightly channel

miri needs to build std with xargo, which doesn't allow stable/beta:
<https://github.com/japaric/xargo/pull/204#issuecomment-374888868>

Therefore, at this time there's no point in making miri available on any
but the nightly channel.  If we get a stable way to build `std`, like
[RFC 2663], then we can re-evaluate whether to start including miri,
perhaps still as `miri-preview`.

[RFC 2663]: https://github.com/rust-lang/rfcs/pull/2663

5 years agoAdd a new wasm32-unknown-wasi target
Alex Crichton [Wed, 13 Feb 2019 18:02:22 +0000 (10:02 -0800)]
Add a new wasm32-unknown-wasi target

This commit adds a new wasm32-based target distributed through rustup,
supported in the standard library, and implemented in the compiler. The
`wasm32-unknown-wasi` target is intended to be a WebAssembly target
which matches the [WASI proposal recently announced.][LINK]. In summary
the WASI target is an effort to define a standard set of syscalls for
WebAssembly modules, allowing WebAssembly modules to not only be
portable across architectures but also be portable across environments
implementing this standard set of system calls.

The wasi target in libstd is still somewhat bare bones. This PR does not
fill out the filesystem, networking, threads, etc. Instead it only
provides the most basic of integration with the wasi syscalls, enabling
features like:

* `Instant::now` and `SystemTime::now` work
* `env::args` is hooked up
* `env::vars` will look up environment variables
* `println!` will print to standard out
* `process::{exit, abort}` should be hooked up appropriately

None of these APIs can work natively on the `wasm32-unknown-unknown`
target, but with the assumption of the WASI set of syscalls we're able
to provide implementations of these syscalls that engines can implement.
Currently the primary engine implementing wasi is [wasmtime], but more
will surely emerge!

In terms of future development of libstd, I think this is something
we'll probably want to discuss. The purpose of the WASI target is to
provide a standardized set of syscalls, but it's *also* to provide a
standard C sysroot for compiling C/C++ programs. This means it's
intended that functions like `read` and `write` are implemented for this
target with a relatively standard definition and implementation. It's
unclear, therefore, how we want to expose file descriptors and how we'll
want to implement system primitives. For example should `std::fs::File`
have a libc-based file descriptor underneath it? The raw wasi file
descriptor? We'll see! Currently these details are all intentionally
hidden and things we can change over time.

A `WasiFd` sample struct was added to the standard library as part of
this commit, but it's not currently used. It shows how all the wasi
syscalls could be ergonomically bound in Rust, and they offer a possible
implementation of primitives like `std::fs::File` if we bind wasi file
descriptors exactly.

Apart from the standard library, there's also the matter of how this
target is integrated with respect to its C standard library. The
reference sysroot, for example, provides managment of standard unix file
descriptors and also standard APIs like `open` (as opposed to the
relative `openat` inspiration for the wasi ssycalls). Currently the
standard library relies on the C sysroot symbols for operations such as
environment management, process exit, and `read`/`write` of stdio fds.
We want these operations in Rust to be interoperable with C if they're
used in the same process. Put another way, if Rust and C are linked into
the same WebAssembly binary they should work together, but that requires
that the same C standard library is used.

We also, however, want the `wasm32-unknown-wasi` target to be
usable-by-default with the Rust compiler without requiring a separate
toolchain to get downloaded and configured. With that in mind, there's
two modes of operation for the `wasm32-unknown-wasi` target:

1. By default the C standard library is statically provided inside of
   `liblibc.rlib` distributed as part of the sysroot. This means that
   you can `rustc foo.wasm --target wasm32-unknown-unknown` and you're
   good to go, a fully workable wasi binary pops out. This is
   incompatible with linking in C code, however, which may be compiled
   against a different sysroot than the Rust code was previously
   compiled against. In this mode the default of `rust-lld` is used to
   link binaries.

2. For linking with C code, the `-C target-feature=-crt-static` flag
   needs to be passed. This takes inspiration from the musl target for
   this flag, but the idea is that you're no longer using the provided
   static C runtime, but rather one will be provided externally. This
   flag is intended to also get coupled with an external `clang`
   compiler configured with its own sysroot. Therefore you'll typically
   use this flag with `-C linker=/path/to/clang-script-wrapper`. Using
   this mode the Rust code will continue to reference standard C
   symbols, but the definition will be pulled in by the linker configured.

Alright so that's all the current state of this PR. I suspect we'll
definitely want to discuss this before landing of course! This PR is
coupled with libc changes as well which I'll be posting shortly.

[LINK]:
[wasmtime]:

5 years agoFix OnceWith docstring.
Geoffry Song [Fri, 29 Mar 2019 22:03:14 +0000 (15:03 -0700)]
Fix OnceWith docstring.

This was incorrectly copypasta'd from RepeatWith.

5 years agoAuto merge of #58846 - bjorn3:misc_cg_ssa_refactor, r=eddyb
bors [Fri, 29 Mar 2019 21:46:15 +0000 (21:46 +0000)]
Auto merge of #58846 - bjorn3:misc_cg_ssa_refactor, r=eddyb

Misc refactorings to rustc_codegen_ssa

Unlike #56636 this doesn't split `BuilderMethods` into a lot of traits. That makes this PR twice as small and the split turned out to not be very useful anyway.

r? @eddyb

5 years agoIn doc examples, don't ignore read/write results
Matt Brubeck [Fri, 29 Mar 2019 16:30:08 +0000 (09:30 -0700)]
In doc examples, don't ignore read/write results

Calling `Read::read` or `Write::write` without checking the returned
`usize` value is almost always an error.  Example code in the
documentation should demonstrate how to use the return value correctly.
Otherwise, people might copy the example code thinking that it is okay
to "fire and forget" these methods.

5 years agoCollapse blanket impls in the same way as normal impls
Laurenz [Fri, 29 Mar 2019 18:47:19 +0000 (19:47 +0100)]
Collapse blanket impls in the same way as normal impls

5 years agoFix incorrect code
Esteban Küber [Fri, 29 Mar 2019 13:46:39 +0000 (06:46 -0700)]
Fix incorrect code

5 years agoAuto merge of #59522 - Centril:rollup, r=Centril
bors [Fri, 29 Mar 2019 18:09:51 +0000 (18:09 +0000)]
Auto merge of #59522 - Centril:rollup, r=Centril

Rollup of 9 pull requests

Successful merges:

 - #59366 (Update books)
 - #59436 (Update jemalloc-sys to version 0.3.0)
 - #59454 (Update rustfmt to 1.2.0)
 - #59462 (Fix error in Rust 2018 + no_core environment)
 - #59467 (Better diagnostic for binary operation on BoxedValues)
 - #59473 (Do not emit incorrect borrow suggestion involving macros and fix overlapping multiline spans)
 - #59480 (Update stdsimd)
 - #59486 (Visit `ImplItem` in `dead_code` lint)
 - #59510 (Rename `type_parameters` to `generics` and so on)

Failed merges:

 - #59516 (Update cargo)

r? @ghost

5 years agoUse ExactSizeIterator + TrustedLen instead of num_cases arg for switch
bjorn3 [Fri, 29 Mar 2019 16:23:52 +0000 (17:23 +0100)]
Use ExactSizeIterator + TrustedLen instead of num_cases arg for switch

5 years agoAdd a method for emiting a switch.
bjorn3 [Sat, 8 Dec 2018 17:42:31 +0000 (18:42 +0100)]
Add a method for emiting a switch.

5 years agoRemove inline_asm_call from cg_ssa
bjorn3 [Sat, 8 Dec 2018 15:07:27 +0000 (16:07 +0100)]
Remove inline_asm_call from cg_ssa

`count_insn` is no longer called for inline asm, because it is private to builder.rs

5 years agoRemove type_variadic_func and typ_array from cg_ssa
bjorn3 [Sat, 8 Dec 2018 10:48:43 +0000 (11:48 +0100)]
Remove type_variadic_func and typ_array from cg_ssa

5 years agoRemove a lot of methods from *TypeMethods
bjorn3 [Fri, 1 Mar 2019 14:47:06 +0000 (15:47 +0100)]
Remove a lot of methods from *TypeMethods

5 years agoRemove scalar_lltypes from cg_ssa
bjorn3 [Fri, 7 Dec 2018 17:04:34 +0000 (18:04 +0100)]
Remove scalar_lltypes from cg_ssa

5 years agoMove get_param and set_value_name
bjorn3 [Tue, 4 Dec 2018 19:20:45 +0000 (20:20 +0100)]
Move get_param and set_value_name

5 years agoRemove a lot of methods from BuilderMethods
bjorn3 [Sun, 2 Dec 2018 17:54:46 +0000 (18:54 +0100)]
Remove a lot of methods from BuilderMethods

5 years ago[WIP] Make some debug info methods take &mut FunctionDebugContext
bjorn3 [Sun, 2 Dec 2018 17:25:42 +0000 (18:25 +0100)]
[WIP] Make some debug info methods take &mut FunctionDebugContext

declare_local still takes &FunctionDebugContext, because of borrowck errors

5 years agoRemove internal mutability from source_locations_enabled
bjorn3 [Sun, 2 Dec 2018 17:09:26 +0000 (18:09 +0100)]
Remove internal mutability from source_locations_enabled

5 years agoRemove param_substs from FunctionCx
bjorn3 [Sun, 2 Dec 2018 17:04:39 +0000 (18:04 +0100)]
Remove param_substs from FunctionCx

5 years agoRemove const_{cstr,str_slice,get_elt,get_real} and is_const_real methods from cg_ssa
bjorn3 [Sun, 2 Dec 2018 15:53:39 +0000 (16:53 +0100)]
Remove const_{cstr,str_slice,get_elt,get_real} and is_const_real methods from cg_ssa

This introduces the static_panic_msg trait method to StaticBuilderMethods.