Skip to content

Commit 2375d7f

Browse files
authored
Rollup merge of #108308 - bjorn3:faster_bootstrap_build, r=albertlarsan68
Allow building serde and serde_derive in parallel This reduces build time of bootstrap by ~6s
2 parents 3fe4023 + fdbc3c2 commit 2375d7f

File tree

8 files changed

+11
-9
lines changed

8 files changed

+11
-9
lines changed

src/bootstrap/Cargo.lock

+1-3
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ dependencies = [
5050
"opener",
5151
"pretty_assertions",
5252
"serde",
53+
"serde_derive",
5354
"serde_json",
5455
"sha2",
5556
"sysinfo",
@@ -564,9 +565,6 @@ name = "serde"
564565
version = "1.0.137"
565566
source = "registry+https://github.com/rust-lang/crates.io-index"
566567
checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1"
567-
dependencies = [
568-
"serde_derive",
569-
]
570568

571569
[[package]]
572570
name = "serde_derive"

src/bootstrap/Cargo.toml

+4-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,10 @@ cc = "1.0.69"
3939
libc = "0.2"
4040
hex = "0.4"
4141
object = { version = "0.29.0", default-features = false, features = ["archive", "coff", "read_core", "unaligned"] }
42-
serde = { version = "1.0.8", features = ["derive"] }
42+
serde = "1.0.137"
43+
# Directly use serde_derive rather than through the derive feature of serde to allow building both
44+
# in parallel and to allow serde_json and toml to start building as soon as serde has been built.
45+
serde_derive = "1.0.137"
4346
serde_json = "1.0.2"
4447
sha2 = "0.10"
4548
tar = "0.4"

src/bootstrap/compile.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use std::path::{Path, PathBuf};
1616
use std::process::{Command, Stdio};
1717
use std::str;
1818

19-
use serde::Deserialize;
19+
use serde_derive::Deserialize;
2020

2121
use crate::builder::crate_description;
2222
use crate::builder::Cargo;

src/bootstrap/config.rs

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ use crate::flags::{Color, Flags};
2525
use crate::util::{exe, output, t};
2626
use once_cell::sync::OnceCell;
2727
use serde::{Deserialize, Deserializer};
28+
use serde_derive::Deserialize;
2829

2930
macro_rules! check_ci_llvm {
3031
($name:expr) => {

src/bootstrap/format.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ fn get_modified_rs_files(build: &Builder<'_>) -> Result<Option<Vec<String>>, Str
8787
get_git_modified_files(Some(&build.config.src), &vec!["rs"])
8888
}
8989

90-
#[derive(serde::Deserialize)]
90+
#[derive(serde_derive::Deserialize)]
9191
struct RustfmtConfig {
9292
ignore: Vec<String>,
9393
}

src/bootstrap/metadata.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::path::PathBuf;
22
use std::process::Command;
33

4-
use serde::Deserialize;
4+
use serde_derive::Deserialize;
55

66
use crate::cache::INTERNER;
77
use crate::util::output;

src/bootstrap/metrics.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use crate::builder::Step;
88
use crate::util::t;
99
use crate::Build;
10-
use serde::{Deserialize, Serialize};
10+
use serde_derive::{Deserialize, Serialize};
1111
use std::cell::RefCell;
1212
use std::fs::File;
1313
use std::io::BufWriter;

src/bootstrap/toolstate.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::builder::{Builder, RunConfig, ShouldRun, Step};
22
use crate::util::t;
3-
use serde::{Deserialize, Serialize};
3+
use serde_derive::{Deserialize, Serialize};
44
use std::collections::HashMap;
55
use std::env;
66
use std::fmt;

0 commit comments

Comments
 (0)