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
Michael Bradshaw
642093e04b
Rename *[UI]LEB128 functions to *[UI]leb128
2024-06-23 04:30:12 +01:00
Pavel Verigo
d4d1efeb3e
std.compress.flate: fix panic when reading into empty buffer
2024-05-09 15:51:42 -07:00
Igor Anić
791c4491a7
compress.xz: remove unnecessary variable
...
`to_read.items.len is always zero when entering readBlock.
2024-03-13 18:43:36 +01:00
Igor Anić
54f882c4aa
compress.xz: make reader loop little more readable
...
No need to do same error check on two places. First return all
uncompressed data then on last read check error.
2024-03-13 18:41:20 +01:00
Igor Anić
a21f9b6d8b
compress.xz: remove copyForwards from tight loop
...
In the example from the issue #19052 to_read holds 213_315_584
uncompressed bytes. Calling read with small output results in many
shifts of that big buffer.
This removes need to shift to_read after each read.
2024-03-13 18:22:08 +01:00
Igor Anić
a06a305f97
zlib: fix missing comptime attribute
2024-03-04 09:53:01 +01:00
Igor Anić
c680b5d138
compress.zlib: add overshoot test cast
...
Using example from [zigimg](https://github.com/zigimg/zigimg/pull/164 ) project.
2024-03-04 09:53:01 +01:00
Igor Anić
f2508abfa6
flate: use 4 bytes lookahead for zlib
...
That ensures no bytes are left in the BitReader buffer after we reach
end of the stream.
2024-03-04 09:53:01 +01:00
Igor Anić
711281602a
flate: option to fill BitReader
...
fill(0) will fill all bytes in bit reader. If bit reader is aligned to
the byte, as it is at the end of the stream this ensures no overshoot
when reading footer. Footer is 4 bytes (zlib) or 8 bytes (gzip). For
zlib we will use 4 bytes BitReader and 8 for gzip. After align and fill
we will read those bytes and leave BitReader empty after that.
2024-03-04 09:53:01 +01:00
Igor Anić
8a963fd66e
flate: 32 bit BitReader
...
Extend BitReader to accept size of internal buffer. It can be u64 (only
option until now) or u32.
2024-03-04 09:53:01 +01:00
IntegratedQuantum
6e078883ee
Expand the memcpy fast path in flate.CircularBuffer.writeMatch to allow for overlapping regions.
2024-02-27 21:26:26 -08:00
Igor Anić
62ce753814
compress: activate tests in wasm32
...
They were disabled because insufficient stack size.
That is
[changed](d51aa9748f ) now.
2024-02-27 19:19:59 -08:00
dweiller
bd0dbb0a13
std.compress.zstd: enable tests for wasm32
...
The increase in stack size for wasm32 targets in commit d51aa9748f
allows the streaming decompressor to be tested on wasm32-wasi.
2024-02-27 11:37:48 -08:00
Ryan Liptak
726a1149e0
Change many test blocks to doctests/decltests
2024-02-26 15:18:31 -08:00