Commit graph

1819 commits

Author SHA1 Message Date
bors
a615cea333 Auto merge of #121885 - reitermarkus:generic-nonzero-inner, r=oli-obk,wesleywiser
Move generic `NonZero` `rustc_layout_scalar_valid_range_start` attribute to inner type.

Tracking issue: https://github.com/rust-lang/rust/issues/120257

r? `@dtolnay`
2024-03-17 02:27:52 +00:00
Markus Reiter
2047e847d7
Fix StdNonZeroNumberProvider for gdb. 2024-03-14 17:34:59 +01:00
Markus Reiter
42c5eb8845
Add comment about NonZero printing as character literal. 2024-03-14 17:34:59 +01:00
Markus Reiter
4a799082fe
Fix StdNonZeroNumberSummaryProvider. 2024-03-14 17:34:58 +01:00
Markus Reiter
ecee730c45
Try fixing debuginfo test. 2024-03-14 17:34:58 +01:00
Alex Crichton
7d9690a3bc Remove old support for emscripten/wasm32-u-u
This commit removes the `wasm32-shim.js` file, for example, and deletes
old support for Emscripten which hasn't been exercised in some time.
2024-03-11 09:36:35 -07:00
Markus Reiter
021739c840
Update tests. 2024-01-27 16:38:57 +01:00
Matthias Krüger
346397d081
Rollup merge of #119562 - LegionMammal978:rename-pin-pointer, r=Amanieu,dtolnay
Rename `pointer` field on `Pin`

A few days ago, I was helping another user create a self-referential type using `PhantomPinned`. However, I noticed an odd behavior when I tried to access one of the type's fields via `Pin`'s `Deref` impl:

```rust
use std::{marker::PhantomPinned, ptr};

struct Pinned {
    data: i32,
    pointer: *const i32,
    _pin: PhantomPinned,
}

fn main() {
    let mut b = Box::pin(Pinned {
        data: 42,
        pointer: ptr::null(),
        _pin: PhantomPinned,
    });
    {
        let pinned = unsafe { b.as_mut().get_unchecked_mut() };
        pinned.pointer = &pinned.data;
    }
    println!("{}", unsafe { *b.pointer });
}
```

```rust
error[E0658]: use of unstable library feature 'unsafe_pin_internals'
  --> <source>:19:30
   |
19 |     println!("{}", unsafe { *b.pointer });
   |                              ^^^^^^^^^

error[E0277]: `Pinned` doesn't implement `std::fmt::Display`
  --> <source>:19:20
   |
19 |     println!("{}", unsafe { *b.pointer });
   |                    ^^^^^^^^^^^^^^^^^^^^^ `Pinned` cannot be formatted with the default formatter
   |
   = help: the trait `std::fmt::Display` is not implemented for `Pinned`
   = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
   = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
```

Since the user named their field `pointer`, it conflicts with the `pointer` field on `Pin`, which is public but unstable since Rust 1.60.0 with #93176. On versions from 1.33.0 to 1.59.0, where the field on `Pin` is private, this program compiles and prints `42` as expected.

To avoid this confusing behavior, this PR renames `pointer` to `__pointer`, so that it's less likely to conflict with a `pointer` field on the underlying type, as accessed through the `Deref` impl. This is technically a breaking change for anyone who names their field `__pointer` on the inner type; if this is undesirable, it could be renamed to something more longwinded. It's also a nightly breaking change for any external users of `unsafe_pin_internals`.
2024-01-26 23:15:49 +01:00
trevyn
5afe1399b5 Increase vscode git.detectSubmodulesLimit 2024-01-19 23:46:17 +04:00
LegionMammal978
bc3fb5245a Rename pointer field on Pin
The internal, unstable field of `Pin` can conflict with fields from the
inner type accessed via the `Deref` impl. Rename it from `pointer` to
`__pointer`, to make it less likely to conflict with anything else.
2024-01-16 14:58:42 -05:00
bors
d73bd3fb3b Auto merge of #119654 - onur-ozkan:bump-dependencies, r=clubby789
bump bootstrap dependencies

This PR removes hard-coded patch versions, updates bootstrap's dependency stack to recent versions (some of the versions were released 3-4 years ago), and removes a few dependencies from bootstrap.

Removed dependencies:

