rdi_make, rdi_from_pdb: complete next pass over new serialization/compression interface, including for new top-level-only name map data sections; eliminate determinism issues from string map build (task dispatch was busted)

This commit is contained in:
Ryan Fleury
2024-06-07 11:03:00 -07:00
parent b05cfa4b24
commit 2ff0abb91e
9 changed files with 483 additions and 313 deletions
+13 -4
View File
@@ -515,21 +515,30 @@ entry_point(CmdLine *cmd_line)
bake2srlz = p2r_bake(scratch.arena, convert2bake);
}
//- rjf: serialize
P2R_Serialize2File *srlz2file = 0;
ProfScope("serialize")
{
srlz2file = push_array(scratch.arena, P2R_Serialize2File, 1);
srlz2file->bundle = rdim_serialized_section_bundle_from_bake_results(&bake2srlz->bake_results);
}
//- rjf: compress
P2R_Bake2Serialize *bake2srlz_compressed = bake2srlz;
P2R_Serialize2File *srlz2file_compressed = srlz2file;
if(cmd_line_has_flag(cmd_line, str8_lit("compress"))) ProfScope("compress")
{
bake2srlz_compressed = p2r_compress(scratch.arena, bake2srlz);
srlz2file_compressed = push_array(scratch.arena, P2R_Serialize2File, 1);
srlz2file_compressed = p2r_compress(scratch.arena, srlz2file);
}
//- rjf: serialize
String8List serialize_out = rdim_serialized_strings_from_params_bake_section_list(scratch.arena, &convert2bake->bake_params, &bake2srlz_compressed->sections);
String8List blobs = rdim_file_blobs_from_section_bundle(scratch.arena, &srlz2file_compressed->bundle);
//- rjf: write
if(out_file_is_good)
{
U64 off = 0;
for(String8Node *n = serialize_out.first; n != 0; n = n->next)
for(String8Node *n = blobs.first; n != 0; n = n->next)
{
os_file_write(out_file, r1u64(off, off+n->string.size), n->string.str);
off += n->string.size;