Only assert the Parser size on specific arches#135855
Conversation
The size of this struct depends on the alignment of `u128`, for example powerpc64le and s390x have align-8 and end up with only 280 bytes. Our 64-bit tier-1 arches are the same though, so let's just assert on those.
|
Could not assign reviewer from: |
|
I'm nominating this for backport because I ran into this problem on Fedora for 1.85-beta: @rustbot label +beta-nominated |
|
Nick is on vacation so the assignment didn't go through but I think we can go-ahead and merge this now. @bors r+ |
| // nonterminals. Make sure it doesn't unintentionally get bigger. | ||
| #[cfg(all(target_pointer_width = "64", not(target_arch = "s390x")))] | ||
| // nonterminals. Make sure it doesn't unintentionally get bigger. We only check a few arches | ||
| // though, because `TokenTypeSet(u128)` alignment varies on others, changing the total size. |
There was a problem hiding this comment.
Not this PR, and I don't know if it's worth bothering, but could try changing the other type to a https://doc.rust-lang.org/nightly/nightly-rustc/rustc_data_structures/packed/struct.Pu128.html so it'd be smaller on x64 too.
There was a problem hiding this comment.
Either that, or put #[repr(packed(8))] directly on TokenTypeSet too. I have no idea if there are enough of these being passed around to really matter though.
Only assert the `Parser` size on specific arches The size of this struct depends on the alignment of `u128`, for example powerpc64le and s390x have align-8 and end up with only 280 bytes. Our 64-bit tier-1 arches are the same though, so let's just assert on those. r? nnethercote
Rollup of 8 pull requests Successful merges: - rust-lang#135557 (Point at invalid utf-8 span on user's source code) - rust-lang#135596 (Properly note when query stack is being cut off) - rust-lang#135638 (Make it possible to build GCC on CI) - rust-lang#135648 (support wasm inline assembly in `naked_asm!`) - rust-lang#135826 (Misc. `rustc_resolve` cleanups) - rust-lang#135827 (CI: free disk with in-tree script instead of GitHub Action) - rust-lang#135850 (Update the `wasm-component-ld` tool) - rust-lang#135855 (Only assert the `Parser` size on specific arches) r? `@ghost` `@rustbot` modify labels: rollup
Only assert the `Parser` size on specific arches The size of this struct depends on the alignment of `u128`, for example powerpc64le and s390x have align-8 and end up with only 280 bytes. Our 64-bit tier-1 arches are the same though, so let's just assert on those. r? nnethercote
Rollup of 9 pull requests Successful merges: - rust-lang#133138 (Target modifiers (special marked options) are recorded in metainfo) - rust-lang#133154 (Reword resolve errors caused by likely missing crate in dep tree) - rust-lang#135366 (Enable `unreachable_pub` lint in `test` and `proc_macro` crates) - rust-lang#135638 (Make it possible to build GCC on CI) - rust-lang#135648 (support wasm inline assembly in `naked_asm!`) - rust-lang#135827 (CI: free disk with in-tree script instead of GitHub Action) - rust-lang#135855 (Only assert the `Parser` size on specific arches) - rust-lang#135878 (ci: use 8 core arm runner for dist-aarch64-linux) - rust-lang#135905 (Enable kernel sanitizers for aarch64-unknown-none-softfloat) r? `@ghost` `@rustbot` modify labels: rollup
Only assert the `Parser` size on specific arches The size of this struct depends on the alignment of `u128`, for example powerpc64le and s390x have align-8 and end up with only 280 bytes. Our 64-bit tier-1 arches are the same though, so let's just assert on those. r? nnethercote
Rollup of 8 pull requests Successful merges: - rust-lang#133154 (Reword resolve errors caused by likely missing crate in dep tree) - rust-lang#135366 (Enable `unreachable_pub` lint in `test` and `proc_macro` crates) - rust-lang#135638 (Make it possible to build GCC on CI) - rust-lang#135648 (support wasm inline assembly in `naked_asm!`) - rust-lang#135827 (CI: free disk with in-tree script instead of GitHub Action) - rust-lang#135855 (Only assert the `Parser` size on specific arches) - rust-lang#135878 (ci: use 8 core arm runner for dist-aarch64-linux) - rust-lang#135905 (Enable kernel sanitizers for aarch64-unknown-none-softfloat) r? `@ghost` `@rustbot` modify labels: rollup
Rollup of 8 pull requests Successful merges: - rust-lang#133154 (Reword resolve errors caused by likely missing crate in dep tree) - rust-lang#135366 (Enable `unreachable_pub` lint in `test` and `proc_macro` crates) - rust-lang#135638 (Make it possible to build GCC on CI) - rust-lang#135648 (support wasm inline assembly in `naked_asm!`) - rust-lang#135827 (CI: free disk with in-tree script instead of GitHub Action) - rust-lang#135855 (Only assert the `Parser` size on specific arches) - rust-lang#135878 (ci: use 8 core arm runner for dist-aarch64-linux) - rust-lang#135905 (Enable kernel sanitizers for aarch64-unknown-none-softfloat) r? `@ghost` `@rustbot` modify labels: rollup
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#135366 (Enable `unreachable_pub` lint in `test` and `proc_macro` crates) - rust-lang#135638 (Make it possible to build GCC on CI) - rust-lang#135648 (support wasm inline assembly in `naked_asm!`) - rust-lang#135827 (CI: free disk with in-tree script instead of GitHub Action) - rust-lang#135855 (Only assert the `Parser` size on specific arches) - rust-lang#135878 (ci: use 8 core arm runner for dist-aarch64-linux) - rust-lang#135905 (Enable kernel sanitizers for aarch64-unknown-none-softfloat) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#135855 - cuviper:parser-size, r=wesleywiser Only assert the `Parser` size on specific arches The size of this struct depends on the alignment of `u128`, for example powerpc64le and s390x have align-8 and end up with only 280 bytes. Our 64-bit tier-1 arches are the same though, so let's just assert on those. r? nnethercote
[beta] backports - Always force non-trimming of path in `unreachable_patterns` lint rust-lang#135310 - Add Profile Override for Non-Git Sources rust-lang#135433 - resolve symlinks of LLVM tool binaries before copying them rust-lang#135585 - add cache to `AmbiguityCausesVisitor` rust-lang#135618 - When LLVM's location discriminator value limit is exceeded, emit locations with dummy spans instead of dropping them entirely rust-lang#135643 - Temporarily bring back `Rvalue::Len` rust-lang#135709 - make it possible to use ci-rustc on tarball sources rust-lang#135722 - Remove test panic from File::open rust-lang#135837 - Only assert the `Parser` size on specific arches rust-lang#135855 r? cuviper
[beta] backports - Always force non-trimming of path in `unreachable_patterns` lint rust-lang#135310 - Add Profile Override for Non-Git Sources rust-lang#135433 - resolve symlinks of LLVM tool binaries before copying them rust-lang#135585 - add cache to `AmbiguityCausesVisitor` rust-lang#135618 - When LLVM's location discriminator value limit is exceeded, emit locations with dummy spans instead of dropping them entirely rust-lang#135643 - Temporarily bring back `Rvalue::Len` rust-lang#135709 - make it possible to use ci-rustc on tarball sources rust-lang#135722 - Remove test panic from File::open rust-lang#135837 - Only assert the `Parser` size on specific arches rust-lang#135855 - [beta] TRPL: more backward-compatible Edition changes rust-lang#135843 r? cuviper
[beta] backports - Always force non-trimming of path in `unreachable_patterns` lint rust-lang#135310 - Add Profile Override for Non-Git Sources rust-lang#135433 - resolve symlinks of LLVM tool binaries before copying them rust-lang#135585 - add cache to `AmbiguityCausesVisitor` rust-lang#135618 - When LLVM's location discriminator value limit is exceeded, emit locations with dummy spans instead of dropping them entirely rust-lang#135643 - make it possible to use ci-rustc on tarball sources rust-lang#135722 - Remove test panic from File::open rust-lang#135837 - Only assert the `Parser` size on specific arches rust-lang#135855 - [beta] TRPL: more backward-compatible Edition changes rust-lang#135843 r? cuviper
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#135366 (Enable `unreachable_pub` lint in `test` and `proc_macro` crates) - rust-lang#135638 (Make it possible to build GCC on CI) - rust-lang#135648 (support wasm inline assembly in `naked_asm!`) - rust-lang#135827 (CI: free disk with in-tree script instead of GitHub Action) - rust-lang#135855 (Only assert the `Parser` size on specific arches) - rust-lang#135878 (ci: use 8 core arm runner for dist-aarch64-linux) - rust-lang#135905 (Enable kernel sanitizers for aarch64-unknown-none-softfloat) r? `@ghost` `@rustbot` modify labels: rollup
The size of this struct depends on the alignment of
u128, for examplepowerpc64le and s390x have align-8 and end up with only 280 bytes. Our
64-bit tier-1 arches are the same though, so let's just assert on those.
r? nnethercote