about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2021-11-16Add emscripten to the "wasm" family of targetsAlex Crichton-1/+1
2021-11-10Disable `.debug_aranges` for all wasm targetsAlex Crichton-8/+14
This follows from discussion on https://bugs.llvm.org/show_bug.cgi?id=52442 where it looks like this section doesn't make sense for wasm targets.
2021-11-10Add a missing doc linkAlex Crichton-0/+1
2021-11-10Update src/doc/rustc/src/platform-support.mdAlex Crichton-1/+1
Co-authored-by: Josh Triplett <josh@joshtriplett.org>
2021-11-10Add target documentation for wasm64-unknown-unknownAlex Crichton-0/+101
2021-11-10Update stdarch/dlmallocAlex Crichton-3/+3
Ensure that they compile with the now-a-feature-is-required logic.
2021-11-10Update dlmalloc for libstdAlex Crichton-3/+3
This pulls in a fix for wasm64 to work correctly with this dlmalloc
2021-11-10Update stdarch/compiler_builtinsAlex Crichton-3/+3
Brings in some fixes and better support for the wasm64 target.
2021-11-10Use more robust checks in rustc for wasmAlex Crichton-5/+5
2021-11-10Update more rustc/libtest things for wasm64Alex Crichton-12/+16
* Add wasm64 variants for inline assembly along the same lines as wasm32 * Update a few directives in libtest to check for `target_family` instead of `target_arch` * Update some rustc codegen and typechecks specialized for wasm32 to also work for wasm64.
2021-11-10Fix a crash with wasm64 in LLVMAlex Crichton-1/+9
This commit works around a crash in LLVM when the `-generate-arange-section` argument is passed to LLVM. An LLVM bug is opened for this and the code in question is also set to continue passing this flag with LLVM 14, assuming that this is fixed by the time LLVM 14 comes out. Otherwise this should work around debuginfo crashes on LLVM 13.
2021-11-10Review commentsAlex Crichton-4/+3
2021-11-10Update platform support docsAlex Crichton-1/+1
2021-11-10Use `target_family = "wasm"`Alex Crichton-35/+18
2021-11-10Enable WebAssembly features by default on wasm64Alex Crichton-0/+5
These are all stable as-of-now in the WebAssembly specification so any engine which implements wasm64 will surely implement these features as well.
2021-11-10std: Get the standard library compiling for wasm64Alex Crichton-22/+41
This commit goes through and updates various `#[cfg]` as appropriate to get the wasm64-unknown-unknown target behaving similarly to the wasm32-unknown-unknown target. Most of this is just updating various conditions for `target_arch = "wasm32"` to also account for `target_arch = "wasm64"` where appropriate. This commit also lists `wasm64` as an allow-listed architecture to not have the `restricted_std` feature enabled, enabling experimentation with `-Z build-std` externally. The main goal of this commit is to enable playing around with `wasm64-unknown-unknown` externally via `-Z build-std` in a way that's similar to the `wasm32-unknown-unknown` target. These targets are effectively the same and only differ in their pointer size, but wasm64 is much newer and has much less ecosystem/library support so it'll still take time to get wasm64 fully-fledged.
2021-11-10Auto merge of #90759 - yanok:llvm-dbginfo-fix, r=nikicbors-0/+0
Update llvm submodule This includes debug info generation fix, that fixes #90301. Also includes WASM backend related fix for https://bugs.llvm.org/show_bug.cgi?id=52352 (I haven't found a corresponding Rust bug).
2021-11-10Update llvm submoduleIlya Yanok-0/+0
This includes debug info generation fix, that fixes #90301. Also includes WASM backend related fix for https://bugs.llvm.org/show_bug.cgi?id=52352 (I haven't found a corresponding Rust bug).
2021-11-10Auto merge of #88670 - camelid:miri-uninit-num, r=RalfJungbors-5/+12
miri: Detect uninitialized integers and floats Part of rust-lang/miri#1340. Companion Miri PR: rust-lang/miri#1904 r? `@RalfJung`
2021-11-10Auto merge of #90754 - matthiaskrgr:rollup-v0483m5, r=matthiaskrgrbors-9/+8
Rollup of 3 pull requests Successful merges: - #90690 (kmc-solid: Avoid the use of `asm_const`) - #90748 (Add a real tracking issue for `CommandExt::groups`) - #90751 (Update books) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2021-11-10Rollup merge of #90751 - ehuss:update-books, r=ehussMatthias Krüger-1/+1
Update books ## nomicon 1 commits in 358e6a61d5f4f0496d0a81e70cdcd25d05307342..c6b4bf831e9a40aec34f53067d20634839a6778b 2021-10-20 11:23:12 -0700 to 2021-11-09 02:30:56 +0900 - Replace some use of variant with covariant (rust-lang/nomicon#322) ## book 11 commits in fd9299792852c9a368cb236748781852f75cdac6..5c5dbc5b196c9564422b3193264f3288d2a051ce 2021-10-22 21:59:46 -0400 to 2021-11-09 19:30:43 -0500 - Fix constants link. - Fix updated anchor - Propagate edits to chapter 2 back - Edits to nostarch's chapter 3 edits - ch 3 from nostarch - Fix Cargo.toml snippet about custom derive macros - Snapshot of chapter 9 for nostarch - Create tmp/src for converting quotes, not sure why this broke but ok - Update question mark to better explain where it can be used - Clarify sentence about Results in functions that don't return Result. Fixes rust-lang/book#2912. - Merge pull request rust-lang/book#2913 from covariant/patch-1 ## rust-by-example 2 commits in 27f1ff5e440ef78828b68ab882b98e1b10d9af32..e9d45342d7a6c1def4731f1782d87ea317ba30c3 2021-10-13 08:04:40 -0300 to 2021-11-02 13:33:03 -0500 - Enums: Linked-List Needs Re-Wording (rust-lang/rust-by-example#1469) - fix: Use the point as top left corner for `square` (rust-lang/rust-by-example#1471) ## rustc-dev-guide 13 commits in b06008731af0f7d07cd0614e820c8276dfed1c18..196ef69aa68f2cef44f37566ee7db37daf00301b 2021-10-21 15:13:09 -0500 to 2021-11-07 07:48:47 -0600 - Fix typo: [upv.rs_mentioned] -&gt; [upvars_mentioned] - Add note to emphasize replacing TARGET_TRIPLE (rust-lang/rustc-dev-guide#1250) - Remove some legacy test suites. - tiny capitalization fix - Fix date - Update some date-check comments - Ensure date-check cron job is using latest stable Rust - enhance subtree docs, link to clippy docs - Edit introduction to bootstrapping - Some minor adjustments to the diagnostic documentation - Edit "About this guide" for semantic line feeds - Fix `rustc_mir` related links (rust-lang/rustc-dev-guide#1228) - Add documentation for LLVM CFI support ## edition-guide 3 commits in 7c0088ca744d293a5f4b1e2ac378e7c23d30fe55..27f4a84d3852e9416cae5861254fa53a825c56bd 2021-10-05 13:28:05 +0200 to 2021-11-08 10:13:20 -0500 - Add a missing period (rust-lang/edition-guide#271) - Fix syntax error in code example (rust-lang/edition-guide#270) - Fixed an example error of prelude.md (rust-lang/edition-guide#269)
2021-11-10Rollup merge of #90748 - cuviper:track-setgroups, r=dtolnayMatthias Krüger-1/+1
Add a real tracking issue for `CommandExt::groups` The `unstable` attribute referenced the closed RFE #38527, so I filed tracking issue #90747.
2021-11-10Rollup merge of #90690 - solid-rs:fix-kmc-solid-asm-const, r=Mark-SimulacrumMatthias Krüger-7/+6
kmc-solid: Avoid the use of `asm_const` This PR removes the use of [the now-separated-out `asm_const` compiler feature][1] in `std::sys::solid` to fix the [`*-kmc-solid_*`](https://doc.rust-lang.org/nightly/rustc/platform-support/kmc-solid.html) Tier 3 targets. [1]: https://github.com/rust-lang/rust/pull/90348
2021-11-10Auto merge of #90663 - ↵bors-0/+23
ken-matsui:support-early-stopping-too-old-tidy-for-macos, r=Mark-Simulacrum Support early stopping too old pre-installed `tidy` command for macOS in the HTML checker This PR brings early stopping the HTML checker before errors, which leave some macOS users confused, and suggesting installing a newer `tidy` command. The pre-installed `tidy` command on macOS is too old, released on 31 October 2006. Additionally, I can see the same date at [StackOverflow](https://stackoverflow.com/questions/22283382/overwrite-osx-tidy ) seven years ago. The `tidy` does not support two indispensable options: `--mute-id` and `--mute`. So, the `./x.py test` command fails with a bunch of errors due not to muting them. I could confirm the `./x.py test` command before installing a newer `tidy` failed and its command after the installation succeeded.
2021-11-09Update booksEric Huss-1/+1
2021-11-09Add a real tracking issue for `CommandExt::groups`Josh Stone-1/+1
2021-11-09miri: Detect uninitialized integers and floatsNoah Lev-5/+12
Change the Miri engine to allow configuring whether to check initialization of integers and floats. This allows the Miri tool to optionally check for initialization if requested by the user.
2021-11-09Auto merge of #90734 - matthiaskrgr:rollup-e1euotp, r=matthiaskrgrbors-235/+1130
Rollup of 7 pull requests Successful merges: - #89561 (Type inference for inline consts) - #90035 (implement rfc-2528 type_changing-struct-update) - #90613 (Allow to run a specific rustdoc-js* test) - #90683 (Make `compiler-docs` only control the default instead of being a hard off-switch) - #90685 (x.py: remove fixme by deleting code) - #90701 (Record more artifact sizes during self-profiling.) - #90723 (Better document `Box` and `alloc::alloc::box_free` connection) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2021-11-09Rollup merge of #90723 - asquared31415:box_docs, r=jyn514Matthias Krüger-0/+3
Better document `Box` and `alloc::alloc::box_free` connection The internal `alloc::alloc::box_free` function requires that its signature matches the `owned_box` struct's declaration, but previously that connection was only documented on the `box_free` function. This PR makes the documentation two-way to help anyone making theoretical changes to `Box` to see the connection, since changes are more likely to originate from `Box`.
2021-11-09Rollup merge of #90701 - michaelwoerister:more-artifact-sizes, r=davidtwcoMatthias Krüger-0/+73
Record more artifact sizes during self-profiling. This PR adds artifact size recording for - "linked artifacts" (executables, RLIBs, dylibs, static libs) - object files - dwo files - assembly files - crate metadata - LLVM bitcode files - LLVM IR files - codegen unit size estimates Currently the identifiers emitted for these are hard-coded as string literals. Is it worth adding constants to https://github.com/rust-lang/measureme/blob/master/measureme/src/rustc.rs instead? We don't do that for query names and the like -- but artifact kinds might be more stable than query names.
2021-11-09Rollup merge of #90685 - jyn514:remove-dead-code, r=Mark-SimulacrumMatthias Krüger-7/+1
x.py: remove fixme by deleting code As far as I can tell, this parameter was never used, so just delete it as unnecessary.
2021-11-09Rollup merge of #90683 - jyn514:compiler-docs, r=Mark-SimulacrumMatthias Krüger-16/+5
Make `compiler-docs` only control the default instead of being a hard off-switch This also fixes `x doc src/tools/clippy` when compiler-docs is disabled. See https://github.com/rust-lang/rust/pull/90354#issuecomment-955854508. r? ``@Mark-Simulacrum``
2021-11-09Rollup merge of #90613 - GuillaumeGomez:specific-rustdoc-js-test, ↵Matthias Krüger-39/+64
r=Mark-Simulacrum Allow to run a specific rustdoc-js* test r? ``@Mark-Simulacrum``
2021-11-09Rollup merge of #90035 - SparrowLii:rfc2528, r=jackh726Matthias Krüger-54/+328
implement rfc-2528 type_changing-struct-update This PR implement rfc2528-type_changing-struct-update. The main change process is as follows: 1. Move the processing part of `base_expr` into `check_expr_struct_fields` to avoid returning `remaining_fields` (a relatively complex hash table) 2. Before performing the type consistency check(`check_expr_has_type_or_error`), if the `type_changing_struct_update` feature is set, enter a different processing flow, otherwise keep the original flow 3. In the case of the same structure definition, check each field in `remaining_fields`. If the field in `base_expr` is not the suptype of the field in `adt_ty`, an error(`FeildMisMatch`) will be reported. The MIR part does not need to be changed, because only the items contained in `remaining_fields` will be extracted from `base_expr` when MIR is generated. This means that fields with different types in `base_expr` will not be used Updates #86618 cc `@nikomatsakis`
2021-11-09Rollup merge of #89561 - nbdd0121:const_typeck, r=nikomatsakisMatthias Krüger-119/+656
Type inference for inline consts Fixes #78132 Fixes #78174 Fixes #81857 Fixes #89964 Perform type checking/inference of inline consts in the same context as the outer def, similar to what is currently done to closure. Doing so would require `closure_base_def_id` of the inline const to return the outer def, and since `closure_base_def_id` can be called on non-local crate (and thus have no HIR available), a new `DefKind` is created for inline consts. The type of the generated anon const can capture lifetime of outer def, so we couldn't just use the typeck result as the type of the inline const's def. Closure has a similar issue, and it uses extra type params `CK, CS, U` to capture closure kind, input/output signature and upvars. I use a similar approach for inline consts, letting it have an extra type param `R`, and then `typeof(InlineConst<[paremt generics], R>)` would just be `R`. In borrowck region requirements are also propagated to the outer MIR body just like it's currently done for closure. With this PR, inline consts in expression position are quitely usable now; however the usage in pattern position is still incomplete -- since those does not remain in the MIR borrowck couldn't verify the lifetime there. I have left an ignored test as a FIXME. Some disucssions can be found on [this Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/260443-project-const-generics/topic/inline.20consts.20typeck). cc `````@spastorino````` `````@lcnr````` r? `````@nikomatsakis````` `````@rustbot````` label A-inference F-inline_const T-compiler
2021-11-09Auto merge of #86041 - bstrie:unmagic-array-copy, r=jackh726bors-195/+35
Replace Copy/Clone compiler magic on arrays with library impls With const generics the compiler no longer needs to fake these impls.
2021-11-09Allow to run a specific rustdoc-js* testGuillaume Gomez-39/+64
2021-11-09Auto merge of #90724 - JohnTitor:rollup-zg0kbm3, r=JohnTitorbors-6/+154
Rollup of 6 pull requests Successful merges: - #87530 (Add comments regarding superfluous `!Sync` impls) - #90591 (treat illumos like solaris in failing ui tests which need it) - #90678 (Add some GATs-related regression tests) - #90688 (enable `dotprod` target feature in arm) - #90708 (Add a note about feature(explicit_generic_args_with_impl_trait) to the relevant error message) - #90720 (Update cargo) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2021-11-09Rollup merge of #90720 - ehuss:update-cargo, r=ehussYuki Okushi-4/+4
Update cargo 4 commits in 94ca096afbf25f670e76e07dca754fcfe27134be..2e2a16e983f597da62bc132eb191bc3276d4b1bb 2021-10-29 14:45:06 +0000 to 2021-11-08 15:13:38 +0000 - Fix debug panic on download with redirect body. (rust-lang/cargo#10048) - no need to clone (rust-lang/cargo#10051) - Update curl. (rust-lang/cargo#10040) - Fix --scrape-examples-target-crate using package name (with dashes) instead of crate name (with underscores) (rust-lang/cargo#10037)
2021-11-09Rollup merge of #90708 - NieDzejkob:feature-note, r=jackh726Yuki Okushi-0/+32
Add a note about feature(explicit_generic_args_with_impl_trait) to the relevant error message Fixes #90615
2021-11-09Rollup merge of #90688 - SparrowLii:dotprod, r=AmanieuYuki Okushi-0/+1
enable `dotprod` target feature in arm To implement `vdot` neon insturction in stdarch, we need to enable `dotprod` target feature in arm in rustc. r? `@Amanieu`
2021-11-09Rollup merge of #90678 - JohnTitor:add-some-gats-tests, r=jackh726Yuki Okushi-0/+101
Add some GATs-related regression tests Closes #88595, closes #90014 r? `@jackh726`
2021-11-09Rollup merge of #90591 - richlowe:illumos-ui-target, r=Mark-SimulacrumYuki Okushi-2/+5
treat illumos like solaris in failing ui tests which need it Just adding the right cfg target for tests which fail because they don't know illumos is a thing. (cc `````@jclulow)`````
2021-11-09Rollup merge of #87530 - bstrie:commentsync, r=bstrieYuki Okushi-0/+11
Add comments regarding superfluous `!Sync` impls
2021-11-09document Box and box_free connectionasquared31415-0/+3
2021-11-09Auto merge of #90700 - fee1-dead:select-returns-vec, r=davidtwcobors-143/+149
Make `select_*` methods return `Vec` for `TraitEngine` This reduces some complexity as an empty vec means no errors and non-empty vec means errors occurred.
2021-11-09Update cargoEric Huss-4/+4
2021-11-09Auto merge of #87337 - jyn514:lint-error, r=oli-obk,flip1995bors-211/+486
Don't abort compilation after giving a lint error The only reason to use `abort_if_errors` is when the program is so broken that either: 1. later passes get confused and ICE 2. any diagnostics from later passes would be noise This is never the case for lints, because the compiler has to be able to deal with `allow`-ed lints. So it can continue to lint and compile even if there are lint errors. Closes https://github.com/rust-lang/rust/issues/82761. This is a WIP because I have a feeling it will exit with 0 even if there were lint errors; I don't have a computer that can build rustc locally at the moment.
2021-11-09Auto merge of #90485 - camsteffen:fmt-args-less-bind, r=m-ou-sebors-37/+21
Don't destructure args tuple in format_args! This allows Clippy to parse the HIR more simply since `arg0` is changed to `_args.0`. (cc rust-lang/rust-clippy#7843). From rustc's perspective, I think this is something between a lateral move and a tiny improvement since there are fewer bindings. r? `@m-ou-se`
2021-11-09Auto merge of #90695 - GuillaumeGomez:rollup-kxvvw4o, r=GuillaumeGomezbors-49/+39
Rollup of 4 pull requests Successful merges: - #90494 (ARMv6K Horizon OS panic change) - #90652 (use filter(|x| matches!(..)) instead of filter_map(|x| match x ... => Some(xy))) - #90657 (Fix bug with `#[doc]` string single-character last lines) - #90689 (:arrow_up: rust-analyzer) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup