Commit graph

10898 commits

Author SHA1 Message Date
Yann Collet
b352748e8a improved speed of the Sequences converter 2024-12-17 21:33:26 -08:00
Yann Collet
3ae0c8b984 added benchmark for ZSTD_convertBlockSequences_wBlockDelim() 2024-12-17 17:52:26 -08:00
Yann Collet
bb818c6510 change name to ZSTD_convertSequences*() 2024-12-17 14:24:29 -08:00
Yann Collet
589590368a attempt to silence Visual Studio warning about fopen() 2024-12-16 22:00:13 -08:00
Yann Collet
3436410769 fixed incorrect assert 2024-12-16 21:29:20 -08:00
Yann Collet
3ca1194931 removed fullbench-dll project from visual solutions 2024-12-16 21:23:30 -08:00
Yann Collet
b5c5eb575b update Visual Studio solutions 2024-12-16 21:05:24 -08:00
Yann Collet
75b0132c57 added tests
check that ZSTD_compressAndLiterals() also controls that the `srcSize` field is exact.
2024-12-16 20:44:06 -08:00
Yann Collet
e501a11019 ZSTD_compressSequencesAndLiterals() now supports multi-blocks frames. 2024-12-16 20:44:06 -08:00
Yann Collet
ce13aef75b change advanced parameter name: ZSTD_c_repcodeResolution
and updated its documentation.
Note: older name ZSTD_c_searchForExternalRepcodes remains supported via #define
2024-12-16 20:44:06 -08:00
Yann Collet
51424d594d minor: cleaner function parameter repcodeResolution 2024-12-16 20:44:06 -08:00
Yann Collet
9b2c22e43c updated documentation on validateSequence 2024-12-16 20:44:06 -08:00
Yann Collet
0e478180d5 optimization: instantiate specialized version without Sequence checking code
results in +4% compression speed,
thanks to removal of branches in the hot loop.
2024-12-16 20:44:06 -08:00
Yann Collet
c606b31167 minor optimization: only track seqPos->posInSrc when validateSequences is enabled
note: very minor saving, no performance impact
2024-12-16 20:44:06 -08:00
Yann Collet
db28a7a85f minor doc update 2024-12-16 20:44:06 -08:00
Yann Collet
ad3a3b2a4c minor optimization for ZSTD_compressSequencesAndLiterals()
does not need to track and update internal `litPtr`.
note: does not measurably impact performance.
2024-12-16 20:44:05 -08:00
Yann Collet
c808c37f1a minor conversion warning fix 2024-12-16 20:44:05 -08:00
Yann Collet
814ea4ec51 fullbench: new scenario: compressSequencesAndLiterals() 2024-12-16 20:44:05 -08:00
Yann Collet
9743acc4b6 fullbench: switch default generator to lorem ipsum
which creates more "realistic" scenarios than former compressible noise.

