]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoavoid implicitly returning ()
Ralf Jung [Thu, 23 Jul 2020 15:06:33 +0000 (17:06 +0200)]
avoid implicitly returning ()

3 years agoon Windows, use miri_static_root for TLS dtors
Ralf Jung [Thu, 23 Jul 2020 13:49:39 +0000 (15:49 +0200)]
on Windows, use miri_static_root for TLS dtors

3 years agoreplace miri_start_panic intrinsic by 'extern fn'
Ralf Jung [Thu, 23 Jul 2020 11:07:21 +0000 (13:07 +0200)]
replace miri_start_panic intrinsic by 'extern fn'

3 years agoAuto merge of #74667 - Manishearth:rollup-s6k59sw, r=Manishearth
bors [Thu, 23 Jul 2020 08:56:45 +0000 (08:56 +0000)]
Auto merge of #74667 - Manishearth:rollup-s6k59sw, r=Manishearth

Rollup of 8 pull requests

Successful merges:

 - #74141 (libstd/libcore: fix various typos)
 - #74490 (add a Backtrace::disabled function)
 - #74548 (one more Path::with_extension example, to demonstrate behavior)
 - #74587 (Prefer constant over function)
 - #74606 (Remove Linux workarounds for missing CLOEXEC support)
 - #74637 (Make str point to primitive page)
 - #74654 (require type defaults to be after const generic parameters)
 - #74659 (Improve codegen for unchecked float casts on wasm)

Failed merges:

r? @ghost

3 years agoRollup merge of #74659 - alexcrichton:wasm-codegen, r=varkor
Manish Goregaokar [Thu, 23 Jul 2020 07:42:20 +0000 (00:42 -0700)]
Rollup merge of #74659 - alexcrichton:wasm-codegen, r=varkor

Improve codegen for unchecked float casts on wasm

This commit improves codegen for unchecked casts on WebAssembly targets
to use the singluar `iNN.trunc_fMM_{u,s}` instructions. Previously rustc
would codegen a bare `fptosi` and `fptoui` for float casts but for
WebAssembly targets the codegen for these instructions is quite large.
This large codegen is due to the fact that LLVM can speculate these
instructions so the trapping behavior of WebAssembly needs to be
protected against in case they're speculated.

The change here is to update the codegen for the unchecked cast
intrinsics to have a wasm-specific case where they call the appropriate
LLVM intrinsic to generate the right wasm instruction. The intrinsic is
explicitly opting-in to undefined behavior so a trap here for
out-of-bounds inputs on wasm should be acceptable.

cc #73591

3 years agoRollup merge of #74654 - lcnr:default-no-more, r=varkor
Manish Goregaokar [Thu, 23 Jul 2020 07:42:18 +0000 (00:42 -0700)]
Rollup merge of #74654 - lcnr:default-no-more, r=varkor

require type defaults to be after const generic parameters

From current discussions it seems like the goal here is for type and const parameters to be unordered and allow things like `struct Foo<const N: usize, T = u32>(T)` and `struct Foo<T, const N: usize = 7>` this way.

Note: This means that using `min_const_generics` it will not be possible for an adt to have both type defaults and const parameters.

closes #70471

r? @varkor @eddyb

3 years agoRollup merge of #74637 - lzutao:str-primitive-links, r=jyn514
Manish Goregaokar [Thu, 23 Jul 2020 07:42:16 +0000 (00:42 -0700)]
Rollup merge of #74637 - lzutao:str-primitive-links, r=jyn514

Make str point to primitive page

Currently str in String page points to str module page.

3 years agoRollup merge of #74606 - cuviper:cloexec, r=sfackler
Manish Goregaokar [Thu, 23 Jul 2020 07:42:14 +0000 (00:42 -0700)]
Rollup merge of #74606 - cuviper:cloexec, r=sfackler

Remove Linux workarounds for missing CLOEXEC support

Now that #74163 updated the minimum Linux kernel to 2.6.32, we can
assume the availability of APIs that open file descriptors that are
already set to close on exec, including the flags `O_CLOEXEC`,
`SOCK_CLOEXEC`, and `F_DUPFD_CLOEXEC`.

Closes #74519.

3 years agoRollup merge of #74587 - lzutao:consts, r=dtolnay
Manish Goregaokar [Thu, 23 Jul 2020 07:42:12 +0000 (00:42 -0700)]
Rollup merge of #74587 - lzutao:consts, r=dtolnay

Prefer constant over function

Just that I prefer constants over functions that can be made const.

3 years agoRollup merge of #74548 - tshepang:one-more-example, r=dtolnay
Manish Goregaokar [Thu, 23 Jul 2020 07:42:10 +0000 (00:42 -0700)]
Rollup merge of #74548 - tshepang:one-more-example, r=dtolnay

one more Path::with_extension example, to demonstrate behavior

3 years agoRollup merge of #74490 - yaahc:disabled-bt, r=dtolnay
Manish Goregaokar [Thu, 23 Jul 2020 07:42:07 +0000 (00:42 -0700)]
Rollup merge of #74490 - yaahc:disabled-bt, r=dtolnay

add a Backtrace::disabled function

Based upon @dtolnay's suggestion here: https://github.com/dtolnay/anyhow/pull/97#issuecomment-647172942

3 years agoRollup merge of #74141 - euclio:typos, r=steveklabnik
Manish Goregaokar [Thu, 23 Jul 2020 07:42:01 +0000 (00:42 -0700)]
Rollup merge of #74141 - euclio:typos, r=steveklabnik

libstd/libcore: fix various typos

3 years agoAuto merge of #74611 - Mark-Simulacrum:revert-74069-bad-niche, r=eddyb
bors [Thu, 23 Jul 2020 07:11:01 +0000 (07:11 +0000)]
Auto merge of #74611 - Mark-Simulacrum:revert-74069-bad-niche, r=eddyb

