Skip to content

Commit 3d07043

Browse files
committed
Update bincode
1 parent 03b83ff commit 3d07043

File tree

25 files changed

+169
-96
lines changed

25 files changed

+169
-96
lines changed

Cargo.lock

Lines changed: 25 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler-core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ dirs-next = "2"
2525
# SPDX license parsing
2626
spdx = "0"
2727
# Binary format de-serialization
28-
bincode = "1"
28+
bincode = { version = "2", features = ["alloc", "serde"] }
2929
# cross platform single glob and glob set matching
3030
globset = { version = "0", features = ["serde1"] }
3131
# Checksums

compiler-core/src/build/package_compiler.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -327,8 +327,11 @@ where
327327
self.io
328328
.write_bytes(&cache_files.meta_path, &info.to_binary())?;
329329

330-
let cache_inline = bincode::serialize(&module.ast.type_info.inline_functions)
331-
.expect("Failed to serialise inline functions");
330+
let cache_inline = bincode::serde::encode_to_vec(
331+
&module.ast.type_info.inline_functions,
332+
bincode::config::standard(),
333+
)
334+
.expect("Failed to serialise inline functions");
332335
self.io.write_bytes(&cache_files.inline_path, &cache_inline);
333336

334337
// Write warnings.
@@ -337,7 +340,8 @@ where
337340
// cannot fix directly.
338341
if self.cached_warnings.should_use() {
339342
let warnings = &module.ast.type_info.warnings;
340-
let data = bincode::serialize(warnings).expect("Serialise warnings");
343+
let data = bincode::serde::encode_to_vec(warnings, bincode::config::standard())
344+
.expect("Serialise warnings");
341345
self.io.write_bytes(&cache_files.warnings_path, &data)?;
342346
}
343347
}
@@ -696,11 +700,15 @@ pub(crate) struct CacheMetadata {
696700

697701
impl CacheMetadata {
698702
pub fn to_binary(&self) -> Vec<u8> {
699-
bincode::serialize(self).expect("Serializing cache info")
703+
bincode::serde::encode_to_vec(self, bincode::config::standard())
704+
.expect("Serializing cache info")
700705
}
701706

702707
pub fn from_binary(bytes: &[u8]) -> Result<Self, String> {
703-
bincode::deserialize(bytes).map_err(|e| e.to_string())
708+
match bincode::serde::decode_from_slice(bytes, bincode::config::standard()) {
709+
Ok((data, _)) => Ok(data),
710+
Err(e) => Err(e.to_string()),
711+
}
704712
}
705713
}
706714

compiler-core/src/build/package_loader.rs

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -188,25 +188,37 @@ where
188188

189189
if self.io.exists(&cache_files.inline_path) {
190190
let bytes = self.io.read_bytes(&cache_files.inline_path)?;
191-
module.inline_functions = bincode::deserialize(&bytes).map_err(|e| Error::FileIo {
192-
kind: FileKind::File,
193-
action: FileIoAction::Parse,
194-
path: cache_files.inline_path,
195-
err: Some(e.to_string()),
196-
})?;
191+
module.inline_functions =
192+
match bincode::serde::decode_from_slice(&bytes, bincode::config::standard()) {
193+
Ok((data, _)) => data,
194+
Err(e) => {
195+
return Err(Error::FileIo {
196+
kind: FileKind::File,
197+
action: FileIoAction::Parse,
198+
path: cache_files.inline_path,
199+
err: Some(e.to_string()),
200+
});
201+
}
202+
};
197203
}
198204

199205
// Load warnings
200206
if self.cached_warnings.should_use() {
201207
let path = cache_files.warnings_path;
202208
if self.io.exists(&path) {
203209
let bytes = self.io.read_bytes(&path)?;
204-
module.warnings = bincode::deserialize(&bytes).map_err(|e| Error::FileIo {
205-
kind: FileKind::File,
206-
action: FileIoAction::Parse,
207-
path,
208-
err: Some(e.to_string()),
209-
})?;
210+
module.warnings =
211+
match bincode::serde::decode_from_slice(&bytes, bincode::config::standard()) {
212+
Ok((data, _)) => data,
213+
Err(e) => {
214+
return Err(Error::FileIo {
215+
kind: FileKind::File,
216+
action: FileIoAction::Parse,
217+
path,
218+
err: Some(e.to_string()),
219+
});
220+
}
221+
};
210222
}
211223
}
212224

test-package-compiler/src/snapshots/test_package_compiler__generated_tests__alias_unqualified_import.snap

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
---
22
source: test-package-compiler/src/generated_tests.rs
3+
assertion_line: 8
34
expression: "./cases/alias_unqualified_import"
5+
snapshot_kind: text
46
---
57
//// /out/lib/the_package/_gleam_artefacts/one.cache
68
<.cache binary>
79

810
//// /out/lib/the_package/_gleam_artefacts/one.cache_inline
9-
<8 byte binary>
11+
<1 byte binary>
1012

1113
//// /out/lib/the_package/_gleam_artefacts/one.cache_meta
12-
<85 byte binary>
14+
<29 byte binary>
1315

1416
//// /out/lib/the_package/_gleam_artefacts/one.erl
1517
-module(one).
@@ -30,10 +32,10 @@ id(X) ->
3032
<.cache binary>
3133

3234
//// /out/lib/the_package/_gleam_artefacts/two.cache_inline
33-
<8 byte binary>
35+
<1 byte binary>
3436

3537
//// /out/lib/the_package/_gleam_artefacts/two.cache_meta
36-
<96 byte binary>
38+
<33 byte binary>
3739

3840
//// /out/lib/the_package/_gleam_artefacts/two.erl
3941
-module(two).

test-package-compiler/src/snapshots/test_package_compiler__generated_tests__empty_module_warning.snap

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ snapshot_kind: text
88
<.cache binary>
99

1010
//// /out/lib/the_package/_gleam_artefacts/empty.cache_inline
11-
<8 byte binary>
11+
<1 byte binary>
1212

1313
//// /out/lib/the_package/_gleam_artefacts/empty.cache_meta
14-
<53 byte binary>
14+
<21 byte binary>
1515

1616
//// /out/lib/the_package/_gleam_artefacts/empty.erl
1717
-module(empty).
@@ -21,10 +21,10 @@ snapshot_kind: text
2121
<.cache binary>
2222

2323
//// /out/lib/the_package/_gleam_artefacts/internal.cache_inline
24-
<8 byte binary>
24+
<1 byte binary>
2525

2626
//// /out/lib/the_package/_gleam_artefacts/internal.cache_meta
27-
<69 byte binary>
27+
<25 byte binary>
2828

2929
//// /out/lib/the_package/_gleam_artefacts/internal.erl
3030
-module(internal).
@@ -51,10 +51,10 @@ private_function() ->
5151
<.cache binary>
5252

5353
//// /out/lib/the_package/_gleam_artefacts/private.cache_inline
54-
<8 byte binary>
54+
<1 byte binary>
5555

5656
//// /out/lib/the_package/_gleam_artefacts/private.cache_meta
57-
<65 byte binary>
57+
<24 byte binary>
5858

5959
//// /out/lib/the_package/_gleam_artefacts/private.erl
6060
-module(private).
@@ -64,10 +64,10 @@ private_function() ->
6464
<.cache binary>
6565

6666
//// /out/lib/the_package/_gleam_artefacts/public.cache_inline
67-
<8 byte binary>
67+
<1 byte binary>
6868

6969
//// /out/lib/the_package/_gleam_artefacts/public.cache_meta
70-
<65 byte binary>
70+
<24 byte binary>
7171

7272
//// /out/lib/the_package/_gleam_artefacts/public.erl
7373
-module(public).

test-package-compiler/src/snapshots/test_package_compiler__generated_tests__erlang_app_generation.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ snapshot_kind: text
88
<.cache binary>
99

1010
//// /out/lib/the_package/_gleam_artefacts/main.cache_inline
11-
<8 byte binary>
11+
<1 byte binary>
1212

1313
//// /out/lib/the_package/_gleam_artefacts/main.cache_meta
14-
<57 byte binary>
14+
<22 byte binary>
1515

1616
//// /out/lib/the_package/_gleam_artefacts/main.erl
1717
-module(main).

test-package-compiler/src/snapshots/test_package_compiler__generated_tests__erlang_app_generation_with_argument.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ snapshot_kind: text
88
<.cache binary>
99

1010
//// /out/lib/the_package/_gleam_artefacts/main.cache_inline
11-
<8 byte binary>
11+
<1 byte binary>
1212

1313
//// /out/lib/the_package/_gleam_artefacts/main.cache_meta
14-
<57 byte binary>
14+
<22 byte binary>
1515

1616
//// /out/lib/the_package/_gleam_artefacts/main.erl
1717
-module(main).

test-package-compiler/src/snapshots/test_package_compiler__generated_tests__erlang_bug_752.snap

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
---
22
source: test-package-compiler/src/generated_tests.rs
3+
assertion_line: 96
34
expression: "./cases/erlang_bug_752"
5+
snapshot_kind: text
46
---
57
//// /out/lib/the_package/_gleam_artefacts/one.cache
68
<.cache binary>
79

810
//// /out/lib/the_package/_gleam_artefacts/one.cache_inline
9-
<8 byte binary>
11+
<1 byte binary>
1012

1113
//// /out/lib/the_package/_gleam_artefacts/one.cache_meta
12-
<65 byte binary>
14+
<24 byte binary>
1315

1416
//// /out/lib/the_package/_gleam_artefacts/one.erl
1517
-module(one).
@@ -26,10 +28,10 @@ expression: "./cases/erlang_bug_752"
2628
<.cache binary>
2729

2830
//// /out/lib/the_package/_gleam_artefacts/two.cache_inline
29-
<8 byte binary>
31+
<1 byte binary>
3032

3133
//// /out/lib/the_package/_gleam_artefacts/two.cache_meta
32-
<92 byte binary>
34+
<32 byte binary>
3335

3436
//// /out/lib/the_package/_gleam_artefacts/two.erl
3537
-module(two).

test-package-compiler/src/snapshots/test_package_compiler__generated_tests__erlang_empty.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ snapshot_kind: text
88
<.cache binary>
99

1010
//// /out/lib/the_package/_gleam_artefacts/empty.cache_inline
11-
<8 byte binary>
11+
<1 byte binary>
1212

1313
//// /out/lib/the_package/_gleam_artefacts/empty.cache_meta
14-
<57 byte binary>
14+
<22 byte binary>
1515

1616
//// /out/lib/the_package/_gleam_artefacts/empty.erl
1717
-module(empty).

0 commit comments

Comments
 (0)