Commit graph

144352 commits

Author SHA1 Message Date
Guillaume Gomez
13f7f052d8 Run codegen tests outside if not llvm-15 2023-11-02 21:03:27 +01:00
Guillaume Gomez
260d91bd41 Add FIXME header for two comments in cg_gcc and cg_clif boostrap types 2023-11-02 21:03:27 +01:00
Guillaume Gomez
c5ff230b55 Skip codegen tests in llvm-15 CI check 2023-11-02 21:03:27 +01:00
Guillaume Gomez
a1902a81d9 Force mangling version for rustc_codegen_gcc 2023-11-02 21:03:27 +01:00
Guillaume Gomez
4b290d40a5 Only run cg_gcc tests on linux x86_64 2023-11-02 21:03:27 +01:00
Guillaume Gomez
7f6aa4422c Add comment explaning when to uncomment the prepare command code 2023-11-02 21:03:27 +01:00
Guillaume Gomez
05a84760f6 Fix rustc_codegen_gcc lto issue 2023-11-02 21:03:27 +01:00
Guillaume Gomez
ead5dffeec Fix missing error libgccjit in CI 2023-11-02 21:03:27 +01:00
Guillaume Gomez
c6ace5c564 Run rustc_codegen_gcc tests in the CI 2023-11-02 21:03:27 +01:00
bors
b20f40dba9 Auto merge of #117521 - GuillaumeGomez:impl-on-foreign-order, r=notriddle
Fix order of implementations in the "implementations on foreign types" section

Fixes #117391.

We forgot to run the `sort_by_cached_key` on this section. This fixes it.

r? `@notriddle`
2023-11-02 17:54:29 +00:00
Guillaume Gomez
aa9d1d87fa Fix order of implementations in the "implementations on foreign types" section 2023-11-02 18:02:14 +01:00
Zalathar
a9e1e43b56 Add UI tests for values accepted by -C symbol-mangling-version 2023-11-02 18:20:42 +11:00
Matthias Krüger
effc27dea4
Rollup merge of #117488 - GuillaumeGomez:update-minifier, r=notriddle
Update minifier-rs version to 0.3.0

It fixes https://github.com/GuillaumeGomez/minifier-rs/issues/105.

r? ```@notriddle```
2023-11-01 21:40:06 +01:00
Camille GILLOT
3a55c283d0 Rename hook. 2023-11-01 16:49:18 +00:00
Guillaume Gomez
d6666e2ccc Update minifier-rs version to 0.3.0 2023-11-01 15:18:41 +01:00
bors
11cd1f0026 Auto merge of #117482 - matthiaskrgr:rollup-doc6jgm, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #115626 (Clean up unchecked_math, separate out unchecked_shifts)
 - #117397 (Don't emit delayed good-path bugs on panic)
 - #117401 (Refactor: move suggestion functions from demand to suggestions)
 - #117475 (Inline and remove `create_session`.)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-11-01 12:18:36 +00:00
Matthias Krüger
260e07b0cb
Rollup merge of #115626 - clarfonthey:unchecked-math, r=thomcc
Clean up unchecked_math, separate out unchecked_shifts

Tracking issue: #85122

Changes:

1. Remove `const_inherent_unchecked_arith` flag and make const-stability flags the same as the method feature flags. Given the number of other unsafe const fns already stabilised, it makes sense to just stabilise these in const context when they're stabilised.
2. Move `unchecked_shl` and `unchecked_shr` into a separate `unchecked_shifts` flag, since the semantics for them are unclear and they'll likely be stabilised separately as a result.
3. Add an `unchecked_neg` method exclusively to signed integers, under the `unchecked_neg` flag. This is because it's a new API and probably needs some time to marinate before it's stabilised, and while it *would* make sense to have a similar version for unsigned integers since `checked_neg` also exists for those there is absolutely no case where that would be a good idea, IMQHO.

The longer-term goal here is to prepare the `unchecked_math` methods for an FCP and stabilisation since they've existed for a while, their semantics are clear, and people seem in favour of stabilising them.
2023-11-01 11:29:41 +01:00
bors
d1611e39c4 Auto merge of #117436 - nikic:update-llvm-16, r=cuviper
Update to LLVM 17.0.4

Fixes #116668.
Fixes #116941.
Fixes #116976.

r? `@cuviper`
2023-11-01 10:16:58 +00:00
bors
09ac6e4b6d Auto merge of #117459 - matthiaskrgr:rollup-t3osb3c, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #113241 (rustdoc: Document lack of object safety on affected traits)
 - #117388 (Turn const_caller_location from a query to a hook)
 - #117417 (Add a stable MIR visitor)
 - #117439 (prepopulate opaque ty storage before using it)
 - #117451 (Add support for pre-unix-epoch file dates on Apple platforms (#108277))