![image](https://github.com/rust-lang/rust/assets/39852038/95e86325-aea0-4055-bee5-245c144f662e)
2024-01-11 10:46:43 +00:00
onur-ozkan
f02f09a08e bless tidy
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-01-11 10:24:41 +03:00
onur-ozkan
96bd9cdcc4 pass allow-{dirty,staged} to clippy
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-01-01 09:41:39 +03:00
bors
51c0db6a91 Auto merge of #106790 - the8472:rawvec-niche, r=scottmcm
add more niches to rawvec

Previously RawVec only had a single niche in its `NonNull` pointer. With this change it now has `isize::MAX` niches since half the value-space of the capacity field is never needed, we can't have a capacity larger than isize::MAX.
2023-12-20 02:19:10 +00:00
The 8472
f6150db78f update natvis to match changed RawVec structure 2023-12-19 22:17:38 +01:00
The 8472
81997094e6 update debug providers to match new RawVec capacity field 2023-12-11 23:38:48 +01:00
onur-ozkan
9eeb265f7c update auto completions
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-12-11 14:26:11 +03:00
onur-ozkan
6860654d82 allow bypassing the build directory lock
As bootstrap locks its entire build directory, parallel bootstrapping
for anything becomes impossible. This change enables developers to bypass
the locking mechanism when it is unnecessary for their specific use case.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-12-09 20:12:40 +03:00
bors
3aaa0f57b7 Auto merge of #115274 - bjorn3:tidy_improvements, r=davidtwco
Run tidy license checker on more workspaces

The license checker didn't run on several workspaces before this PR. The same applied to the "external package sources" check. There were also two missing lockfiles which I have added now.
2023-11-04 02:28:17 +00:00
Guillaume Gomez
20debcd345
Rollup merge of #117043 - onur-ozkan:skip-stage0-validation, r=Mark-Simulacrum
add bootstrap flag `--skip-stage0-validation`

This change introduces the `--skip-stage0-validation` flag, which permits the use of any desired version of the stage0 compiler without verifying its version.

Additionally, stage0 compiler validation check is reverted(#115103) to its default enabled state.

Helps to #115065

r? Mark-Simulacrum
2023-10-29 12:35:00 +01:00
Matthias Krüger
5f96976e82
Rollup merge of #116978 - tromey:rust-printers-cleanup, r=Mark-Simulacrum
Rewrite gdb pretty-printer registration

Currently, the Rust pretty-printers are registered in gdb using the uninformative name "lookup":

    (gdb) info pretty-printer
    global pretty-printers:
    [...]
    objfile /home/tromey/[...]
      lookup

It's nicer for users if the top-level registration is given a clear name.  Additionally, gdb lets users individually enable and disable specific printers, provided they are registered correctly.

This patch implements both these ideas.  Now the output looks like:

    (gdb) info pretty-printer
    global pretty-printers:
    [...]
    objfile /home/tromey/[...]
      rust
	StdArc
	StdBTreeMap
	StdBTreeSet
	StdCell
	StdHashMap
	StdHashSet
	StdNonZeroNumber
	StdOsString
	StdRc
	StdRef
	StdRefCell
	StdRefMut
	StdSlice
	StdStr
	StdString
	StdVec
	StdVecDeque
2023-10-23 16:23:52 +02:00
onur-ozkan
9586bb8064 add bootstrap flag --skip-stage0-validation
This change introduces the --skip-stage0-validation flag,
which permits the use of any desired version of the stage0
compiler without verifying its version.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-22 10:42:06 +03:00
Tom Tromey
7eee62c9be Use gdb.ValuePrinter tag class
GDB 14 has a "gdb.ValuePrinter" tag class that was introduced to let
GDB evolve the pretty-printer API.  Users of this tag are required to
hide any local attributes or methods.  This patch makes this change to
the Rust pretty-printers.  At present this is just a cleanup,
providing the basis for any future changes.
2023-10-20 10:49:40 -06:00
Tom Tromey
e98beb5aeb Rewrite gdb pretty-printer registration
Currently, the Rust pretty-printers are registered in gdb using the
uninformative name "lookup":

    (gdb) info pretty-printer
    global pretty-printers:
    [...]
    objfile /home/tromey/[...]
      lookup

It's nicer for users if the top-level registration is given a clear
name.  Additionally, gdb lets users individually enable and disable
specific printers, provided they are registered correctly.

This patch implements both these ideas.  Now the output looks like:

    (gdb) info pretty-printer
    global pretty-printers:
    [...]
    objfile /home/tromey/[...]
      rust
	StdArc
	StdBTreeMap
	StdBTreeSet
	StdCell
	StdHashMap
	StdHashSet
	StdNonZeroNumber
	StdOsString
	StdRc
	StdRef
	StdRefCell
	StdRefMut
	StdSlice
	StdStr
	StdString
	StdVec
	StdVecDeque
2023-10-20 10:35:28 -06:00
onur-ozkan
62d88f9775 generate zsh autocompletion for x
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-15 09:05:55 +03:00
onur-ozkan
8c62ed581f bump bootstrap:clap_complete to 4.4.3
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-15 09:05:21 +03:00
bjorn3
8bce7116fa Add two lockfiles 2023-10-10 12:47:26 +00:00
bjorn3
b876f2a944 Update rand dependency for test-float-parse
This removes a dependency on fuchsia-cprng which doesn't have any
license info.
2023-10-10 12:47:26 +00:00
Jakub Beránek
9a0e90f7b4
Add --enable-bolt-settings bootstrap flag 2023-10-09 22:00:17 +02:00
bors
42ca6e4e57 Auto merge of #104385 - BlackHoleFox:apple-minimum-bumps, r=petrochenkov
Raise minimum supported Apple OS versions

This implements the proposal to raise the minimum supported Apple OS versions as laid out in the now-completed MCP (https://github.com/rust-lang/compiler-team/issues/556).

As of this PR, rustc and the stdlib now support these versions as the baseline:
- macOS: 10.12 Sierra
- iOS: 10
- tvOS: 10
- watchOS: 5 (Unchanged)

In addition to everything this breaks indirectly, these changes also erase the `armv7-apple-ios` target (currently tier 3) because the oldest supported iOS device now uses ARMv7s. Not sure what the policy around tier3 target removal is but shimming it is not an option due to the linker refusing.

[Per comment](https://github.com/rust-lang/compiler-team/issues/556#issuecomment-1297175073), this requires a FCP to merge. cc `@wesleywiser.`
2023-09-24 02:35:05 +00:00
BlackHoleFox
58bbca958d Raise minimum supported macOS to 10.12 2023-09-23 19:14:25 -05:00
Ralf Jung
6dbcf5fc81 update rust_analyzer_settings.json 2023-09-14 09:58:43 +02:00
Eren K
efa41ef803
rust-gdbgui: remove excessive quotes
in commit 8dd0ec6, the `GDB_ARGS` variable was split across 3 lines. However, extra quotes were added to each line, such that the shell interprets the 3 lines as space separated strings, and tries to execute the latter two lines.
This commit simply removes the extra quotes.
2023-08-22 09:09:00 -04:00
bors
9fa6bdd764 Auto merge of #112482 - tgross35:ci-non-rust-linters, r=pietroalbini
Add support for tidy linting via external tools for non-rust files

This change adds the flag `--check-extras` to `tidy`. It accepts a comma separated list of any of the options:

* py (test everything applicable for python files)
* py:lint (lint python files using `ruff`)
* py:fmt (check formatting for python files using `black`)
* shell or shell:lint (lint shell files using `shellcheck`)

Specific files to check can also be specified via positional args. Examples:

* `./x test tidy --check-extras=shell,py`
* `./x test tidy --check-extras=py:fmt -- src/bootstrap/bootstrap.py`
* `./x test tidy --check-extras=shell -- src/ci/*.sh`
* Python formatting can be applied with bless: `./x test tidy --ckeck-extras=py:fmt --bless`

`ruff` and `black` need to be installed via pip; this tool manages these within a virtual environment at `build/venv`. `shellcheck` needs to be installed on the system already.

---

This PR doesn't fix any of the errors that show up (I will likely go through those at some point) and it doesn't enforce anything new in CI. Relevant zulip discussion: https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/Other.20linters.20in.20CI
2023-08-10 13:07:18 +00:00
Meysam Azad
0b16456efa
fix(bootstrap): rename exclude flag to skip 🐛 2023-08-06 14:29:36 +07:00
Trevor Gross
efc49e4dfa Add support for tidy linting via external tools for non-rust files
This change adds the flag `--check-extras` to `tidy`. It accepts a comma
separated list of any of the options:

- py (test everything applicable for python files)
- py:lint (lint python files using `ruff`)
- py:fmt (check formatting for python files using `black`)
- shell or shell:lint (lint shell files using `shellcheck`)

Specific files to check can also be specified via positional args.
Examples:

- `./x test tidy --check-extras=shell,py`
- `./x test tidy --check-extras=py:fmt -- src/bootstrap/bootstrap.py`
- `./x test tidy --check-extras=shell -- src/ci/*.sh`
- Python formatting can be applied with bless:
  `./x test tidy --ckeck-extras=py:fmt --bless`

`ruff` and `black` need to be installed via pip; this tool manages these
within a virtual environment at `build/venv`. `shellcheck` needs to be
installed on the system already.
2023-08-02 04:40:26 -04:00
Matthias Krüger
82c50ce97f
Rollup merge of #113906 - notriddle:notriddle/cargo-extra-env, r=Mark-Simulacrum
etc: add `RUSTC_BOOTSTRAP` to rust-analyzer config

Fixes the problem reported in https://github.com/rust-lang/rust/issues/112391#issuecomment-1597224941
2023-07-31 22:49:50 +02:00
Jakub Beránek
78403f4e13
Remove BOLT from bootstrap 2023-07-31 08:54:47 +02:00
ozkanonur
25268638aa support --stage for x clean
Signed-off-by: ozkanonur <work@onurozkan.dev>
2023-07-30 23:12:12 +03:00
Michael Howell
a62e30ee3f etc: add RUSTC_BOOTSTRAP to rust-analyzer config
Fixes the problem reported in
https://github.com/rust-lang/rust/issues/112391#issuecomment-1597224941
2023-07-20 16:53:23 -07:00
Guillaume Gomez
8e8c5c9f7e Improve htmldocck error a bit by providing line where error occurred 2023-07-19 14:34:06 +02:00
bors
da6b55cc5e Auto merge of #89132 - Cyborus04:rc_allocator_support, r=Amanieu
Add support for allocators in `Rc` & `Arc`

Adds the ability for `std::rc:Rc`, `std::rc::Weak`, `std::sync::Arc`, and `std::sync::Weak` to live in custom allocators
2023-07-17 21:51:46 +00:00
Wesley Wiser
12bed9d8cc Update natvis to match full type names for Arc, Rc, Weak, etc
Also update a test case to have the correct whitespace in a type name.
2023-07-17 15:51:46 -04:00
yukang
cfa1a79009 User may want to skip tidy check sometimes 2023-06-30 15:37:10 +08:00
Guillaume Gomez
530516f81c
Rollup merge of #112915 - preveen-stack:patch-1, r=Mark-Simulacrum
Update runtests.py : grammar correction

- Grammatically corrected the sentence
2023-06-24 20:26:45 +02:00
Guillaume Gomez
65a7047ee4 Add @files command 2023-06-23 15:12:48 +02:00
Preveen P
e5e480504f
Update runtests.py : grammar correction 2023-06-22 09:59:31 +05:30
Trevor Gross
22d00dcd47 Apply changes to fix python linting errors 2023-06-16 20:56:01 -04:00
Matthias Krüger
29871d5480
Rollup merge of #111962 - theIDinside:better-gdb, r=Mark-Simulacrum
Make GDB Python Pretty Printers loadable after spawning GDB, avoiding required `rust-gdb`

Fixes #111961

Makes the Python pretty printer library source'able from within GDB after spawn, making the wrapper script `rust-gdb` become not the required approach to use the pretty printer library.

Allows for integration into GUI:s that wrap GDB extremely easy. The previous design complicates this feature.
2023-06-06 12:00:32 +02:00
Simon Farre
c5145dc87a Fix #111961 r=Mark-Simulacrum
Makes the Python pretty printer library source'able from within
GDB after spawn.

This makes `rust-gdb` not the required approach. It also provides the possibility
for GUI:s that wrap GDB, to debug Rust using the pretty printer library; as well
as other projects such as for instance Pernosco, which previously was not possible.

This won't introduce any new unexpected behaviors for users of `rust-gdb`
2023-06-05 13:56:31 +02:00