Skip to content

Commit c78b11c

Browse files
committed
Auto merge of #153625 - JonathanBrouwer:rollup-MCQWKx8, r=JonathanBrouwer
Rollup of 5 pull requests Successful merges: - #153283 (feat(rustdoc-json): Add optional support for rkyv (de)serialization) - #153608 (ast_passes: unsupported arch w/ scalable vectors) - #153616 (Update `sysinfo` version to `0.38.4`) - #153619 (Update books) - #153624 (Ping fmease on parser modifications)
2 parents 2d76d9b + 8c539d4 commit c78b11c

34 files changed

Lines changed: 666 additions & 111 deletions

Cargo.lock

Lines changed: 130 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -376,12 +376,41 @@ version = "3.19.0"
376376
source = "registry+https://github.com/rust-lang/crates.io-index"
377377
checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
378378

379+
[[package]]
380+
name = "bytecheck"
381+
version = "0.8.2"
382+
source = "registry+https://github.com/rust-lang/crates.io-index"
383+
checksum = "0caa33a2c0edca0419d15ac723dff03f1956f7978329b1e3b5fdaaaed9d3ca8b"
384+
dependencies = [
385+
"bytecheck_derive",
386+
"ptr_meta",
387+
"rancor",
388+
"simdutf8",
389+
]
390+
391+
[[package]]
392+
name = "bytecheck_derive"
393+
version = "0.8.2"
394+
source = "registry+https://github.com/rust-lang/crates.io-index"
395+
checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9"
396+
dependencies = [
397+
"proc-macro2",
398+
"quote",
399+
"syn 2.0.110",
400+
]
401+
379402
[[package]]
380403
name = "bytecount"
381404
version = "0.6.9"
382405
source = "registry+https://github.com/rust-lang/crates.io-index"
383406
checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e"
384407