r? `@ghost`
`@rustbot` modify labels: rollup
2023-10-31 23:08:56 +00:00
Weihang Lo
7ea6977649
Update cargo 2023-10-31 15:56:37 -04:00
Matthias Krüger
51b275bff8
Rollup merge of #113241 - poliorcetics:85138-doc-object-safety, r=GuillaumeGomez
rustdoc: Document lack of object safety on affected traits

Closes #85138

I saw the issue didn't have any recent activity, if there is another MR for it I missed it.

I want the issue to move forward so here is my proposition.

It takes some space just before the "Implementors" section and only if the trait is **not** object
safe since it is the only case where special care must be taken in some cases and this has the
benefit of avoiding generation of HTML in (I hope) the common case.
2023-10-31 19:03:20 +01:00
bors
50be229640 Auto merge of #117450 - oli-obk:rustdoc_verify, r=estebank
Accept less invalid Rust in rustdoc

pulled out of https://github.com/rust-lang/rust/pull/117213 where this change was already approved

This only affects rustdoc, and has up to [20% perf regressions in rustdoc](https://github.com/rust-lang/rust/pull/117213#issuecomment-1785776288). These are unavoidable, as we are simply doing more checks now, but it's part of the longer term plan of making rustdoc more resistant to ICEs by only accepting valid Rust code.
2023-10-31 17:07:35 +00:00
Oli Scherer
4512f211ae Accept less invalid Rust in rustdoc 2023-10-31 13:58:03 +00:00
Michael Goulet
de83057ac4 Use derivative for Clone 2023-10-31 13:16:37 +00:00
bors
22b27120b9 Auto merge of #117377 - dtolnay:deprecatedsince, r=cjgillot
Store #[deprecated] attribute's `since` value in parsed form

This PR implements the first followup bullet listed in https://github.com/rust-lang/rust/pull/117148#issue-1960240108.

We centralize error handling to the attribute parsing code in `compiler/rustc_attr/src/builtin.rs`, and thereby remove some awkward error codepaths from later phases of compilation that had to make sense of these #\[deprecated\] attributes, namely `compiler/rustc_passes/src/stability.rs` and `compiler/rustc_middle/src/middle/stability.rs`.
2023-10-31 10:42:24 +00:00
Nikita Popov
9df857f658 Update to LLVM 17.0.4 2023-10-31 09:30:13 +01:00
David Tolnay
dccf10e989
Descriptive variant name deprecation versions outside the standard library 2023-10-30 17:13:26 -07:00
David Tolnay
e8868af75b
Represent absence of 'since' attribute as a variant of DeprecatedSince 2023-10-30 16:46:02 -07:00
David Tolnay
b106167673
Add a DeprecatedSince::Err variant for versions that fail to parse 2023-10-30 15:41:18 -07:00
bors
236ac911de Auto merge of #117405 - GuillaumeGomez:rollup-i3jxtwh, r=GuillaumeGomez
Rollup of 11 pull requests

Successful merges:

 - #112463 (rustdoc: elide cross-crate default generic arguments)
 - #117068 (Clean up `compiler/rustc*/Cargo.toml`)
 - #117132 (On object safety error, mention new enum as alternative)
 - #117317 (share some track_caller logic between interpret and codegen)
 - #117356 (Add support for mipsel-unknown-netbsd, 32-bit LE mips.)
 - #117357 (Rename a few remaining references to abort terminator)
 - #117370 (C-variadic error improvements)
 - #117376 (More `rustc_interface` cleanups)
 - #117383 (improve and fix `x install`)
 - #117390 (Fix unused variables lint issue for args in macro)
 - #117395 (Fix missing leading space in suggestion)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-10-30 18:47:55 +00:00
Guillaume Gomez
c994bdb8d7
Rollup merge of #117383 - onur-ozkan:fix-x-install, r=albertlarsan68
improve and fix `x install`

Fix: Write access check of `prefix` and `sysconfdir` when DESTDIR is present.

Improvement: Instead of repeatedly reading `DESTDIR` within each `fn prepare_dir` usage, read it once and pass it to the `fn prepare_dir`.

Fixes #117203
2023-10-30 17:33:18 +01:00
Guillaume Gomez
d96bdbe218
Rollup merge of #117376 - nnethercote:rustc_interface-more, r=oli-obk
More `rustc_interface` cleanups

In particular, following up #117268 with more improvement to `--cfg`/`--check-cfg` handling.

r? ``@oli-obk``
2023-10-30 17:33:18 +01:00
Guillaume Gomez
99b032f9ff
Rollup merge of #117356 - he32:netbsd-mipsel, r=oli-obk
Add support for mipsel-unknown-netbsd, 32-bit LE mips.
2023-10-30 17:33:16 +01:00
Guillaume Gomez
b9dce53d4a
Rollup merge of #112463 - fmease:rustdoc-elide-x-crate-def-gen-args, r=GuillaumeGomez
rustdoc: elide cross-crate default generic arguments

Elide cross-crate generic arguments if they coincide with their default.
TL;DR: Most notably, no more `Box<…, Global>` in `std`'s docs, just `Box<…>` from now on.
Fixes #80379.

Also helps with #44306. Follow-up to #103885, #107637.

r? ``@ghost``
2023-10-30 17:33:14 +01:00
David Tolnay
1e10fe9eb6
Move deprecation_in_effect to inherent method on Deprecation 2023-10-30 09:02:32 -07:00
León Orell Valerian Liehr
58a80c85b9
rustdoc: elide cross-crate default generic arguments 2023-10-30 16:44:52 +01:00
bors
e6e931dda5 Auto merge of #117267 - RalfJung:miri-tests, r=Mark-Simulacrum
update which targets we test Miri on

I hope this doesn't cost too much time; running only the "pass" tests should be reasonably fast (1-2 minutes on my system).

Fixes https://github.com/rust-lang/rust/issues/117167
2023-10-30 15:38:24 +00:00
Ralf Jung
b48adef3fd update which targets we test Miri on 2023-10-30 11:08:01 +01:00
onur-ozkan
4b14048d60 improve and fix x install
Fix: Write access check of `prefix` and `sysconfdir`
when DESTDIR is present.

Improvement: Instead of repeatedly reading `DESTDIR` within
each `fn prepare_dir` usage, read it once and pass it to
the `fn prepare_dir`.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-30 11:42:19 +03:00
chenx97
2409ea3c12 bootstrap: bump fd-lock, clap and windows.
this also updates target-sensitive dependencies like rustix
and libc.
2023-10-30 15:54:57 +08:00
David Tolnay
2fe7d17bd9
Store version of deprecated attribute in structured form 2023-10-29 22:42:32 -07:00
David Tolnay
1e5b2da94b
Rename Since -> StableSince in preparation for a DeprecatedSince 2023-10-29 21:39:57 -07:00
Nicholas Nethercote
678e01a3fc Delay parsing of --cfg and --check-cfg options.
By storing the unparsed values in `Config` and then parsing them within
`run_compiler`, the parsing functions can use the main symbol interner,
and not create their own short-lived interners.

This change also eliminates the need for one `EarlyErrorHandler` in
rustdoc, because parsing errors can be reported by another, slightly
later `EarlyErrorHandler`.
2023-10-30 13:46:53 +11:00
bors
1dfb6b162b Auto merge of #117328 - lqd:cranelift-rocket, r=Mark-Simulacrum
pass `CODEGEN_BACKENDS` to docker

The backends to build are now defined in the `CODEGEN_BACKENDS` env var. It's correctly set in CI, but wasn't passed to docker, hence cg_clif wasn't actually built in #81746.

r? `@Kobzol:` I locally tried `CODEGEN_BACKENDS="cranelift" DEPLOY=1 src/ci/docker/run.sh dist-x86_64-linux` and this change was enough for `ci/run.sh` to read the env var.

So I'll try as-is and we'll see.
2023-10-30 01:56:58 +00:00
Alexis (Poliorcetics) Bourget
40556b968c feat: Add 'object-safety' ID to init_id_map() in rustdoc 2023-10-29 22:57:45 +01:00
Alexis (Poliorcetics) Bourget
51e22be682 feat: render Object Safety informations non-object safe traits 2023-10-29 22:57:45 +01:00
bors
83c9732e0c Auto merge of #116270 - cjgillot:gvn-aggregate, r=oli-obk,RalfJung
See through aggregates in GVN

This PR is extracted from https://github.com/rust-lang/rust/pull/111344

The first 2 commit are cleanups to avoid repeated work. I propose to stop removing useless assignments as part of this pass, and let a later `SimplifyLocals` do it. This makes tests easier to read (among others).

The next 3 commits add a constant folding mechanism to the GVN pass, presented in https://github.com/rust-lang/rust/pull/116012. ~This pass is designed to only use global allocations, to avoid any risk of accidental modification of the stored state.~

The following commits implement opportunistic simplifications, in particular:
- projections of aggregates: `MyStruct { x: a }.x` gets replaced by `a`, works with enums too;
- projections of arrays: `[a, b][0]` becomes `a`;
- projections of repeat expressions: `[a; N][x]` becomes `a`;
- transform arrays of equal operands into a repeat rvalue.

Fixes https://github.com/rust-lang/miri/issues/3090

r? `@oli-obk`
2023-10-29 14:50:53 +00:00
Rémy Rakic
f656accdf5 handle dry runs in dist::CodegenBackend
self.number_of_times_dry_runs_have_caused_issues += 1;
2023-10-29 13:12:02 +00:00
Havard Eidnes
82b447a0cc Add support for mipsel-unknown-netbsd, 32-bit LE mips. 2023-10-29 12:39:30 +00:00
Guillaume Gomez
8b461d06b2
Rollup merge of #117337 - camelid:genparamdefkind-thinvec, r=GuillaumeGomez
rustdoc: Use `ThinVec` in `GenericParamDefKind`

This should hopefully reduce memory usage and improve performance since
these vectors are often empty (and `GenericParamDefKind` is constructed *a lot*).
2023-10-29 12:35:01 +01:00