zstdlib 0.14.0-x86-linux → 0.15.0-x86-linux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +5 -0
  3. data/ext/zstdlib_c/extconf.rb +1 -1
  4. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/bits.h +92 -87
  5. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/bitstream.h +26 -29
  6. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/compiler.h +36 -22
  7. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/cpu.h +1 -1
  8. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/debug.h +0 -9
  9. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/error_private.c +1 -0
  10. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/error_private.h +0 -10
  11. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/fse.h +2 -17
  12. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/fse_decompress.c +2 -0
  13. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/huf.h +0 -9
  14. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/mem.h +7 -11
  15. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/pool.h +0 -9
  16. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/portability_macros.h +22 -9
  17. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/threading.h +0 -8
  18. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/xxhash.h +93 -19
  19. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/zstd_deps.h +12 -0
  20. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/zstd_internal.h +1 -69
  21. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/zstd_trace.h +5 -12
  22. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/hist.c +10 -0
  23. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/hist.h +7 -0
  24. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress.c +1057 -367
  25. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_internal.h +227 -125
  26. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_literals.c +1 -1
  27. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_sequences.c +7 -7
  28. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_sequences.h +7 -6
  29. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_superblock.c +17 -17
  30. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_cwksp.h +41 -24
  31. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_double_fast.c +58 -50
  32. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_double_fast.h +4 -12
  33. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_fast.c +91 -74
  34. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_fast.h +4 -12
  35. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_lazy.c +64 -64
  36. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_lazy.h +30 -39
  37. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_ldm.c +48 -33
  38. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_ldm.h +6 -14
  39. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_opt.c +55 -51
  40. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_opt.h +8 -16
  41. data/ext/zstdlib_c/zstd-1.5.7/lib/compress/zstd_preSplit.c +238 -0
  42. data/ext/zstdlib_c/zstd-1.5.7/lib/compress/zstd_preSplit.h +33 -0
  43. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstdmt_compress.c +134 -93
  44. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstdmt_compress.h +4 -15
  45. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/huf_decompress_amd64.S +10 -3
  46. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_decompress.c +14 -11
  47. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_decompress_block.c +6 -12
  48. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_decompress_internal.h +5 -5
  49. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/zdict.h +15 -8
  50. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/zstd.h +241 -132
  51. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/zstd_errors.h +1 -8
  52. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzwrite.c +2 -1
  53. data/lib/2.4/zstdlib_c.so +0 -0
  54. data/lib/2.5/zstdlib_c.so +0 -0
  55. data/lib/2.6/zstdlib_c.so +0 -0
  56. data/lib/2.7/zstdlib_c.so +0 -0
  57. data/lib/3.0/zstdlib_c.so +0 -0
  58. data/lib/3.1/zstdlib_c.so +0 -0
  59. data/lib/3.2/zstdlib_c.so +0 -0
  60. data/lib/3.3/zstdlib_c.so +0 -0
  61. data/lib/3.4/zstdlib_c.so +0 -0
  62. metadata +75 -73
  63. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/allocations.h +0 -0
  64. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/debug.c +0 -0
  65. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/entropy_common.c +0 -0
  66. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/pool.c +0 -0
  67. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/threading.c +0 -0
  68. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/xxhash.c +0 -0
  69. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/zstd_common.c +0 -0
  70. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/clevels.h +0 -0
  71. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/fse_compress.c +0 -0
  72. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/huf_compress.c +0 -0
  73. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_literals.h +0 -0
  74. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_superblock.h +0 -0
  75. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_ldm_geartab.h +0 -0
  76. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/huf_decompress.c +0 -0
  77. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_ddict.c +0 -0
  78. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_ddict.h +0 -0
  79. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_decompress_block.h +0 -0
  80. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzclose.c +0 -0
  81. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzcompatibility.h +0 -0
  82. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzguts.h +0 -0
  83. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzlib.c +0 -0
  84. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzread.c +0 -0
  85. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/zstd_zlibwrapper.c +0 -0
  86. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/zstd_zlibwrapper.h +5 -5
