| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
the base address
|
|
|
|
Implement rustc part of RFC 3127 trim-paths
This PR implements (or at least tries to) [RFC 3127 trim-paths](https://github.com/rust-lang/rust/issues/111540), the rustc part. That is `-Zremap-path-scope` with all of it's components/scopes.
`@rustbot` label: +F-trim-paths
|
|
|
|
|
|
|
|
|
|
|
|
fix(bootstrap) info message show correct path now
running `./x setup tools` showed me a note with incorrect path
|
|
add some comments and some cleanup around Miri intptrcast
`@saethlin` maybe this helps a bit?
|
|
There were two command chains separated by `&&` in the script, and since `set -e` doesn't exit for chained commands, if the first chain has failed, the command would happily continue forward, ignoring any test failures.
|
|
Tweak wording of type errors involving type params
Fix #78206.
|
|
Fix podman detection in CI scripts
When docker-podman compat was set up in a way that causes "docker" to be the argv[0] of podman, the previous detection did not work. This was for example the case in the compat package from nixpkgs.
This checks the output and should work everywhere.
I tested it locally by executing
```sh
if [[ "$id" != 0 && "$(docker version)" =~ Podman ]]; then
echo yes
else
echo no
fi
```
which printed `no` before, and `yes` now.
fixes #113129
r? cuviper
|
|
|
|
Fix #78206.
|
|
Bumps [rustix](https://github.com/bytecodealliance/rustix) from 0.38.17 to 0.38.19.
- [Release notes](https://github.com/bytecodealliance/rustix/releases)
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.17...v0.38.19)
---
updated-dependencies:
- dependency-name: rustix
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
|
|
Bumps [rustix](https://github.com/bytecodealliance/rustix) from 0.38.17 to 0.38.19.
- [Release notes](https://github.com/bytecodealliance/rustix/releases)
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.17...v0.38.19)
---
updated-dependencies:
- dependency-name: rustix
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
---
updated-dependencies:
- dependency-name: rustix
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
|
|
Update to LLVM 17.0.3
Fixes https://github.com/rust-lang/rust/issues/116582.
Fixes miscompile reported at https://github.com/rust-lang/rust/pull/104862.
r? `@cuviper`
|
|
Normalize alloc-id in tests.
AllocIds are globally numbered in a rustc invocation. This makes them very sensitive to changes unrelated to what is being tested. This commit normalizes them by renumbering, in order of appearance in the output.
The renumbering allows to keep the identity, that a simple `allocN` wouldn't. This is useful when we have memory dumps.
cc `@saethlin`
r? `@oli-obk`
|
|
|
|
|
|
Commands should be run on Builder, if possible.
|
|
|
|
|
|
|
|
Rollup of 5 pull requests
Successful merges:
- #111072 (Add new simpler and more explicit syntax for check-cfg)
- #116717 (Special case iterator chain checks for suggestion)
- #116719 (Add MonoItems and Instance to stable_mir)
- #116787 (Implement an internal lint encouraging use of `Span::eq_ctxt`)
- #116827 (Make `handle_options` public again.)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Implement an internal lint encouraging use of `Span::eq_ctxt`
Adds a new Rustc internal lint that forbids use of `.ctxt() == .ctxt()` for spans, encouraging use of `.eq_ctxt()` instead (see https://github.com/rust-lang/rust/issues/49509).
Also fixed a few violations of the lint in the Rustc codebase (a fun additional way I could test my code). Edit: MIR opt folks I believe that's why you're CC'ed, just a heads up.
Two things I'm not sure about:
1. The way I chose to detect calls to `Span::ctxt`. I know adding diagnostic items to methods is generally discouraged, but after some searching and experimenting I couldn't find anything else that worked, so I went with it. That said, I'm happy to implement something different if there's a better way out there. (For what it's worth, if there is a better way, it might be worth documenting in the rustc-dev-guide, which I'm happy to take care of)
2. The error message for the lint. Ideally it would probably be good to give some context as to why the suggestion is made (e.g. `rustc::default_hash_types` tells the user that it's because of performance), but I don't have that context so I couldn't put it in the error message. Happy to iterate on the error message based on feedback during review.
r? ``@oli-obk``
|
|
Add new simpler and more explicit syntax for check-cfg
<details>
<summary>
Old proposition (before the MCP)
</summary>
This PR adds a new simpler and more explicit syntax for check-cfg. It consist of two new form:
- `exhaustive(names, values)`
- `configure(name, "value1", "value2", ... "valueN")`
The preview forms `names(...)` and `values(...)` have implicit meaning that are not strait-forward. In particular `values(foo)`&`values(bar)` and `names(foo, bar)` are not equivalent which has created [some confusions](https://github.com/rust-lang/rust/pull/98080).
Also the `names()` and `values()` form are not clear either and again created some confusions where peoples believed that `values()`&`values(foo)` could be reduced to just `values(foo)`.
To fix that the two new forms are made to be explicit and simpler. See the table of correspondence:
- `names()` -> `exhaustive(names)`
- `values()` -> `exhaustive(values)`
- `names(foo)` -> `exhaustive(names)`&`configure(foo)`
- `values(foo)` -> `configure(foo)`
- `values(feat, "foo", "bar")` -> `configure(feat, "foo", "bar")`
- `values(foo)`&`values(bar)` -> `configure(foo, bar)`
- `names()`&`values()`&`values(my_cfg)` -> `exhaustive(names, values)`&`configure(my_cfg)`
Another benefits of the new syntax is that it allow for further options (like conditional checking for --cfg, currently always on) without syntax change.
The two previous forms are deprecated and will be removed once cargo and beta rustc have the necessary support.
</details>
This PR is the first part of the implementation of [MCP636 - Simplify and improve explicitness of the check-cfg syntax](https://github.com/rust-lang/compiler-team/issues/636).
## New `cfg` form
It introduces the new [`cfg` form](https://github.com/rust-lang/compiler-team/issues/636) and deprecate the other two:
```
rustc --check-cfg 'cfg(name1, ..., nameN, values("value1", "value2", ... "valueN"))'
```
## Default built-in names and values
It also changes the default for the built-in names and values checking.
- Built-in values checking would always be activated as long as a `--check-cfg` argument is present
- Built-in names checking would always be activated as long as a `--check-cfg` argument is present **unless** if any `cfg(any())` arg is passed
~~**Note: depends on https://github.com/rust-lang/rust/pull/111068 but is reviewable (last two commits)!**~~
Resolve https://github.com/rust-lang/compiler-team/issues/636
r? `@petrochenkov`
|