-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Description
Zig Version
0.12.0-dev.1139+4d106076c
Steps to Reproduce and Observed Behavior
var lorem512 =
\\Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
\\Aenean commodo ligula eget dolor. Aenean massa.
\\Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
\\Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.
\\Nulla consequat massa quis enim. Donec pede justo, fringilla vel,
\\aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a,
\\venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.
\\Integer tincidunt. Cras dapibus. Vivamus e
;
std.debug.print("\n", .{});
var buff: [512]u8 = undefined;
var fbs = std.io.fixedBufferStream(&buff);
var comp = try deflate.compressor(std.testing.allocator, fbs.writer(), .{ .level = .best_compression });
defer comp.deinit();
var w = try comp.write(lorem512);
std.debug.print("bytes write:{d}\n", .{w});
try comp.flush();
const bytes_written = comp.bytesWritten();
std.debug.print("\ncompressed size:{x}\n", .{bytes_written});
std.debug.print("input {x}\n", .{std.fmt.fmtSliceHexLower(lorem512)});
std.debug.print("output {x}\n", .{std.fmt.fmtSliceHexLower(buff[0..bytes_written])});
there's something wrong with zip deflate. first byte doesnt end with (bit 1) but it should because it's final block according to spec. also there is a trail of 000000ffff. Zip deflate is a copy of Golang flate that produces same result as zig. Despite throwing an error linux zip binary seem to unpack it. Tried different deflator options, result is the same.
the result is
34903bcedc300c847b9f620e20e80ec19f668120657a46e23a0c244a16499f3fb0bd29090ce7f1fd188b3b645a74d4d1c68289833a7b42196a5c9c3d7881aa4cb122ba839b78c6f68d95495146efa30e34d9a31178677f9c323e8a4e6694b17d45878d226250f2710463b292cbef30b0a3d3ae62a86298b43c96b03afa50674b50b2c21e0b4baa946861e86119dbf7a15c700475bcb9892544f32545d8a05c1226b7c697c995c8913017bb44c71197dab8676c3fa3357a261f41fe94be1560959ef1c44cae8cbf613e12de4b7497ebede496b0519323d89fd033da0c27e79b4802ad12192fbdddfe3bac3f434b18c213a44f5e55d84109dbc97aa3319ce2c4e9f9c8b86b7654291e9fbde0786af5d1aef3b32e637ba9f3ce0b2e5aa4867ac6d72243a57931cff82527f50bfe3f000000ffff
linuz zip binary compression result is
3D 51 4B 4E C4 30 0C BD 8A 0F 50 F5 0E 68 D8 20 21 96 EC 4D EA 29 46 F9 4D 6C F7 FC BC B4 03 8B 48 F9 BC 9F 5F DE DB 90 42 DA 2D 0A 6D 2D B7 41 A6 4E 5C C4 17 4A AD 9A 24 17 0F 19 C4 9B 76 B5 A4 75 27 C9 EA 2B BD 48 15 AE 00 95 D2 B6 46 59 F7 C8 4C B2 8B 5F 42 FF 88 C2 66 BC D2 0D 0E D6 92 AA 51 65 6F 8F 10 EA 82 9D 7E 85 11 48 85 F7 8A B7 0D AB F3 F0 18 2A 15 B7 AD BA D8 02 8A 25 04 19 34 74 D3 14 19 9C 12 B6 D2 6B AB 92 E8 11 5C E8 8E 5C 40 46 F6 A1 49 05 36 92 16 78 E4 2C 53 63 1A 4A E0 62 88 2B B2 3C 62 A2 4D CA 4A 1F 91 11 FD 1C 17 4A 7E 25 3E 01 24 55 CB 9F 4B 97 4D E8 27 CC DB 42 F7 81 26 74 D2 0E C9 0B 71 56 E8 FB 65 79 44 EE E1 EC 72 B6 81 C7 91 62 A5 B7 7A 8A FD 09 8C EF 56 13 A6 08 00 B4 74 19 9B 82 CF 60 A3 B5 59 8B D1 A1 CE B2 5C 84 67 48 7C 92 26 8F E7 B0 98 E7 0A 55 5A 9E C7 E7 68 D3 CB 61 3D C8 B5 26 DD A2 E2 BB 6E 83 51 2E F7 59 F7 4A 9F 7A 70 99 BD FF 02
rust compression result it
[3d, 51, 4b, 4e, c4, 30, c, bd, 8a, f, 50, f5, e, 8, 36, 48, 88, 25, 7b, 93, 7a, 8a, 51, 7e, 13, db, 3d, 3f, 2f, ed, c, 8b, 48, f9, bc, 9f, 5f, 3e, da, 90, 42, da, 2d, a, 6d, 2d, b7, 41, a6, 4e, 5c, c4, 17, 4a, ad, 9a, 24, 17, f, 19, c4, 9b, 76, b5, a4, 75, 27, c9, ea, 2b, bd, 48, 15, ae, 0, 95, d2, b6, 46, 59, f7, c8, 4c, b2, 8b, 5f, 42, ff, 88, c2, 66, bc, d2, 2b, 1c, ac, 25, 55, a3, ca, de, ee, 21, d4, 5, 3b, fd, e, 23, 90, a, ef, 15, 6f, 1b, 56, e7, e1, 31, 54, 2a, 6e, 5b, 75, b1, 5, 14, 4b, 8, 32, 68, e8, a6, 29, 32, 38, 25, 6c, a5, b7, 56, 25, d1, 3d, b8, d0, d, b9, 80, 8c, ec, 43, 93, a, 6c, 24, 2d, f0, c8, 59, a6, c6, 34, 94, c0, c5, 10, 57, 64, b9, c7, 44, 9b, 94, 95, 3e, 23, 23, fa, 39, 2e, 94, fc, 4a, 7c, 2, 48, aa, 96, a7, 4b, 97, 4d, e8, 37, cc, db, 42, b7, 81, 26, 74, d2, e, c9, b, 71, 56, e8, fb, 65, 79, 44, ee, e1, ec, 72, b6, 81, c7, 91, 62, a5, f7, 7a, 8a, 3d, 5, c6, 4f, ab, 9, 53, 4, 0, 5a, ba, 8c, 4d, c1, 67, b0, d1, da, ac, c5, e8, 50, 67, 59, 2e, c2, 23, 24, 3e, 49, 93, c7, 63, 58, cc, 73, 85, 2a, 2d, cf, e3, 63, b4, e9, e5, b0, 1e, e4, 5a, 93, 6e, 51, f1, 5d, af, 83, 51, 2e, f7, 59, f7, 4a, 5f, 7a, 70, 99, bd, ff, 1]
Expected Behavior
Expected to have the same result as deflate with correct compression header.