@@ -11,10 +11,6 @@
11
11
  #ifndef ZSTD_LAZY_H
12
12
  #define ZSTD_LAZY_H
13
13
 
14
- #if defined (__cplusplus)
15
- extern "C" {
16
- #endif
17
-
18
14
  #include "zstd_compress_internal.h"
19
15
 
20
16
  /**
@@ -31,38 +27,38 @@ extern "C" {
31
27
  || !defined(ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR) \
32
28
  || !defined(ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR) \
33
29
  || !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR)
34
- U32 ZSTD_insertAndFindFirstIndex(ZSTD_matchState_t* ms, const BYTE* ip);
35
- void ZSTD_row_update(ZSTD_matchState_t* const ms, const BYTE* ip);
30
+ U32 ZSTD_insertAndFindFirstIndex(ZSTD_MatchState_t* ms, const BYTE* ip);
31
+ void ZSTD_row_update(ZSTD_MatchState_t* const ms, const BYTE* ip);
36
32
 
37
- void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_matchState_t* ms, const BYTE* const ip);
33
+ void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_MatchState_t* ms, const BYTE* const ip);
38
34
 
39
35
  void ZSTD_preserveUnsortedMark (U32* const table, U32 const size, U32 const reducerValue); /*! used in ZSTD_reduceIndex(). preemptively increase value of ZSTD_DUBT_UNSORTED_MARK */
40
36
  #endif
41
37
 
42
38
  #ifndef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR
43
39
  size_t ZSTD_compressBlock_greedy(
44
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
40
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
45
41
  void const* src, size_t srcSize);
46
42
  size_t ZSTD_compressBlock_greedy_row(
47
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
43
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
48
44
  void const* src, size_t srcSize);
49
45
  size_t ZSTD_compressBlock_greedy_dictMatchState(
50
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
46
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
51
47
  void const* src, size_t srcSize);
52
48
  size_t ZSTD_compressBlock_greedy_dictMatchState_row(
53
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
49
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
54
50
  void const* src, size_t srcSize);
55
51
  size_t ZSTD_compressBlock_greedy_dedicatedDictSearch(
56
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
52
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
57
53
  void const* src, size_t srcSize);
58
54
  size_t ZSTD_compressBlock_greedy_dedicatedDictSearch_row(
59
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
55
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
60
56
  void const* src, size_t srcSize);
61
57
  size_t ZSTD_compressBlock_greedy_extDict(
62
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
58
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
63
59
  void const* src, size_t srcSize);
64
60
  size_t ZSTD_compressBlock_greedy_extDict_row(
65
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
61
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
66
62
  void const* src, size_t srcSize);
67
63
 
68
64
  #define ZSTD_COMPRESSBLOCK_GREEDY ZSTD_compressBlock_greedy
@@ -86,28 +82,28 @@ size_t ZSTD_compressBlock_greedy_extDict_row(
86
82
 
87
83
  #ifndef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR
88
84
  size_t ZSTD_compressBlock_lazy(
89
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
85
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
90
86
  void const* src, size_t srcSize);
91
87
  size_t ZSTD_compressBlock_lazy_row(
92
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
88
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
93
89
  void const* src, size_t srcSize);
94
90
  size_t ZSTD_compressBlock_lazy_dictMatchState(
95
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
91
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
96
92
  void const* src, size_t srcSize);
97
93
  size_t ZSTD_compressBlock_lazy_dictMatchState_row(
98
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
94
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
99
95
  void const* src, size_t srcSize);
100
96
  size_t ZSTD_compressBlock_lazy_dedicatedDictSearch(
101
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
97
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
102
98
  void const* src, size_t srcSize);
103
99
  size_t ZSTD_compressBlock_lazy_dedicatedDictSearch_row(
104
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
100
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
105
101
  void const* src, size_t srcSize);
106
102
  size_t ZSTD_compressBlock_lazy_extDict(
107
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
103
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
108
104
  void const* src, size_t srcSize);
109
105
  size_t ZSTD_compressBlock_lazy_extDict_row(
110
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
106
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
111
107
  void const* src, size_t srcSize);
112
108
 
113
109
  #define ZSTD_COMPRESSBLOCK_LAZY ZSTD_compressBlock_lazy
@@ -131,28 +127,28 @@ size_t ZSTD_compressBlock_lazy_extDict_row(
131
127
 
132
128
  #ifndef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR
133
129
  size_t ZSTD_compressBlock_lazy2(
134
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
130
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
135
131
  void const* src, size_t srcSize);
136
132
  size_t ZSTD_compressBlock_lazy2_row(
137
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
133
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
138
134
  void const* src, size_t srcSize);
139
135
  size_t ZSTD_compressBlock_lazy2_dictMatchState(
140
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
136
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
141
137
  void const* src, size_t srcSize);
142
138
  size_t ZSTD_compressBlock_lazy2_dictMatchState_row(
143
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
139
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
144
140
  void const* src, size_t srcSize);
145
141
  size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch(
146
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
142
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
147
143
  void const* src, size_t srcSize);
148
144
  size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch_row(
149
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
145
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
150
146
  void const* src, size_t srcSize);
151
147
  size_t ZSTD_compressBlock_lazy2_extDict(
152
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
148
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
153
149
  void const* src, size_t srcSize);
154
150
  size_t ZSTD_compressBlock_lazy2_extDict_row(
155
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
151
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
156
152
  void const* src, size_t srcSize);
157
153
 
158
154
  #define ZSTD_COMPRESSBLOCK_LAZY2 ZSTD_compressBlock_lazy2
@@ -176,13 +172,13 @@ size_t ZSTD_compressBlock_lazy2_extDict_row(
176
172
 
177
173
  #ifndef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR
178
174
  size_t ZSTD_compressBlock_btlazy2(
179
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
175
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
180
176
  void const* src, size_t srcSize);
181
177
  size_t ZSTD_compressBlock_btlazy2_dictMatchState(
182
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
178
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
183
179
  void const* src, size_t srcSize);
184
180
  size_t ZSTD_compressBlock_btlazy2_extDict(
185
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
181
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
186
182
  void const* src, size_t srcSize);
187
183
 
188
184
  #define ZSTD_COMPRESSBLOCK_BTLAZY2 ZSTD_compressBlock_btlazy2
@@ -194,9 +190,4 @@ size_t ZSTD_compressBlock_btlazy2_extDict(
194
190
  #define ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT NULL
195
191
  #endif
196
192
 
197
-
198
- #if defined (__cplusplus)
199
- }
200
- #endif
201
-
202
193
  #endif /* ZSTD_LAZY_H */
@@ -16,7 +16,7 @@
16
16
  #include "zstd_double_fast.h" /* ZSTD_fillDoubleHashTable() */
17
17
  #include "zstd_ldm_geartab.h"
18
18
 
19
- #define LDM_BUCKET_SIZE_LOG 3
19
+ #define LDM_BUCKET_SIZE_LOG 4
20
20
  #define LDM_MIN_MATCH_LENGTH 64
21
21
  #define LDM_HASH_RLOG 7
22
22
 
@@ -133,21 +133,35 @@ done:
133
133
  }
134
134
 
135
135
  void ZSTD_ldm_adjustParameters(ldmParams_t* params,
136
- ZSTD_compressionParameters const* cParams)
136
+ const ZSTD_compressionParameters* cParams)
137
137
  {
138
138
  params->windowLog = cParams->windowLog;
139
139
  ZSTD_STATIC_ASSERT(LDM_BUCKET_SIZE_LOG <= ZSTD_LDM_BUCKETSIZELOG_MAX);
140
140
  DEBUGLOG(4, "ZSTD_ldm_adjustParameters");
141
- if (!params->bucketSizeLog) params->bucketSizeLog = LDM_BUCKET_SIZE_LOG;
142
- if (!params->minMatchLength) params->minMatchLength = LDM_MIN_MATCH_LENGTH;
141
+ if (params->hashRateLog == 0) {
142
+ if (params->hashLog > 0) {
143
+ /* if params->hashLog is set, derive hashRateLog from it */
144
+ assert(params->hashLog <= ZSTD_HASHLOG_MAX);
145
+ if (params->windowLog > params->hashLog) {
146
+ params->hashRateLog = params->windowLog - params->hashLog;
147
+ }
148
+ } else {
149
+ assert(1 <= (int)cParams->strategy && (int)cParams->strategy <= 9);
150
+ /* mapping from [fast, rate7] to [btultra2, rate4] */
151
+ params->hashRateLog = 7 - (cParams->strategy/3);
152
+ }
153
+ }
143
154
  if (params->hashLog == 0) {
144
- params->hashLog = MAX(ZSTD_HASHLOG_MIN, params->windowLog - LDM_HASH_RLOG);
145
- assert(params->hashLog <= ZSTD_HASHLOG_MAX);
155
+ params->hashLog = BOUNDED(ZSTD_HASHLOG_MIN, params->windowLog - params->hashRateLog, ZSTD_HASHLOG_MAX);
146
156
  }
147
- if (params->hashRateLog == 0) {
148
- params->hashRateLog = params->windowLog < params->hashLog
149
- ? 0
150
- : params->windowLog - params->hashLog;
157
+ if (params->minMatchLength == 0) {
158
+ params->minMatchLength = LDM_MIN_MATCH_LENGTH;
159
+ if (cParams->strategy >= ZSTD_btultra)
160
+ params->minMatchLength /= 2;
161
+ }
162
+ if (params->bucketSizeLog==0) {
163
+ assert(1 <= (int)cParams->strategy && (int)cParams->strategy <= 9);
164
+ params->bucketSizeLog = BOUNDED(LDM_BUCKET_SIZE_LOG, (U32)cParams->strategy, ZSTD_LDM_BUCKETSIZELOG_MAX);
151
165
  }
152
166
  params->bucketSizeLog = MIN(params->bucketSizeLog, params->hashLog);
153
167
  }
@@ -170,22 +184,22 @@ size_t ZSTD_ldm_getMaxNbSeq(ldmParams_t params, size_t maxChunkSize)
170
184
  /** ZSTD_ldm_getBucket() :
171
185
  * Returns a pointer to the start of the bucket associated with hash. */
172
186
  static ldmEntry_t* ZSTD_ldm_getBucket(
173
- ldmState_t* ldmState, size_t hash, ldmParams_t const ldmParams)
187
+ const ldmState_t* ldmState, size_t hash, U32 const bucketSizeLog)
174
188
  {
175
- return ldmState->hashTable + (hash << ldmParams.bucketSizeLog);
189
+ return ldmState->hashTable + (hash << bucketSizeLog);
176
190
  }
177
191
 
178
192
  /** ZSTD_ldm_insertEntry() :
179
193
  * Insert the entry with corresponding hash into the hash table */
180
194
  static void ZSTD_ldm_insertEntry(ldmState_t* ldmState,
181
195
  size_t const hash, const ldmEntry_t entry,
182
- ldmParams_t const ldmParams)
196
+ U32 const bucketSizeLog)
183
197
  {
184
198
  BYTE* const pOffset = ldmState->bucketOffsets + hash;
185
199
  unsigned const offset = *pOffset;
186
200
 
187
- *(ZSTD_ldm_getBucket(ldmState, hash, ldmParams) + offset) = entry;
188
- *pOffset = (BYTE)((offset + 1) & ((1u << ldmParams.bucketSizeLog) - 1));
201
+ *(ZSTD_ldm_getBucket(ldmState, hash, bucketSizeLog) + offset) = entry;
202
+ *pOffset = (BYTE)((offset + 1) & ((1u << bucketSizeLog) - 1));
189
203
 
190
204
  }
191
205
 
@@ -234,7 +248,7 @@ static size_t ZSTD_ldm_countBackwardsMatch_2segments(
234
248
  *
235
249
  * The tables for the other strategies are filled within their
236
250
  * block compressors. */
237
- static size_t ZSTD_ldm_fillFastTables(ZSTD_matchState_t* ms,
251
+ static size_t ZSTD_ldm_fillFastTables(ZSTD_MatchState_t* ms,
238
252
  void const* end)
239
253
  {
240
254
  const BYTE* const iend = (const BYTE*)end;
@@ -273,7 +287,8 @@ void ZSTD_ldm_fillHashTable(
273
287
  const BYTE* iend, ldmParams_t const* params)
274
288
  {
275
289
  U32 const minMatchLength = params->minMatchLength;
276
- U32 const hBits = params->hashLog - params->bucketSizeLog;
290
+ U32 const bucketSizeLog = params->bucketSizeLog;
291
+ U32 const hBits = params->hashLog - bucketSizeLog;
277
292
  BYTE const* const base = ldmState->window.base;
278
293
  BYTE const* const istart = ip;
279
294
  ldmRollingHashState_t hashState;
@@ -288,7 +303,7 @@ void ZSTD_ldm_fillHashTable(
288
303
  unsigned n;
289
304
 
290
305
  numSplits = 0;
291
- hashed = ZSTD_ldm_gear_feed(&hashState, ip, iend - ip, splits, &numSplits);
306
+ hashed = ZSTD_ldm_gear_feed(&hashState, ip, (size_t)(iend - ip), splits, &numSplits);
292
307
 
293
308
  for (n = 0; n < numSplits; n++) {
294
309
  if (ip + splits[n] >= istart + minMatchLength) {
@@ -299,7 +314,7 @@ void ZSTD_ldm_fillHashTable(
299
314
 
300
315
  entry.offset = (U32)(split - base);
301
316
  entry.checksum = (U32)(xxhash >> 32);
302
- ZSTD_ldm_insertEntry(ldmState, hash, entry, *params);
317
+ ZSTD_ldm_insertEntry(ldmState, hash, entry, params->bucketSizeLog);
303
318
  }
304
319
  }
305
320
 
@@ -313,7 +328,7 @@ void ZSTD_ldm_fillHashTable(
313
328
  * Sets cctx->nextToUpdate to a position corresponding closer to anchor
314
329
  * if it is far way
315
330
  * (after a long match, only update tables a limited amount). */
316
- static void ZSTD_ldm_limitTableUpdate(ZSTD_matchState_t* ms, const BYTE* anchor)
331
+ static void ZSTD_ldm_limitTableUpdate(ZSTD_MatchState_t* ms, const BYTE* anchor)
317
332
  {
318
333
  U32 const curr = (U32)(anchor - ms->window.base);
319
334
  if (curr > ms->nextToUpdate + 1024) {
@@ -325,7 +340,7 @@ static void ZSTD_ldm_limitTableUpdate(ZSTD_matchState_t* ms, const BYTE* anchor)
325
340
  static
326
341
  ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
327
342
  size_t ZSTD_ldm_generateSequences_internal(
328
- ldmState_t* ldmState, rawSeqStore_t* rawSeqStore,
343
+ ldmState_t* ldmState, RawSeqStore_t* rawSeqStore,
329
344
  ldmParams_t const* params, void const* src, size_t srcSize)
330
345
  {
331
346
  /* LDM parameters */
@@ -379,7 +394,7 @@ size_t ZSTD_ldm_generateSequences_internal(
379
394
  candidates[n].split = split;
380
395
  candidates[n].hash = hash;
381
396
  candidates[n].checksum = (U32)(xxhash >> 32);
382
- candidates[n].bucket = ZSTD_ldm_getBucket(ldmState, hash, *params);
397
+ candidates[n].bucket = ZSTD_ldm_getBucket(ldmState, hash, params->bucketSizeLog);
383
398
  PREFETCH_L1(candidates[n].bucket);
384
399
  }
385
400
 
@@ -402,7 +417,7 @@ size_t ZSTD_ldm_generateSequences_internal(
402
417
  * the previous one, we merely register it in the hash table and
403
418
  * move on */
404
419
  if (split < anchor) {
405
- ZSTD_ldm_insertEntry(ldmState, hash, newEntry, *params);
420
+ ZSTD_ldm_insertEntry(ldmState, hash, newEntry, params->bucketSizeLog);
406
421
  continue;
407
422
  }
408
423
 
@@ -449,7 +464,7 @@ size_t ZSTD_ldm_generateSequences_internal(
449
464
  /* No match found -- insert an entry into the hash table
450
465
  * and process the next candidate match */
451
466
  if (bestEntry == NULL) {
452
- ZSTD_ldm_insertEntry(ldmState, hash, newEntry, *params);
467
+ ZSTD_ldm_insertEntry(ldmState, hash, newEntry, params->bucketSizeLog);
453
468
  continue;
454
469
  }
455
470
 
@@ -470,7 +485,7 @@ size_t ZSTD_ldm_generateSequences_internal(
470
485
 
471
486
  /* Insert the current entry into the hash table --- it must be
472
487
  * done after the previous block to avoid clobbering bestEntry */
473
- ZSTD_ldm_insertEntry(ldmState, hash, newEntry, *params);
488
+ ZSTD_ldm_insertEntry(ldmState, hash, newEntry, params->bucketSizeLog);
474
489
 
475
490
  anchor = split + forwardMatchLength;
476
491
 
@@ -509,7 +524,7 @@ static void ZSTD_ldm_reduceTable(ldmEntry_t* const table, U32 const size,
509
524
  }
510
525
 
511
526
  size_t ZSTD_ldm_generateSequences(
512
- ldmState_t* ldmState, rawSeqStore_t* sequences,
527
+ ldmState_t* ldmState, RawSeqStore_t* sequences,
513
528
  ldmParams_t const* params, void const* src, size_t srcSize)
514
529
  {
515
530
  U32 const maxDist = 1U << params->windowLog;
@@ -586,7 +601,7 @@ size_t ZSTD_ldm_generateSequences(
586
601
  }
587
602
 
588
603
  void
589
- ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize, U32 const minMatch)
604
+ ZSTD_ldm_skipSequences(RawSeqStore_t* rawSeqStore, size_t srcSize, U32 const minMatch)
590
605
  {
591
606
  while (srcSize > 0 && rawSeqStore->pos < rawSeqStore->size) {
592
607
  rawSeq* seq = rawSeqStore->seq + rawSeqStore->pos;
@@ -622,7 +637,7 @@ ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize, U32 const min
622
637
  * Returns the current sequence to handle, or if the rest of the block should
623
638
  * be literals, it returns a sequence with offset == 0.
624
639
  */
625
- static rawSeq maybeSplitSequence(rawSeqStore_t* rawSeqStore,
640
+ static rawSeq maybeSplitSequence(RawSeqStore_t* rawSeqStore,
626
641
  U32 const remaining, U32 const minMatch)
627
642
  {
628
643
  rawSeq sequence = rawSeqStore->seq[rawSeqStore->pos];
@@ -646,7 +661,7 @@ static rawSeq maybeSplitSequence(rawSeqStore_t* rawSeqStore,
646
661
  return sequence;
647
662
  }
648
663
 
649
- void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes) {
664
+ void ZSTD_ldm_skipRawSeqStoreBytes(RawSeqStore_t* rawSeqStore, size_t nbBytes) {
650
665
  U32 currPos = (U32)(rawSeqStore->posInSequence + nbBytes);
651
666
  while (currPos && rawSeqStore->pos < rawSeqStore->size) {
652
667
  rawSeq currSeq = rawSeqStore->seq[rawSeqStore->pos];
@@ -663,14 +678,14 @@ void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes) {
663
678
  }
664
679
  }
665
680
 
666
- size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore,
667
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
668
- ZSTD_paramSwitch_e useRowMatchFinder,
681
+ size_t ZSTD_ldm_blockCompress(RawSeqStore_t* rawSeqStore,
682
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
683
+ ZSTD_ParamSwitch_e useRowMatchFinder,
669
684
  void const* src, size_t srcSize)
670
685
  {
671
686
  const ZSTD_compressionParameters* const cParams = &ms->cParams;
672
687
  unsigned const minMatch = cParams->minMatch;
673
- ZSTD_blockCompressor const blockCompressor =
688
+ ZSTD_BlockCompressor_f const blockCompressor =
674
689
  ZSTD_selectBlockCompressor(cParams->strategy, useRowMatchFinder, ZSTD_matchState_dictMode(ms));
675
690
  /* Input bounds */
676
691
  BYTE const* const istart = (BYTE const*)src;
@@ -11,10 +11,6 @@
11
11
  #ifndef ZSTD_LDM_H
12
12
  #define ZSTD_LDM_H
13
13
 
14
- #if defined (__cplusplus)
15
- extern "C" {
16
- #endif
17
-
18
14
  #include "zstd_compress_internal.h" /* ldmParams_t, U32 */
19
15
  #include "../zstd.h" /* ZSTD_CCtx, size_t */
20
16
 
@@ -43,7 +39,7 @@ void ZSTD_ldm_fillHashTable(
43
39
  * sequences.
44
40
  */
45
41
  size_t ZSTD_ldm_generateSequences(
46
- ldmState_t* ldms, rawSeqStore_t* sequences,
42
+ ldmState_t* ldms, RawSeqStore_t* sequences,
47
43
  ldmParams_t const* params, void const* src, size_t srcSize);
48
44
 
49
45
  /**
@@ -64,9 +60,9 @@ size_t ZSTD_ldm_generateSequences(
64
60
  * two. We handle that case correctly, and update `rawSeqStore` appropriately.
65
61
  * NOTE: This function does not return any errors.
66
62
  */
67
- size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore,
68
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
69
- ZSTD_paramSwitch_e useRowMatchFinder,
63
+ size_t ZSTD_ldm_blockCompress(RawSeqStore_t* rawSeqStore,
64
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
65
+ ZSTD_ParamSwitch_e useRowMatchFinder,
70
66
  void const* src, size_t srcSize);
71
67
 
72
68
  /**
@@ -76,7 +72,7 @@ size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore,
76
72
  * Avoids emitting matches less than `minMatch` bytes.
77
73
  * Must be called for data that is not passed to ZSTD_ldm_blockCompress().
78
74
  */
79
- void ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize,
75
+ void ZSTD_ldm_skipSequences(RawSeqStore_t* rawSeqStore, size_t srcSize,
80
76
  U32 const minMatch);
81
77
 
82
78
  /* ZSTD_ldm_skipRawSeqStoreBytes():
@@ -84,7 +80,7 @@ void ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize,
84
80
  * Not to be used in conjunction with ZSTD_ldm_skipSequences().
85
81
  * Must be called for data with is not passed to ZSTD_ldm_blockCompress().
86
82
  */
87
- void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes);
83
+ void ZSTD_ldm_skipRawSeqStoreBytes(RawSeqStore_t* rawSeqStore, size_t nbBytes);
88
84
 
89
85
  /** ZSTD_ldm_getTableSize() :
90
86
  * Estimate the space needed for long distance matching tables or 0 if LDM is
@@ -110,8 +106,4 @@ size_t ZSTD_ldm_getMaxNbSeq(ldmParams_t params, size_t maxChunkSize);
110
106
  void ZSTD_ldm_adjustParameters(ldmParams_t* params,
111
107
  ZSTD_compressionParameters const* cParams);
112
108
 
113
- #if defined (__cplusplus)
114
- }
115
- #endif
116
-
117
109
  #endif /* ZSTD_FAST_H */