Skip to content

Commit 574f6be

Browse files
committed
Switch to Snappy compression for metadata
1 parent 814d252 commit 574f6be

File tree

6 files changed

+16
-11
lines changed

6 files changed

+16
-11
lines changed

Cargo.lock

+8-2
Original file line numberDiff line numberDiff line change
@@ -3344,7 +3344,6 @@ name = "rustc_codegen_llvm"
33443344
version = "0.0.0"
33453345
dependencies = [
33463346
"bitflags",
3347-
"flate2",
33483347
"libc",
33493348
"measureme",
33503349
"rustc-demangle",
@@ -3365,6 +3364,7 @@ dependencies = [
33653364
"rustc_span",
33663365
"rustc_target",
33673366
"smallvec 1.4.2",
3367+
"snap",
33683368
"tracing",
33693369
]
33703370

@@ -3689,7 +3689,6 @@ dependencies = [
36893689
name = "rustc_metadata"
36903690
version = "0.0.0"
36913691
dependencies = [
3692-
"flate2",
36933692
"libc",
36943693
"memmap",
36953694
"rustc_ast",
@@ -3707,6 +3706,7 @@ dependencies = [
37073706
"rustc_span",
37083707
"rustc_target",
37093708
"smallvec 1.4.2",
3709+
"snap",
37103710
"stable_deref_trait",
37113711
"tracing",
37123712
"winapi 0.3.9",
@@ -4377,6 +4377,12 @@ version = "1.4.2"
43774377
source = "registry+https://github.com/rust-lang/crates.io-index"
43784378
checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252"
43794379

4380+
[[package]]
4381+
name = "snap"
4382+
version = "1.0.1"
4383+
source = "registry+https://github.com/rust-lang/crates.io-index"
4384+
checksum = "da73c8f77aebc0e40c300b93f0a5f1bece7a248a36eee287d4e095f35c7b7d6e"
4385+
43804386
[[package]]
43814387
name = "socket2"
43824388
version = "0.3.12"

src/librustc_codegen_llvm/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ doctest = false
1212

1313
[dependencies]
1414
bitflags = "1.0"
15-
flate2 = "1.0"
1615
libc = "0.2"
1716
measureme = "0.7.1"
17+
snap = "1"
1818
tracing = "0.1"
1919
rustc_middle = { path = "../librustc_middle" }
2020
rustc-demangle = "0.1"

src/librustc_codegen_llvm/base.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,12 @@ pub fn write_compressed_metadata<'tcx>(
4545
metadata: &EncodedMetadata,
4646
llvm_module: &mut ModuleLlvm,
4747
) {
48-
use flate2::write::DeflateEncoder;
49-
use flate2::Compression;
48+
use snap::write::FrameEncoder;
5049
use std::io::Write;
5150

5251
let (metadata_llcx, metadata_llmod) = (&*llvm_module.llcx, llvm_module.llmod());
5352
let mut compressed = tcx.metadata_encoding_version();
54-
DeflateEncoder::new(&mut compressed, Compression::fast())
55-
.write_all(&metadata.raw_data)
56-
.unwrap();
53+
FrameEncoder::new(&mut compressed).write_all(&metadata.raw_data).unwrap();
5754

5855
let llmeta = common::bytes_in_context(metadata_llcx, &compressed);
5956
let llconst = common::struct_in_context(metadata_llcx, &[llmeta], false);

src/librustc_metadata/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ path = "lib.rs"
1010
doctest = false
1111

1212
[dependencies]
13-
flate2 = "1.0"
1413
libc = "0.2"
14+
snap = "1"
1515
tracing = "0.1"
1616
memmap = "0.7"
1717
smallvec = { version = "1.0", features = ["union", "may_dangle"] }

src/librustc_metadata/locator.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ use rustc_span::symbol::{sym, Symbol};
229229
use rustc_span::Span;
230230
use rustc_target::spec::{Target, TargetTriple};
231231

232-
use flate2::read::DeflateDecoder;
232+
use snap::read::FrameDecoder;
233233
use std::io::{Read, Result as IoResult, Write};
234234
use std::ops::Deref;
235235
use std::path::{Path, PathBuf};
@@ -766,7 +766,7 @@ fn get_metadata_section(
766766
let compressed_bytes = &buf[header_len..];
767767
debug!("inflating {} bytes of compressed metadata", compressed_bytes.len());
768768
let mut inflated = Vec::new();
769-
match DeflateDecoder::new(compressed_bytes).read_to_end(&mut inflated) {
769+
match FrameDecoder::new(compressed_bytes).read_to_end(&mut inflated) {
770770
Ok(_) => rustc_erase_owner!(OwningRef::new(inflated).map_owner_box()),
771771
Err(_) => {
772772
return Err(format!("failed to decompress metadata: {}", filename.display()));

src/tools/tidy/src/deps.rs

+2
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ const EXCEPTIONS: &[(&str, &str)] = &[
4242
("crossbeam-queue", "MIT/Apache-2.0 AND BSD-2-Clause"), // rls via rayon
4343
("arrayref", "BSD-2-Clause"), // cargo-miri/directories/.../rust-argon2 (redox)
4444
("instant", "BSD-3-Clause"), // rustc_driver/tracing-subscriber/parking_lot
45+
("snap", "BSD-3-Clause"), // rustc
4546
// FIXME: this dependency violates the documentation comment above:
4647
("fortanix-sgx-abi", "MPL-2.0"), // libstd but only for `sgx` target
4748
];
@@ -159,6 +160,7 @@ const PERMITTED_DEPENDENCIES: &[&str] = &[
159160
"serde_derive",
160161
"sha-1",
161162
"smallvec",
163+
"snap",
162164
"stable_deref_trait",
163165
"stacker",
164166
"syn",

0 commit comments

Comments
 (0)