408+
[[package]]
409+
name = "bytes"
410+
version = "1.11.1"
411+
source = "registry+https://github.com/rust-lang/crates.io-index"
412+
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
413+
385414
[[package]]
386415
name = "camino"
387416
version = "1.2.1"
@@ -2476,6 +2505,26 @@ dependencies = [
24762505
name = "miropt-test-tools"
24772506
version = "0.1.0"
24782507

2508+
[[package]]
2509+
name = "munge"
2510+
version = "0.4.7"
2511+
source = "registry+https://github.com/rust-lang/crates.io-index"
2512+
checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c"
2513+
dependencies = [
2514+
"munge_macro",
2515+
]
2516+
2517+
[[package]]
2518+
name = "munge_macro"
2519+
version = "0.4.7"
2520+
source = "registry+https://github.com/rust-lang/crates.io-index"
2521+
checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931"
2522+
dependencies = [
2523+
"proc-macro2",
2524+
"quote",
2525+
"syn 2.0.110",
2526+
]
2527+
24792528
[[package]]
24802529
name = "new_debug_unreachable"
24812530
version = "1.0.6"
@@ -2622,9 +2671,9 @@ dependencies = [
26222671

26232672
[[package]]
26242673
name = "objc2-core-foundation"
2625-
version = "0.3.1"
2674+
version = "0.3.2"
26262675
source = "registry+https://github.com/rust-lang/crates.io-index"
2627-
checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166"
2676+
checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
26282677
dependencies = [
26292678
"bitflags",
26302679
]
@@ -2637,9 +2686,9 @@ checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33"
26372686

26382687
[[package]]
26392688
name = "objc2-io-kit"
2640-
version = "0.3.1"
2689+
version = "0.3.2"
26412690
source = "registry+https://github.com/rust-lang/crates.io-index"
2642-
checksum = "71c1c64d6120e51cd86033f67176b1cb66780c2efe34dec55176f77befd93c0a"
2691+
checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15"
26432692
dependencies = [
26442693
"libc",
26452694
"objc2-core-foundation",
@@ -3047,6 +3096,26 @@ dependencies = [
30473096
"cc",
30483097
]
30493098

3099+
[[package]]
3100+
name = "ptr_meta"
3101+
version = "0.3.1"
3102+
source = "registry+https://github.com/rust-lang/crates.io-index"
3103+
checksum = "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79"
3104+
dependencies = [
3105+
"ptr_meta_derive",
3106+
]
3107+
3108+
[[package]]
3109+
name = "ptr_meta_derive"
3110+
version = "0.3.1"
3111+
source = "registry+https://github.com/rust-lang/crates.io-index"
3112+
checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1"
3113+
dependencies = [
3114+
"proc-macro2",
3115+
"quote",
3116+
"syn 2.0.110",
3117+
]
3118+
30503119
[[package]]
30513120
name = "pulldown-cmark"
30523121
version = "0.11.3"
@@ -3092,6 +3161,15 @@ version = "5.3.0"
30923161
source = "registry+https://github.com/rust-lang/crates.io-index"
30933162
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
30943163

3164+
[[package]]
3165+
name = "rancor"
3166+
version = "0.1.1"
3167+
source = "registry+https://github.com/rust-lang/crates.io-index"
3168+
checksum = "a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee"
3169+
dependencies = [
3170+
"ptr_meta",
3171+
]
3172+
30953173
[[package]]
30963174
name = "rand"
30973175
version = "0.8.5"
@@ -3275,6 +3353,15 @@ dependencies = [
32753353
name = "remote-test-server"
32763354
version = "0.1.0"
32773355

3356+
[[package]]
3357+
name = "rend"
3358+
version = "0.5.3"
3359+
source = "registry+https://github.com/rust-lang/crates.io-index"
3360+
checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6"
3361+
dependencies = [
3362+
"bytecheck",
3363+
]
3364+
32783365
[[package]]
32793366
name = "replace-version-placeholder"
32803367
version = "0.1.0"
@@ -3283,6 +3370,36 @@ dependencies = [
32833370
"walkdir",
32843371
]
32853372

3373+
[[package]]
3374+
name = "rkyv"
3375+
version = "0.8.15"
3376+
source = "registry+https://github.com/rust-lang/crates.io-index"
3377+
checksum = "1a30e631b7f4a03dee9056b8ef6982e8ba371dd5bedb74d3ec86df4499132c70"
3378+
dependencies = [
3379+
"bytecheck",
3380+
"bytes",
3381+
"hashbrown 0.16.1",
3382+
"indexmap",
3383+
"munge",
3384+
"ptr_meta",
3385+
"rancor",
3386+
"rend",
3387+
"rkyv_derive",
3388+
"tinyvec",
3389+
"uuid",
3390+
]
3391+
3392+
[[package]]
3393+
name = "rkyv_derive"
3394+
version = "0.8.15"
3395+
source = "registry+https://github.com/rust-lang/crates.io-index"
3396+
checksum = "8100bb34c0a1d0f907143db3149e6b4eea3c33b9ee8b189720168e818303986f"
3397+
dependencies = [
3398+
"proc-macro2",
3399+
"quote",
3400+
"syn 2.0.110",
3401+
]
3402+
32863403
[[package]]
32873404
name = "run_make_support"
32883405
version = "0.0.0"
@@ -4790,6 +4907,7 @@ name = "rustdoc-json-types"
47904907
version = "0.1.0"
47914908
dependencies = [
47924909
"bincode",
4910+
"rkyv",
47934911
"rustc-hash 2.1.1",
47944912
"serde",
47954913
"serde_derive",
@@ -5128,6 +5246,12 @@ version = "0.3.7"
51285246
source = "registry+https://github.com/rust-lang/crates.io-index"
51295247
checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
51305248

5249+
[[package]]
5250+
name = "simdutf8"
5251+
version = "0.1.5"
5252+
source = "registry+https://github.com/rust-lang/crates.io-index"
5253+
checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
5254+
51315255
[[package]]
51325256
name = "similar"
51335257
version = "2.7.0"
@@ -5315,9 +5439,9 @@ dependencies = [
53155439

53165440
[[package]]
53175441
name = "sysinfo"
5318-
version = "0.38.2"
5442+
version = "0.38.4"
53195443
source = "registry+https://github.com/rust-lang/crates.io-index"
5320-
checksum = "1efc19935b4b66baa6f654ac7924c192f55b175c00a7ab72410fc24284dacda8"
5444+
checksum = "92ab6a2f8bfe508deb3c6406578252e491d299cbbf3bc0529ecc3313aee4a52f"
53215445
dependencies = [
53225446
"libc",
53235447
"objc2-core-foundation",

compiler/rustc_ast_passes/src/ast_validation.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1371,11 +1371,16 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
13711371
ItemKind::Struct(ident, generics, vdata) => {
13721372
self.with_tilde_const(Some(TildeConstReason::Struct { span: item.span }), |this| {
13731373
// Scalable vectors can only be tuple structs
1374-
let is_scalable_vector =
1375-
item.attrs.iter().any(|attr| attr.has_name(sym::rustc_scalable_vector));
1376-
if is_scalable_vector && !matches!(vdata, VariantData::Tuple(..)) {
1377-
this.dcx()
1378-
.emit_err(errors::ScalableVectorNotTupleStruct { span: item.span });
1374+
let scalable_vector_attr =
1375+
item.attrs.iter().find(|attr| attr.has_name(sym::rustc_scalable_vector));
1376+
if let Some(attr) = scalable_vector_attr {
1377+
if !matches!(vdata, VariantData::Tuple(..)) {
1378+
this.dcx()
1379+
.emit_err(errors::ScalableVectorNotTupleStruct { span: item.span });
1380+
}
1381+
if !self.sess.target.arch.supports_scalable_vectors() {
1382+
this.dcx().emit_err(errors::ScalableVectorBadArch { span: attr.span });
1383+
}
13791384
}
13801385

13811386
match vdata {

compiler/rustc_ast_passes/src/errors.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,3 +1133,10 @@ pub(crate) struct ScalableVectorNotTupleStruct {
11331133
#[primary_span]
11341134
pub span: Span,
11351135
}
1136+
1137+
#[derive(Diagnostic)]
1138+
#[diag("scalable vectors are not supported on this architecture")]
1139+
pub(crate) struct ScalableVectorBadArch {
1140+
#[primary_span]
1141+
pub span: Span,
1142+
}

compiler/rustc_target/src/spec/mod.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1956,6 +1956,19 @@ impl Arch {
19561956
| X86_64 | Xtensa => true,
19571957
}
19581958
}
1959+
1960+
/// Whether `#[rustc_scalable_vector]` is supported for a target architecture
1961+
pub fn supports_scalable_vectors(&self) -> bool {
1962+
use Arch::*;
1963+
1964+
match self {
1965+
AArch64 | RiscV32 | RiscV64 => true,
1966+
AmdGpu | Arm | Arm64EC | Avr | Bpf | CSky | Hexagon | LoongArch32 | LoongArch64
1967+
| M68k | Mips | Mips32r6 | Mips64 | Mips64r6 | Msp430 | Nvptx64 | PowerPC
1968+
| PowerPC64 | S390x | Sparc | Sparc64 | SpirV | Wasm32 | Wasm64 | X86 | X86_64
1969+
| Xtensa | Other(_) => false,
1970+
}
1971+
}
19591972
}
19601973

19611974
crate::target_spec_enum! {

src/bootstrap/Cargo.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -472,18 +472,18 @@ dependencies = [
472472

473473
[[package]]
474474
name = "objc2-core-foundation"
475-
version = "0.3.1"
475+
version = "0.3.2"
476476
source = "registry+https://github.com/rust-lang/crates.io-index"
477-
checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166"
477+
checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
478478
dependencies = [
479479
"bitflags",
480480
]
481481

482482
[[package]]
483483
name = "objc2-io-kit"
484-
version = "0.3.1"
484+
version = "0.3.2"
485485
source = "registry+https://github.com/rust-lang/crates.io-index"
486-
checksum = "71c1c64d6120e51cd86033f67176b1cb66780c2efe34dec55176f77befd93c0a"
486+
checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15"
487487
dependencies = [
488488
"libc",
489489
"objc2-core-foundation",
@@ -743,9 +743,9 @@ dependencies = [
743743

744744
[[package]]
745745
name = "sysinfo"
746-
version = "0.38.2"
746+
version = "0.38.4"
747747
source = "registry+https://github.com/rust-lang/crates.io-index"
748-
checksum = "1efc19935b4b66baa6f654ac7924c192f55b175c00a7ab72410fc24284dacda8"
748+
checksum = "92ab6a2f8bfe508deb3c6406578252e491d299cbbf3bc0529ecc3313aee4a52f"
749749
dependencies = [
750750
"libc",
751751
"memchr",

src/bootstrap/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ walkdir = "2.4"
5757
xz2 = "0.1"
5858

5959
# Dependencies needed by the build-metrics feature
60-
sysinfo = { version = "0.38.2", default-features = false, optional = true, features = ["system"] }
60+
sysinfo = { version = "0.38.4", default-features = false, optional = true, features = ["system"] }
6161

6262
# Dependencies needed by the `tracing` feature
6363
chrono = { version = "0.4", default-features = false, optional = true, features = ["now", "std"] }

src/bootstrap/src/core/build_steps/test.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3319,7 +3319,7 @@ impl Step for CrateRustdocJsonTypes {
33193319
builder.kind,
33203320
"src/rustdoc-json-types",
33213321
SourceType::InTree,
3322-
&[],
3322+
&["rkyv_0_8".to_owned()],
33233323
);
33243324

33253325
// FIXME: this looks very wrong, libtest doesn't accept `-C` arguments and the quotes are fishy.

0 commit comments

Comments
 (0)