Andrew Kelley
6eac56caf7
std.compress.flate.Decompress: allow users to swap out Writer
2025-07-31 22:10:11 -07:00
Andrew Kelley
c9ff068391
std.compress: fix discard impl and flate error detection
2025-07-31 22:10:11 -07:00
Andrew Kelley
111305678c
std: match readVec fn prototype exactly
...
this is not necessary according to zig language, but works around a flaw
in the C backend
2025-07-31 22:10:11 -07:00
Andrew Kelley
4c04835a08
std.compress.zstd.Decompress: implement discard and readVec
2025-07-31 22:10:11 -07:00
Andrew Kelley
84e4343b0c
fix test failures by adding readVec
2025-07-31 22:10:11 -07:00
Andrew Kelley
afe9f3a9ec
std.compress.flate.Decompress: implement readVec and discard
2025-07-31 22:10:11 -07:00
Andrew Kelley
6bcced31a0
fix 32-bit compilation
2025-07-31 22:10:11 -07:00
Andrew Kelley
42b10f08cc
std.compress.flate.Decompress: delete bad unit tests
...
if I remove the last input byte from "don't read past deflate stream's
end" (on master branch), the test fails with error.EndOfStream. what,
then, is it supposed to be testing?
2025-07-31 22:10:11 -07:00
Andrew Kelley
5f790464b0
std.compress.flate.Decompress: hashing is out of scope
...
This API provides the data; applications can verify their own checksums.
2025-07-31 22:10:11 -07:00
Andrew Kelley
4741a16d9a
putting stuff back does not require mutation
2025-07-31 22:10:11 -07:00
Andrew Kelley
05ce1f99a6
compiler: update to new flate API
2025-07-31 22:10:11 -07:00
Andrew Kelley
2569f4ff85
simplify tossBitsEnding
2025-07-31 22:10:11 -07:00
Andrew Kelley
5bc63794cc
fix takeBitsEnding
2025-07-31 22:10:11 -07:00
Andrew Kelley
63f496c4f9
make takeBits deal with integers only
2025-07-31 22:10:11 -07:00
Andrew Kelley
c00fb86db6
fix peekBitsEnding
2025-07-31 22:10:11 -07:00
Andrew Kelley
8ab91a6fe9
error.EndOfStream disambiguation
2025-07-31 22:10:11 -07:00
Andrew Kelley
f644f40702
implement tossBitsEnding
2025-07-31 22:10:11 -07:00
Andrew Kelley
2d8d0dd9b0
std.compress.flate.Decompress: unfuck the test suite
2025-07-31 22:10:11 -07:00
Andrew Kelley
c684b21b4f
simplify test cases
2025-07-31 22:10:11 -07:00
Andrew Kelley
ac4fbb427b
std.compress.flate.Decompress: don't compute checksums
...
These have no business being in-bound; simply provide the expected
values to user code for maximum flexibility.
2025-07-31 22:10:11 -07:00
Andrew Kelley
5f571f53d6
refactor gzip test cases
...
zig newbies love using for loops in unit tests
2025-07-31 22:10:11 -07:00
Andrew Kelley
e73ca2444e
std.compress.flate.Decompress: implement peekBitsEnding and writeMatch
2025-07-31 22:10:11 -07:00
Andrew Kelley
7bf91d705c
fix bit read not at eof
2025-07-31 22:10:11 -07:00
Andrew Kelley
73e5594c78
std.compress.flate.Decompress: fix bit read at eof
2025-07-31 22:10:11 -07:00
Andrew Kelley
9c8cb777d4
std.compress.flate.Decompress: implement more bit reading
2025-07-31 22:10:11 -07:00
Andrew Kelley
6509fa1cf3
std.compress.flate.Decompress: passing basic test case
2025-07-31 22:10:11 -07:00
Andrew Kelley
88ca750209
std.compress.flate.Decompress: add rebase impl
2025-07-31 22:10:11 -07:00
Andrew Kelley
1b43551190
std.Io: remove BitWriter
2025-07-31 22:10:11 -07:00
Andrew Kelley
824c157e0c
std.compress.flate: finish reorganizing
2025-07-31 22:10:11 -07:00
Andrew Kelley
a4f05a4588
delete flate implementation
2025-07-31 22:10:11 -07:00
Andrew Kelley
83513ade35
std.compress: rework flate to new I/O API
2025-07-31 22:10:11 -07:00
Andrew Kelley
cf7a28febb
std.Io.Reader: introduce readVec back into the VTable
...
simplifies and fixes things
addresses a subset of #24608
2025-07-30 09:26:34 -07:00
Andrew Kelley
1fcaf90dd3
std.Io.Reader: make fillUnbuffered respect prexisting buffer
...
addresses only one usage pattern in #24608
2025-07-29 23:10:50 -07:00
Andrew Kelley
bb29846732
std.compress.xz: eliminate dependency on std.Io.bitReader
2025-07-27 22:08:52 -07:00
Andrew Kelley
04614d6ea1
std.Io.Reader: add rebase to the vtable
...
This eliminates a footgun and special case handling with fixed buffers,
as well as allowing decompression streams to keep a window in the output
buffer.
2025-07-26 20:00:25 -07:00
Andrew Kelley
8752d80c84
std.compress.zstd.Decompress: fix bytes_written tracking
2025-07-25 14:15:33 -07:00
Andrew Kelley
7f43f78b5b
std.compress.zstd: keep frame state between blocks
2025-07-25 14:15:33 -07:00
Andrew Kelley
13e08ea6f0
std.compress.zstd: fix endianness issue
...
instead of manually bitcast, use the handy dandy takeStruct function.
2025-07-25 14:15:33 -07:00
Andrew Kelley
ee4f5b3f92
std.compress.zstd: respect the window length
2025-07-25 14:15:33 -07:00
Andrew Kelley
3687eada6a
std: rework zstd for new I/O API
...
This passes tests but it doesn't provide as big a window size as is
required to decompress larger streams.
The next commit in this branch will work towards that, without
introducing an additional buffer.
2025-07-25 14:15:33 -07:00
Andrew Kelley
9f27d770a1
std.io: deprecated Reader/Writer; introduce new API
2025-07-07 22:43:51 -07:00
dweiller
d034f2a87b
std.compress.zstd: ensure window size fits into usize
2025-03-31 17:22:44 +11:00
dweiller
7a7d6a02a5
std.compress.zstd: fix OOB access in literal decode
...
When decoding the literals section of a compressed block, the length of
the regenerated size of the literals must be checked against the buffer
literals are decoded into.
2025-03-31 17:22:44 +11:00
mlugg
8e074f1549
std: remove dependencies on legacy coercion
2025-02-26 00:17:09 +00:00
Shun Sakai
a3ad0a2f77
std.compress.flate.Lookup: Replace invisible doc comments with top-level doc comments
...
I think it would be better if this invisible doc comments is top-level
doc comments rather than doc comments. Because it is at the start of a
source file. This makes the doc comments visible.
2025-01-22 23:34:57 +09:00
Andrew Kelley
09d021c908
add test coverage for previous commit
2025-01-20 21:41:30 -08:00
Kamil T
d50bae4da9
Fix memcpy alias bug in std.compress.lzma
2025-01-20 21:41:12 -08:00
tgschultz
ba569bb8e9
Rewrite bit_reader and bit_writer to take advantage of current zig semantics and enhance readability ( #21689 )
...
Co-authored-by: Tanner Schultz <tgschultz@tgschultz-dl.tail7ba92.ts.net>
2024-10-13 18:44:42 -07:00
mlugg
0fe3fd01dd
std: update std.builtin.Type fields to follow naming conventions
...
The compiler actually doesn't need any functional changes for this: Sema
does reification based on the tag indices of `std.builtin.Type` already!
So, no zig1.wasm update is necessary.
This change is necessary to disallow name clashes between fields and
decls on a type, which is a prerequisite of #9938 .
2024-08-28 08:39:59 +01:00
Jora Troosh
13070448f5
std: fix typos ( #20560 )
2024-07-09 14:25:42 -07:00