The legacy data generator remains accessible,
it is triggered when requesting an explicit compressibility factor (-P#).
2024-12-16 20:44:05 -08:00
Yann Collet
a27635dccc add the compressSequences() benchmark scenario 2024-12-16 20:44:05 -08:00
Yann Collet
3bcc097a95 fullbench: preparation functions are now in charge of allocating buffers 2024-12-16 20:44:05 -08:00
Yann Collet
58fd0d3a1f minor variable renaming 2024-12-16 20:44:05 -08:00
Yann Collet
07a8c79372 minor: test reordering 2024-12-16 20:44:05 -08:00
Yann Collet
061c6a5623 refactor fullbench
to make it easier to add new scenarios
2024-12-16 20:44:05 -08:00
Yann Collet
23ab161469 prepare fullbench for a refactor 2024-12-16 20:44:05 -08:00
Yann Collet
e94e23c67f added unit tests to ZSTD_compressSequencesAndLiterals()
seems to work as expected,
correctly control that `litSize` and `srcSize` are exactly correct.
2024-12-16 20:44:05 -08:00
Yann Collet
ac1e4bef10 produced ZSTD_compressSequencesAndLiterals() as a separate pipeline
only supports explicit delimiter mode, at least for the time being
2024-12-16 20:44:05 -08:00
Yann Collet
ed136a3379 minor: more accurate variable scope 2024-12-16 20:44:05 -08:00
Yann Collet
f0f8030870 ZSTD_SequenceCopier_f no returns the nb of bytes consumed from input
which feels much more natural
2024-12-16 20:44:05 -08:00
Yann Collet
41b1ed8262 codemod: ZSTD_cParamMode_e -> ZSTD_CParamMode_e 2024-12-16 20:44:05 -08:00
Yann Collet
fe315d0875 codemod: ZSTD_paramSwitch_e -> ZSTD_ParamSwitch_e 2024-12-16 20:44:05 -08:00
Yann Collet
92747abca3 minor simplification 2024-12-16 20:44:04 -08:00
Yann Collet
f381665c6a fix minor artifact error in single_file_lib 2024-12-16 20:44:04 -08:00
Yann Collet
157f4b61ae doc: add mention of frame checksum incompatibility
for new prototype ZSTD_compressSequencesAndLiterals()
2024-12-16 20:44:04 -08:00
Yann Collet
2c4fbd7274 codemod: ZSTD_blockCompressor -> ZSTD_BlockCompressor_f 2024-12-16 20:44:04 -08:00
Yann Collet
69ee2ca78b codemod: rawSeqStore_t -> RawSeqStore_t 2024-12-16 20:44:04 -08:00
Yann Collet
a39dace71e codemod: repcodes_t -> Repcodes_t 2024-12-16 20:44:04 -08:00
Yann Collet
4668f0c55a codemod: ZSTD_matchState_t -> ZSTD_MatchState_t 2024-12-16 20:44:04 -08:00
Yann Collet
05d200a651 codemod: ZSTD_buildSeqStore_e -> ZSTD_BuildSeqStore_e 2024-12-16 20:44:04 -08:00
Yann Collet
8c737fb8da codemod: ZSTD_sequencePosition -> ZSTD_SequencePosition 2024-12-16 20:44:04 -08:00
Yann Collet
c574b588e6 enable proper type 2024-12-16 20:44:04 -08:00
Yann Collet
8669333d32 fix proper type for .forceNonContiguous 2024-12-16 20:44:04 -08:00
Yann Collet
29a7408137 scope: ZSTD_copySequencesToSeqStore*() are private to ZSTD_compress.c
no need to publish them outside of this unit.
2024-12-16 20:44:04 -08:00
Yann Collet
086346eb1f minor: simplify ZSTD_selectSequenceCopier 2024-12-16 20:44:04 -08:00
Yann Collet
1abf4b5a94 codemod: ZSTD_sequenceCopier -> ZSTD_SequenceCopier_f 2024-12-16 20:44:04 -08:00
Yann Collet
2426d96ae6 codemod: ZSTD_sequenceFormat_e -> ZSTD_SequenceFormat_e
since it's a type name.

Note: in contrast with previous names, this one is on the Public API side.
So there is a #define, so that existing programs using ZSTD_sequenceFormat_e still work.
2024-12-16 20:44:04 -08:00
Yann Collet
7ab49659c6 created ZSTD_entropyCompressSeqStore_wExtLitBuffer()
can receive externally defined buffer of literals
2024-12-16 20:44:04 -08:00
Yann Collet
296e5b1258 ZSTD_entropyCompressSeqStore_internal() can accept an externally defined literals buffer 2024-12-16 20:44:03 -08:00
Yann Collet
7556771d29 codemod: ZSTD_defaultPolicy_e -> ZSTD_DefaultPolicy_e 2024-12-16 20:44:03 -08:00
Yann Collet
7e9dc06c06 codemod: symbolEncodingType_e -> SymbolEncodingType_e 2024-12-16 20:44:03 -08:00