Revert "Compare tagged/niche-filling layout and pick the best one"

Reverts rust-lang/rust#74069. It caused a performance regression, see https://github.com/rust-lang/rust/pull/74069#issuecomment-662166827. perf: https://perf.rust-lang.org/compare.html?start=d3df8512d2c2afc6d2e7d8b5b951dd7f2ad77b02&end=cfade73820883adf654fe34fd6b0b03a99458a51

r? @eddyb

cc @nnethercote

3 years agotweak wording
Bastian Kauschke [Thu, 23 Jul 2020 06:06:42 +0000 (08:06 +0200)]
tweak wording

Co-authored-by: varkor <github@varkor.com>
3 years agoPrefer constant over function
Lzu Tao [Thu, 23 Jul 2020 02:49:40 +0000 (02:49 +0000)]
Prefer constant over function

3 years agoPrefer type@str
Lzu Tao [Thu, 23 Jul 2020 02:42:37 +0000 (02:42 +0000)]
Prefer type@str

3 years agoMake str point to primitive page
Lzu Tao [Wed, 22 Jul 2020 15:17:50 +0000 (15:17 +0000)]
Make str point to primitive page

3 years agoAuto merge of #74662 - Manishearth:rollup-jdt7t71, r=Manishearth
bors [Thu, 23 Jul 2020 00:37:58 +0000 (00:37 +0000)]
Auto merge of #74662 - Manishearth:rollup-jdt7t71, r=Manishearth

Rollup of 9 pull requests

Successful merges:

 - #73783 (Detect when `'static` obligation might come from an `impl`)
 - #73868 (Advertise correct stable version for const control flow)
 - #74460 (rustdoc: Always warn when linking from public to private items)
 - #74538 (Guard against non-monomorphized type_id intrinsic call)
 - #74541 (Add the aarch64-apple-darwin target )
 - #74600 (Enable perf try builder)
 - #74618 (Do not ICE on assoc type with bad placeholder)
 - #74631 (rustc_target: Add a target spec option for disabling `--eh-frame-hdr`)
 - #74643 (build: Remove unnecessary `cargo:rerun-if-env-changed` annotations)

Failed merges:

r? @ghost

3 years agoUpdate src/libstd/backtrace.rs
Jane Lusby [Thu, 23 Jul 2020 00:19:02 +0000 (17:19 -0700)]
Update src/libstd/backtrace.rs

Co-authored-by: David Tolnay <dtolnay@gmail.com>
3 years agoone more Path::with_extension example, to demonstrate behavior
Tshepang Lekhonkhobe [Mon, 20 Jul 2020 10:25:12 +0000 (12:25 +0200)]
one more Path::with_extension example, to demonstrate behavior

3 years agoMove the pipe2 call behind a hard target `#[cfg]`
Josh Stone [Wed, 22 Jul 2020 23:38:58 +0000 (16:38 -0700)]
Move the pipe2 call behind a hard target `#[cfg]`

3 years agoRollup merge of #74643 - petrochenkov:noenvrerun, r=Mark-Simulacrum
Manish Goregaokar [Wed, 22 Jul 2020 23:34:50 +0000 (16:34 -0700)]
Rollup merge of #74643 - petrochenkov:noenvrerun, r=Mark-Simulacrum

build: Remove unnecessary `cargo:rerun-if-env-changed` annotations

... and a couple of related cleanups.

rustc and cargo now track the majority of env var dependencies automatically (https://github.com/rust-lang/cargo/pull/8421), so the annotations are no longer necessary.

3 years agoRollup merge of #74631 - petrochenkov:ehdr2, r=jonas-schievink
Manish Goregaokar [Wed, 22 Jul 2020 23:34:48 +0000 (16:34 -0700)]
Rollup merge of #74631 - petrochenkov:ehdr2, r=jonas-schievink

rustc_target: Add a target spec option for disabling `--eh-frame-hdr`

Disable `--eh-frame-hdr` for targets that use an `ld`-like linker, but don't support that option.
Do it through a target spec option rather than through hard-coding in `linker.rs`.
The option is still enabled by default though.

cc https://github.com/rust-lang/rust/pull/73564
Fixes https://github.com/rust-lang/rust/pull/73564#issuecomment-657011004
Fixes https://github.com/rust-lang/rust/pull/74625
Fixes https://github.com/rust-embedded/msp430-rt/issues/12

3 years agoRollup merge of #74618 - JohnTitor:no-more-bad-placeholder, r=estebank
Manish Goregaokar [Wed, 22 Jul 2020 23:34:46 +0000 (16:34 -0700)]
Rollup merge of #74618 - JohnTitor:no-more-bad-placeholder, r=estebank

Do not ICE on assoc type with bad placeholder

Fixes #74612
r? @estebank

3 years agoRollup merge of #74600 - Mark-Simulacrum:try-perf, r=pietroalbini
Manish Goregaokar [Wed, 22 Jul 2020 23:34:44 +0000 (16:34 -0700)]
Rollup merge of #74600 - Mark-Simulacrum:try-perf, r=pietroalbini

Enable perf try builder

This adds a dedicated branch for perf to use for CI, intended to allow perf to
enqueue builds without needing to use bors. bors is great, but bors requires an
open PR to work, and we want to invoke perf on closed PRs sometimes (in
particular, rollups).

3 years agoRollup merge of #74541 - shepmaster:aarch64-apple-darwin-target, r=nagisa
Manish Goregaokar [Wed, 22 Jul 2020 23:34:43 +0000 (16:34 -0700)]
Rollup merge of #74541 - shepmaster:aarch64-apple-darwin-target, r=nagisa

Add the aarch64-apple-darwin target

This is a basic copy-paste-modify from the existing
x86_64-apple-darwin target.

3 years agoRollup merge of #74538 - nbdd0121:issue-73976, r=lcnr
Manish Goregaokar [Wed, 22 Jul 2020 23:34:41 +0000 (16:34 -0700)]
Rollup merge of #74538 - nbdd0121:issue-73976, r=lcnr

Guard against non-monomorphized type_id intrinsic call

This PR checks whether the type is sufficient monomorphized when calling type_id or type_name intrinsics. If the type is not sufficiently monomorphized, e.g. used in a pattern, the code will be rejected.

Fixes #73976

3 years agoRollup merge of #74460 - dennis-hamester:rustdoc-warn-pub-to-priv, r=jyn514
Manish Goregaokar [Wed, 22 Jul 2020 23:34:39 +0000 (16:34 -0700)]
Rollup merge of #74460 - dennis-hamester:rustdoc-warn-pub-to-priv, r=jyn514

rustdoc: Always warn when linking from public to private items

Change the logic such that linking from a public to a private item always triggers `intra_doc_link_resolution_failure`.
Previously, the warning was not emitted when `--document-private-items` is passed.

This came up during the discussion in https://github.com/rust-lang/rust/pull/74147#discussion_r452597901.

3 years agoRollup merge of #73868 - ecstatic-morse:fix-stable-version, r=jonas-schievink
Manish Goregaokar [Wed, 22 Jul 2020 23:34:37 +0000 (16:34 -0700)]
Rollup merge of #73868 - ecstatic-morse:fix-stable-version, r=jonas-schievink

Advertise correct stable version for const control flow

#72437 was opened before the 1.45 release but merged afterwards. These will be stable in 1.46.

3 years agoRollup merge of #73783 - estebank:impl-dyn-trait-static-lifetime, r=nikomatsakis
Manish Goregaokar [Wed, 22 Jul 2020 23:34:36 +0000 (16:34 -0700)]
Rollup merge of #73783 - estebank:impl-dyn-trait-static-lifetime, r=nikomatsakis

Detect when `'static` obligation might come from an `impl`

Partly address #71341.

3 years agoImprove codegen for unchecked float casts on wasm
Alex Crichton [Wed, 22 Jul 2020 21:51:12 +0000 (14:51 -0700)]
Improve codegen for unchecked float casts on wasm

This commit improves codegen for unchecked casts on WebAssembly targets
to use the singluar `iNN.trunc_fMM_{u,s}` instructions. Previously rustc
would codegen a bare `fptosi` and `fptoui` for float casts but for
WebAssembly targets the codegen for these instructions is quite large.
This large codegen is due to the fact that LLVM can speculate these
instructions so the trapping behavior of WebAssembly needs to be
protected against in case they're speculated.

The change here is to update the codegen for the unchecked cast
intrinsics to have a wasm-specific case where they call the appropriate
LLVM intrinsic to generate the right wasm instruction. The intrinsic is
explicitly opting-in to undefined behavior so a trap here for
out-of-bounds inputs on wasm should be acceptable.

cc #73591

3 years agoAuto merge of #74404 - lcnr:ty-dep-path-cleanup-aaaaa, r=eddyb
bors [Wed, 22 Jul 2020 21:50:21 +0000 (21:50 +0000)]
Auto merge of #74404 - lcnr:ty-dep-path-cleanup-aaaaa, r=eddyb

remove some const arg in ty dep path boilerplate

followup to #74113, together with #74376, this closes #74360.

r? @eddyb

3 years agorequire type defaults to be after const generic parameters
Bastian Kauschke [Wed, 22 Jul 2020 20:58:54 +0000 (22:58 +0200)]
require type defaults to be after const generic parameters

as if this is currently possible. HA!

3 years agoChange error code number
Esteban Küber [Mon, 20 Jul 2020 20:56:50 +0000 (13:56 -0700)]
Change error code number

3 years agorustdoc: Add explanation when linting against public to private item links
Dennis Hamester [Wed, 22 Jul 2020 17:53:43 +0000 (19:53 +0200)]
rustdoc: Add explanation when linting against public to private item links

The additional note helps explaining why the lint was triggered and that
--document-private-items directly influences the link resolution.

3 years agorustdoc: Always warn when linking from public to private items
Dennis Hamester [Sat, 11 Jul 2020 17:39:02 +0000 (19:39 +0200)]
rustdoc: Always warn when linking from public to private items

Change the logic such that linking from a public to a private item always
triggers intra_doc_link_resolution_failure. Previously, the warning was
not emitted when --document-private-items is passed.

Also don't rely anymore on the item's visibility, which would falsely trigger
the lint now that the check for --document-private-items is gone.

3 years agoAuto merge of #74633 - davidtwco:issue-74614-disable-polymorphisation, r=wesleywiser
bors [Wed, 22 Jul 2020 19:34:20 +0000 (19:34 +0000)]
Auto merge of #74633 - davidtwco:issue-74614-disable-polymorphisation, r=wesleywiser

Disable polymorphisation

Fixes #74614.

This PR disables polymorphisation to fix the regression in #74614 after investigation into the issue makes it clear that the fix won't be trivial. ~~I'll file an issue shortly to replace #74614 with the findings so far.~~ #74636 has been filed to track the fix of the underlying regression.

r? @eddyb

3 years agoHandle fully-qualified paths and add test cases
Esteban Küber [Wed, 1 Jul 2020 21:02:57 +0000 (14:02 -0700)]
Handle fully-qualified paths and add test cases

3 years agoPartially account for case where used method is from trait
Esteban Küber [Wed, 1 Jul 2020 07:24:55 +0000 (00:24 -0700)]
Partially account for case where used method is from trait

3 years agoUse `ty::Instance::resolve` to identify `'static` bound source
Esteban Küber [Wed, 1 Jul 2020 00:41:15 +0000 (17:41 -0700)]
Use `ty::Instance::resolve` to identify `'static` bound source

3 years agoFurther tweak wording of E0759 and introduce E0767
Esteban Küber [Mon, 29 Jun 2020 18:14:42 +0000 (11:14 -0700)]
Further tweak wording of E0759 and introduce E0767

3 years agoAdd more context to diagnostic
Esteban Küber [Mon, 29 Jun 2020 01:07:26 +0000 (18:07 -0700)]
Add more context to diagnostic

3 years agoIncrease accuracy of lifetime bound on trait object impl suggestion
Esteban Küber [Sun, 28 Jun 2020 22:26:12 +0000 (15:26 -0700)]
Increase accuracy of lifetime bound on trait object impl suggestion

3 years agoDetect when `'static` obligation might come from an `impl`
Esteban Küber [Sat, 27 Jun 2020 01:52:00 +0000 (18:52 -0700)]
Detect when `'static` obligation might come from an `impl`

Address #71341.

3 years agobuild: Avoid unnecessary build script reruns in libstd
Vadim Petrochenkov [Wed, 22 Jul 2020 17:06:37 +0000 (20:06 +0300)]
build: Avoid unnecessary build script reruns in libstd

Add a FIXME to build scripts in profiler_builtins

3 years agobuild: Harden env var tracking in build scripts
Vadim Petrochenkov [Wed, 22 Jul 2020 16:51:19 +0000 (19:51 +0300)]
build: Harden env var tracking in build scripts

3 years agoAuto merge of #74642 - Manishearth:rollup-148kz52, r=Manishearth
bors [Wed, 22 Jul 2020 16:30:36 +0000 (16:30 +0000)]
Auto merge of #74642 - Manishearth:rollup-148kz52, r=Manishearth

Rollup of 9 pull requests

Successful merges:

 - #73655 (va_args implementation for AAPCS.)
 - #73893 (Stabilize control-flow-guard codegen option)
 - #74237 (compiletest: Rewrite extract_*_version functions)
 - #74454 (small coherence cleanup)
 - #74528 (refactor and reword intra-doc link errors)
 - #74568 (Apply #66379 to `*mut T` `as_ref`)
 - #74570 (Use forge links for prioritization procedure)
 - #74589 (Update books)
 - #74635 (Fix tooltip position if the documentation starts with a code block)

Failed merges:

r? @ghost

3 years agoRollup merge of #74635 - GuillaumeGomez:fix-tooltip-pos, r=Manishearth
Manish Goregaokar [Wed, 22 Jul 2020 16:29:17 +0000 (09:29 -0700)]
Rollup merge of #74635 - GuillaumeGomez:fix-tooltip-pos, r=Manishearth

Fix tooltip position if the documentation starts with a code block

Fixes #74321.

Before:

![before](https://user-images.githubusercontent.com/3050060/88188970-cf842400-cc38-11ea-839b-37e41656837d.png)

After:

![after](https://user-images.githubusercontent.com/3050060/88188981-d3b04180-cc38-11ea-8194-713ffe640d3a.png)

And in case there is text, it is not being applied:

![after-witness](https://user-images.githubusercontent.com/3050060/88189009-ddd24000-cc38-11ea-9f0a-61dfd0a0cbd0.png)

And on mobile it isn't needed so it's not "activated":

![Screenshot from 2020-07-22 17-17-43](https://user-images.githubusercontent.com/3050060/88194698-65bb4880-cc3f-11ea-8513-0043ccca8cfc.png)

r? @rust-lang/rustdoc

3 years agoRollup merge of #74589 - ehuss:update-books, r=ehuss
Manish Goregaokar [Wed, 22 Jul 2020 16:29:15 +0000 (09:29 -0700)]
Rollup merge of #74589 - ehuss:update-books, r=ehuss

Update books

## reference

5 commits in 0ea7bc494f1289234d8800bb9185021e0ad946f0..b329ce37424874ad4db94f829a55807c6e21d2cb
2020-07-02 15:33:04 -0700 to 2020-07-20 08:54:08 -0700
- this '*' is unnecessary, and reduces readability (rust-lang-nursery/reference#853)
- Tiny typo fix (rust-lang-nursery/reference#849)
- Update const eval chapter to latest changes (rust-lang-nursery/reference#842)
- Document #[track_caller]. (rust-lang-nursery/reference#742)
- Document shebang restriction. (rust-lang-nursery/reference#823)

## book

2 commits in 84a31397b34f9d405df44f2899ff17a4828dba18..a914f2c7e5cdb771fa465de142381a51c53b580e
2020-07-04 10:50:18 -0500 to 2020-07-21 09:20:05 -0500
- Change misleading wording (rust-lang/book#2399)
- Improve wording to include Windows versions (rust-lang/book#2395)

## edition-guide

3 commits in 82bec5877c77cfad530ca11095db4456d757f668..bd6e4a9f59c5c1545f572266af77f5c7a5bad6d1
2020-06-03 08:56:02 -0500 to 2020-07-12 17:37:08 -0500
- update guide for 1.36 and 1.37 (rust-lang/edition-guide#217)
- Add contents for Rust 1.35 (rust-lang/edition-guide#216)
- update edition guide for Rust 1.34 (rust-lang/edition-guide#215)

3 years agoRollup merge of #74570 - spastorino:fix-prioritization-procedures-links, r=Mark-Simul...
Manish Goregaokar [Wed, 22 Jul 2020 16:29:13 +0000 (09:29 -0700)]
Rollup merge of #74570 - spastorino:fix-prioritization-procedures-links, r=Mark-Simulacrum

Use forge links for prioritization procedure

r? @Mark-Simulacrum

cc @rust-lang/wg-prioritization

3 years agoRollup merge of #74568 - aticu:master, r=Mark-Simulacrum
Manish Goregaokar [Wed, 22 Jul 2020 16:29:11 +0000 (09:29 -0700)]
Rollup merge of #74568 - aticu:master, r=Mark-Simulacrum

Apply #66379 to `*mut T` `as_ref`

#66379 changed the documentation of `as_ref` on the type `*const T` and `as_mut` on the type `*mut T`, but it missed making that same change for `as_ref` on the type `*mut T`.

3 years agoRollup merge of #74528 - euclio:intra-link-errors, r=jyn514
Manish Goregaokar [Wed, 22 Jul 2020 16:29:09 +0000 (09:29 -0700)]
Rollup merge of #74528 - euclio:intra-link-errors, r=jyn514

refactor and reword intra-doc link errors

This commit refactors intra-doc link error reporting to deduplicate code
and decouple error construction from the type of error. This greatly
improves flexibility at each error construction site, while reducing the
complexity of the diagnostic creation.

This commit also rewords the diagnostics for clarity and style:

- Diagnostics should not end in periods.
- It's unnecessary to say "ignoring it". Since this is a warning by
  default, it's already clear that the link is ignored.

3 years agoRollup merge of #74454 - lcnr:negative-impls, r=nikomatsakis
Manish Goregaokar [Wed, 22 Jul 2020 16:29:07 +0000 (09:29 -0700)]
Rollup merge of #74454 - lcnr:negative-impls, r=nikomatsakis

small coherence cleanup

r? @eddyb

3 years agoRollup merge of #74237 - lzutao:compiletest, r=Mark-Simulacrum
Manish Goregaokar [Wed, 22 Jul 2020 16:29:05 +0000 (09:29 -0700)]
Rollup merge of #74237 - lzutao:compiletest, r=Mark-Simulacrum

compiletest: Rewrite extract_*_version functions

This makes extract_lldb_version has the same version type like
extract_gdb_version.

3 years agoRollup merge of #73893 - ajpaverd:cfguard-stabilize, r=nikomatsakis
Manish Goregaokar [Wed, 22 Jul 2020 16:29:03 +0000 (09:29 -0700)]
Rollup merge of #73893 - ajpaverd:cfguard-stabilize, r=nikomatsakis

Stabilize control-flow-guard codegen option

This is the stabilization PR discussed in #68793. It converts the `-Z control-flow-guard` debugging option into a codegen option (`-C control-flow-guard`), and changes the associated tests.

3 years agoRollup merge of #73655 - JamieCunliffe:jamie_va-args-c, r=nikic
Manish Goregaokar [Wed, 22 Jul 2020 16:29:00 +0000 (09:29 -0700)]
Rollup merge of #73655 - JamieCunliffe:jamie_va-args-c, r=nikic

va_args implementation for AAPCS.

Implement the va args in codegen for AAPCS, this will be used as the
default va_args implementation for AArch64 rather than the va_args
llvm-ir as it currently is.

This should fix the following issues:
https://github.com/rust-lang/rust/issues/56475
https://github.com/rust-lang/rust/issues/72579

3 years agobuild: Remove unnecessary `build = "build.rs"` annotations
Vadim Petrochenkov [Wed, 22 Jul 2020 16:13:02 +0000 (19:13 +0300)]
build: Remove unnecessary `build = "build.rs"` annotations

3 years agobuild: Remove unnecessary `cargo:rerun-if-env-changed` annotations
Vadim Petrochenkov [Wed, 22 Jul 2020 15:44:15 +0000 (18:44 +0300)]
build: Remove unnecessary `cargo:rerun-if-env-changed` annotations

3 years agoFix tooltip position if the documentation starts with a code block
Guillaume Gomez [Wed, 22 Jul 2020 14:28:47 +0000 (16:28 +0200)]
Fix tooltip position if the documentation starts with a code block

3 years agotests: add regression test for #74614
David Wood [Wed, 22 Jul 2020 14:35:52 +0000 (15:35 +0100)]
tests: add regression test for #74614

This commit adds a regression test for #74614 so that it is fixed before
polymorphisation is re-enabled.

Signed-off-by: David Wood <david@davidtw.co>
3 years agosess: disable polymorphisation
David Wood [Wed, 22 Jul 2020 14:03:56 +0000 (15:03 +0100)]
sess: disable polymorphisation

This commit disables polymorphisation to resolve regressions related to
closures which inherit unused generic parameters and are then used in
casts or reflection.

Signed-off-by: David Wood <david@davidtw.co>
3 years agomir: improve polymorphic constant bug
David Wood [Wed, 22 Jul 2020 09:31:12 +0000 (10:31 +0100)]
mir: improve polymorphic constant bug

This commit changes the span and content of the "collection encountered
polymorphic constant" bug in monomorphization collection to point to the
use of the constant rather than the definition.

Signed-off-by: David Wood <david@davidtw.co>
3 years agorustc_target: Add a target spec option for disabling `--eh-frame-hdr`
Vadim Petrochenkov [Wed, 22 Jul 2020 12:49:04 +0000 (15:49 +0300)]
rustc_target: Add a target spec option for disabling `--eh-frame-hdr`

3 years agoAuto merge of #74620 - rust-lang:remove-most-azure, r=Mark-Simulacrum
bors [Wed, 22 Jul 2020 13:40:55 +0000 (13:40 +0000)]
Auto merge of #74620 - rust-lang:remove-most-azure, r=Mark-Simulacrum

Disable Azure Pipelines except for macOS

Following up on https://github.com/rust-lang/rust/pull/74565, this PR disables most of Azure Pipelines except for macOS auto builds, practically switching us to GitHub Actions :tada:

r? @Mark-Simulacrum

3 years agoEnable perf try builder
Mark Rousskov [Tue, 21 Jul 2020 18:53:39 +0000 (14:53 -0400)]
Enable perf try builder

This adds a dedicated branch for perf to use for CI, intended to allow perf to
enqueue builds without needing to use bors. bors is great, but bors requires an
open PR to work, and we want to invoke perf on closed PRs sometimes (in
particular, rollups).

3 years agoci: disable Azure Pipelines except for macOS
Pietro Albini [Wed, 22 Jul 2020 09:00:56 +0000 (11:00 +0200)]
ci: disable Azure Pipelines except for macOS

3 years agoAuto merge of #73270 - dylanmckay:avr-use-correct-addrspace, r=nagisa
bors [Wed, 22 Jul 2020 08:18:46 +0000 (08:18 +0000)]
Auto merge of #73270 - dylanmckay:avr-use-correct-addrspace, r=nagisa

[AVR] Correctly set the pointer address space when constructing pointers to functions

NOTE: Pull request iterations:

* https://github.com/dylanmckay/rust/releases/tag/avr-use-correct-addrspace.0
* https://github.com/dylanmckay/rust/releases/tag/avr-use-correct-addrspace.1
* https://github.com/dylanmckay/rust/releases/tag/avr-use-correct-addrspace.2

This patch extends the existing `type_i8p` method so that it requires an
explicit address space to be specified. Before this patch, the
`type_i8p` method implcitily assumed the default address space, which is
not a safe transformation on all targets, namely AVR.

The Rust compiler already has support for tracking the "instruction
address space" on a per-target basis. This patch extends the code
generation routines so that an address space must always be specified.

In my estimation, around 15% of the callers of `type_i8p` produced
invalid code on AVR due to the loss of address space prior to LLVM final
code generation. This would lead to unavoidable assertion errors
relating to invalid bitcasts.

With this patch, the address space is always either 1) explicitly preserved
from the input type, or 2) explicitly set to the instruction address
space because the logic is dealing with functions which must be placed
there, or 3) explicitly set to the default address space 0 because the
logic can only operate on data space pointers and thus we keep the
existing semantics of assuming the default, "data" address space.

3 years agoDo not ICE on assoc type with bad placeholder
Yuki Okushi [Wed, 22 Jul 2020 05:42:45 +0000 (14:42 +0900)]
Do not ICE on assoc type with bad placeholder

3 years agoAuto merge of #74578 - ehuss:fix-rust-src, r=Mark-Simulacrum
bors [Wed, 22 Jul 2020 02:51:58 +0000 (02:51 +0000)]
Auto merge of #74578 - ehuss:fix-rust-src, r=Mark-Simulacrum

Fix rust-src component.

The rust-src component could not be installed by rustup because it included some symbolic links. #74520 added the backtrace directory which included some symlinks. Since the rust-src component doesn't need most of the files in the `backtrace` submodule, this changes it to only include the minimum necessary.

Tested with cargo's build-std that it can build from the resulting tarball.

Fixes #74577

3 years agoRevert "Compare tagged/niche-filling layout and pick the best one"
Mark Rousskov [Wed, 22 Jul 2020 00:02:30 +0000 (20:02 -0400)]
Revert "Compare tagged/niche-filling layout and pick the best one"

3 years agoAuto merge of #74565 - pietroalbini:build-on-gha, r=Mark-Simulacrum
bors [Tue, 21 Jul 2020 23:29:22 +0000 (23:29 +0000)]
Auto merge of #74565 - pietroalbini:build-on-gha, r=Mark-Simulacrum

Upload builds from GHA instead of Azure Pipelines

This PR does two things:

* Enables RLA comments on PRs (needed after the switch to GHA in RLA).
* Switches GitHub Actions as the CI authorized to upload non-macOS builds.

Note that Docker/LLVM caches will likely be busted.

r? @Mark-Simulacrum

3 years agoRemove Linux workarounds for missing CLOEXEC support
Josh Stone [Tue, 21 Jul 2020 21:32:36 +0000 (14:32 -0700)]
Remove Linux workarounds for missing CLOEXEC support

Now that #74163 updated the minimum Linux kernel to 2.6.32, we can
assume the availability of APIs that open file descriptors that are
already set to close on exec, including the flags `O_CLOEXEC`,
`SOCK_CLOEXEC`, and `F_DUPFD_CLOEXEC`.

3 years agofetch -> lookup
Bastian Kauschke [Tue, 21 Jul 2020 20:54:18 +0000 (22:54 +0200)]
fetch -> lookup

3 years ago`try_update` -> `try_upgrade`
Bastian Kauschke [Fri, 17 Jul 2020 17:12:30 +0000 (19:12 +0200)]
`try_update` -> `try_upgrade`

3 years agoremove some const arg in ty dep path boilerplate
Bastian Kauschke [Thu, 16 Jul 2020 17:36:18 +0000 (19:36 +0200)]
remove some const arg in ty dep path boilerplate

3 years ago[AVR] Ensure that function pointers stored within aggregates are annotated with the...
Dylan McKay [Fri, 19 Jun 2020 07:04:30 +0000 (19:04 +1200)]
[AVR] Ensure that function pointers stored within aggregates are annotated with the correct space

Before this patch, a function pointer stored within an aggregate like a
struct or an enum would always have the default address space `0`.

This patch removes this assumption and instead, introspects the inner
type being pointed at, storing the target address space in the PointeeInfo
struct so that downstream users may query it.

3 years ago[AVR] Correctly set the pointer address space when constructing pointers to functions
Dylan McKay [Thu, 11 Jun 2020 05:52:09 +0000 (17:52 +1200)]
[AVR] Correctly set the pointer address space when constructing pointers to functions

This patch extends the existing `type_i8p` method so that it requires an
explicit address space to be specified. Before this patch, the
`type_i8p` method implcitily assumed the default address space, which is
not a safe transformation on all targets, namely AVR.

The Rust compiler already has support for tracking the "instruction
address space" on a per-target basis. This patch extends the code
generation routines so that an address space must always be specified.

In my estimation, around 15% of the callers of `type_i8p` produced
invalid code on AVR due to the loss of address space prior to LLVM final
code generation. This would lead to unavoidable assertion errors
relating to invalid bitcasts.

With this patch, the address space is always either 1) explicitly set to
the instruction address space because the logic is dealing with functions
which must be placed there, or 2) explicitly set to the default address
space 0 because the logic can only operate on data space pointers and thus
we keep the existing semantics of assuming the default, "data" address space.

3 years agoUpdate books
Eric Huss [Tue, 21 Jul 2020 14:58:59 +0000 (07:58 -0700)]
Update books

3 years agoRemove the assert on alignment check.
Jamie Cunliffe [Tue, 21 Jul 2020 12:46:22 +0000 (13:46 +0100)]
Remove the assert on alignment check.

Also the alignment should only be done on general register types as
per the AAPCS so fixed that issue.

Copyright (c) 2020, Arm Limited.

3 years agoAuto merge of #74075 - sunfishcode:wasi-prelude-rawfd, r=alexcrichton
bors [Tue, 21 Jul 2020 06:55:17 +0000 (06:55 +0000)]
Auto merge of #74075 - sunfishcode:wasi-prelude-rawfd, r=alexcrichton

Add `RawFd` to WASI's `std::os::wasi::prelude`.

Add `RawFd` to WASI's `std::os::wasi::prelude`, making it consistent
with all other platforms which also have `AsRawFd`, `FromRawFd`, and
`IntoRawFd` in their respective preludes.

3 years agoAuto merge of #69749 - davidtwco:issue-46477-polymorphization, r=eddyb
bors [Tue, 21 Jul 2020 03:09:04 +0000 (03:09 +0000)]
Auto merge of #69749 - davidtwco:issue-46477-polymorphization, r=eddyb

Polymorphization

This PR implements an analysis to detect when functions could remain polymorphic during code generation.

Fixes #46477

r? @eddyb
cc @rust-lang/wg-mir-opt @nikomatsakis @pnkfelix

3 years agoFix rust-src component.
Eric Huss [Tue, 21 Jul 2020 02:49:03 +0000 (19:49 -0700)]
Fix rust-src component.

3 years agoExpand test to cover type_name and monomorphic use
Gary Guo [Tue, 21 Jul 2020 01:28:51 +0000 (02:28 +0100)]
Expand test to cover type_name and monomorphic use

3 years agoUpdate dependencies that have knowledge about aarch64-apple-darwin
Jake Goulding [Sat, 11 Jul 2020 18:52:30 +0000 (14:52 -0400)]
Update dependencies that have knowledge about aarch64-apple-darwin

3 years agoAdd the aarch64-apple-darwin target
Jake Goulding [Sat, 11 Jul 2020 18:50:03 +0000 (14:50 -0400)]
Add the aarch64-apple-darwin target

This is a basic copy-paste-modify from the existing
x86_64-apple-darwin target.

3 years agorefactor and reword intra-doc link errors
Andy Russell [Sun, 19 Jul 2020 17:03:35 +0000 (13:03 -0400)]
refactor and reword intra-doc link errors

This commit refactors intra-doc link error reporting to deduplicate code
and decouple error construction from the type of error. This greatly
improves flexibility at each error construction site, while reducing the
complexity of the diagnostic creation.

This commit also rewords the diagnostics for clarity and style:

- Diagnostics should not end in periods.
- It's unnecessary to say "ignoring it". Since this is a warning by
  default, it's already clear that the link is ignored.

3 years agoAuto merge of #74569 - Manishearth:rollup-hkn5ex9, r=Manishearth
bors [Mon, 20 Jul 2020 21:38:46 +0000 (21:38 +0000)]
Auto merge of #74569 - Manishearth:rollup-hkn5ex9, r=Manishearth

Rollup of 13 pull requests

Successful merges:

 - #72714 (Fix debug assertion in typeck)
 - #73197 (Impl Default for ranges)
 - #73323 (wf: check foreign fn decls for well-formedness)
 - #74051 (disallow non-static lifetimes in const generics)
 - #74376 (test caching opt_const_param_of on disc)
 - #74501 (Ayu theme: Use different background color for Run button)
 - #74505 (Fix search input focus in ayu theme)
 - #74522 (Update sanitizer docs)
 - #74546 (Fix duplicate maybe_uninit_extra attribute)
 - #74552 (Stabilize TAU constant.)
 - #74555 (Improve "important traits" popup display on mobile)
 - #74557 (Fix an ICE on an invalid `binding @ ...` in a tuple struct pattern)
 - #74561 (update backtrace-rs)

Failed merges:

r? @ghost

3 years agoupdate coherence docs
Bastian Kauschke [Mon, 20 Jul 2020 21:18:06 +0000 (23:18 +0200)]
update coherence docs

3 years agoreview
Bastian Kauschke [Mon, 20 Jul 2020 20:34:26 +0000 (22:34 +0200)]
review

3 years agoRollup merge of #74561 - RalfJung:backtrace, r=alexcrichton
Manish Goregaokar [Mon, 20 Jul 2020 19:30:34 +0000 (12:30 -0700)]
Rollup merge of #74561 - RalfJung:backtrace, r=alexcrichton

update backtrace-rs

Hopefully fixes https://github.com/rust-lang/rust/issues/74484
r? @alexcrichton

3 years agoRollup merge of #74557 - jakubadamw:issue-74539, r=nagisa
Manish Goregaokar [Mon, 20 Jul 2020 19:30:32 +0000 (12:30 -0700)]
Rollup merge of #74557 - jakubadamw:issue-74539, r=nagisa

Fix an ICE on an invalid `binding @ ...` in a tuple struct pattern

Fixes #74539.

3 years agoRollup merge of #74555 - GuillaumeGomez:important-traits-popup, r=Manishearth
Manish Goregaokar [Mon, 20 Jul 2020 19:30:31 +0000 (12:30 -0700)]
Rollup merge of #74555 - GuillaumeGomez:important-traits-popup, r=Manishearth

Improve "important traits" popup display on mobile

I implemented what @XAMPPRocky suggested in the [internals thread topic](https://internals.rust-lang.org/t/feedback-on-important-traits-rustdoc-feature/12752/18). I can confirm it works nicely.

r? @Manishearth

@Manishearth: By the way: I realized that when you click on the "i", you have to click again to make the popup disappear. Do you want me to extend the popup removal to any click outside the popup?

3 years agoRollup merge of #74552 - fusion-engineering-forks:stabilize-tau, r=dtolnay
Manish Goregaokar [Mon, 20 Jul 2020 19:30:29 +0000 (12:30 -0700)]
Rollup merge of #74552 - fusion-engineering-forks:stabilize-tau, r=dtolnay

Stabilize TAU constant.

Closes #66770.

3 years agoRollup merge of #74546 - jethrogb:jb/duplicate-attribute-maybe_uninit_extra, r=kennytm
Manish Goregaokar [Mon, 20 Jul 2020 19:30:27 +0000 (12:30 -0700)]
Rollup merge of #74546 - jethrogb:jb/duplicate-attribute-maybe_uninit_extra, r=kennytm

Fix duplicate maybe_uninit_extra attribute

Introduced in #72414

3 years agoRollup merge of #74522 - tmiasko:sanitizer-docs, r=nikomatsakis
Manish Goregaokar [Mon, 20 Jul 2020 19:30:25 +0000 (12:30 -0700)]
Rollup merge of #74522 - tmiasko:sanitizer-docs, r=nikomatsakis

Update sanitizer docs

* Document AddressSanitizer memory leak detection defaults.
* Remove CC & CFLAGS from MemorySanitizer example - they are now unnecessary for pure Rust projects (backtrace-rs moved away from libbacktrace).

3 years agoRollup merge of #74505 - Cldfire:fix-search-focus, r=GuillaumeGomez
Manish Goregaokar [Mon, 20 Jul 2020 19:30:24 +0000 (12:30 -0700)]
Rollup merge of #74505 - Cldfire:fix-search-focus, r=GuillaumeGomez

Fix search input focus in ayu theme

Closes #74496.

Before:

![image](https://user-images.githubusercontent.com/13814214/87868463-d0c8fe80-c963-11ea-9003-aa578d869e98.png)

After:

![image](https://user-images.githubusercontent.com/13814214/87868467-dc1c2a00-c963-11ea-89a8-1280f68ff9df.png)

3 years agoRollup merge of #74501 - lzutao:css_run_border, r=GuillaumeGomez
Manish Goregaokar [Mon, 20 Jul 2020 19:30:22 +0000 (12:30 -0700)]
Rollup merge of #74501 - lzutao:css_run_border, r=GuillaumeGomez

Ayu theme: Use different background color for Run button

Make it clearer that there is a button Run there.

Demo in https://github.com/rust-lang/rust/pull/74501#issuecomment-660597377 .

3 years agoRollup merge of #74376 - lcnr:type-dependent-path-cleanup, r=eddyb
Manish Goregaokar [Mon, 20 Jul 2020 19:30:20 +0000 (12:30 -0700)]
Rollup merge of #74376 - lcnr:type-dependent-path-cleanup, r=eddyb

test caching opt_const_param_of on disc

Followup to #74113, implements parts of #74360

Tried caching `opt_const_param_of` on disk and adding an early exit if `tcx.dep_kind(def_id) != DefKind::AnonConst`.

Ended up causing a perf regression instead, so we just remove the FIXME and a short note to `opt_const_param_of`.

r? @eddyb

3 years agoRollup merge of #74051 - yodaldevoid:issue_60814, r=nikomatsakis
Manish Goregaokar [Mon, 20 Jul 2020 19:30:18 +0000 (12:30 -0700)]
Rollup merge of #74051 - yodaldevoid:issue_60814, r=nikomatsakis

disallow non-static lifetimes in const generics

Disallow non-static lifetimes in const generics in order to to patch over an ICE caused when we encounter a non-static lifetime in a const generic during borrow checking. This restriction may be relaxed in the future, but we need more discussion before then, and in the meantime we should still deal with this ICE.

Fixes issue #60814

3 years agoRollup merge of #73323 - davidtwco:issue-73252-wfcheck-foreign-fn-decl, r=ecstatic...
Manish Goregaokar [Mon, 20 Jul 2020 19:30:16 +0000 (12:30 -0700)]
Rollup merge of #73323 - davidtwco:issue-73252-wfcheck-foreign-fn-decl, r=ecstatic-morse

wf: check foreign fn decls for well-formedness

Fixes #73252 and fixes #73253.

This PR extends current well-formedness checking to apply to foreign function declarations, re-using the existing machinery for regular functions. In doing this, later parts of the compiler (such as the `improper_ctypes` lint) can rely on being operations not failing as a result of invalid code which would normally be caught earlier.