zstd-ruby 1.5.6.7 → 1.5.7.1

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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/zstdruby/libzstd/common/bits.h +92 -87
  4. data/ext/zstdruby/libzstd/common/bitstream.h +26 -29
  5. data/ext/zstdruby/libzstd/common/compiler.h +36 -22
  6. data/ext/zstdruby/libzstd/common/cpu.h +1 -1
  7. data/ext/zstdruby/libzstd/common/debug.h +0 -9
  8. data/ext/zstdruby/libzstd/common/error_private.c +1 -0
  9. data/ext/zstdruby/libzstd/common/error_private.h +0 -10
  10. data/ext/zstdruby/libzstd/common/fse.h +2 -17
  11. data/ext/zstdruby/libzstd/common/fse_decompress.c +2 -0
  12. data/ext/zstdruby/libzstd/common/huf.h +0 -9
  13. data/ext/zstdruby/libzstd/common/mem.h +7 -11
  14. data/ext/zstdruby/libzstd/common/pool.h +0 -9
  15. data/ext/zstdruby/libzstd/common/portability_macros.h +22 -9
  16. data/ext/zstdruby/libzstd/common/threading.h +0 -8
  17. data/ext/zstdruby/libzstd/common/xxhash.h +93 -19
  18. data/ext/zstdruby/libzstd/common/zstd_deps.h +12 -0
  19. data/ext/zstdruby/libzstd/common/zstd_internal.h +1 -69
  20. data/ext/zstdruby/libzstd/common/zstd_trace.h +5 -12
  21. data/ext/zstdruby/libzstd/compress/hist.c +10 -0
  22. data/ext/zstdruby/libzstd/compress/hist.h +7 -0
  23. data/ext/zstdruby/libzstd/compress/zstd_compress.c +1057 -367
  24. data/ext/zstdruby/libzstd/compress/zstd_compress_internal.h +227 -125
  25. data/ext/zstdruby/libzstd/compress/zstd_compress_literals.c +1 -1
  26. data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.c +7 -7
  27. data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.h +7 -6
  28. data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.c +17 -17
  29. data/ext/zstdruby/libzstd/compress/zstd_cwksp.h +41 -24
  30. data/ext/zstdruby/libzstd/compress/zstd_double_fast.c +58 -50
  31. data/ext/zstdruby/libzstd/compress/zstd_double_fast.h +4 -12
  32. data/ext/zstdruby/libzstd/compress/zstd_fast.c +91 -74
  33. data/ext/zstdruby/libzstd/compress/zstd_fast.h +4 -12
  34. data/ext/zstdruby/libzstd/compress/zstd_lazy.c +64 -64
  35. data/ext/zstdruby/libzstd/compress/zstd_lazy.h +30 -39
  36. data/ext/zstdruby/libzstd/compress/zstd_ldm.c +48 -33
  37. data/ext/zstdruby/libzstd/compress/zstd_ldm.h +6 -14
  38. data/ext/zstdruby/libzstd/compress/zstd_opt.c +55 -51
  39. data/ext/zstdruby/libzstd/compress/zstd_opt.h +8 -16
  40. data/ext/zstdruby/libzstd/compress/zstd_preSplit.c +238 -0
  41. data/ext/zstdruby/libzstd/compress/zstd_preSplit.h +33 -0
  42. data/ext/zstdruby/libzstd/compress/zstdmt_compress.c +134 -93
  43. data/ext/zstdruby/libzstd/compress/zstdmt_compress.h +4 -15
  44. data/ext/zstdruby/libzstd/decompress/huf_decompress_amd64.S +10 -3
  45. data/ext/zstdruby/libzstd/decompress/zstd_decompress.c +14 -11
  46. data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.c +6 -12
  47. data/ext/zstdruby/libzstd/decompress/zstd_decompress_internal.h +5 -5
  48. data/ext/zstdruby/libzstd/dictBuilder/cover.c +60 -19
  49. data/ext/zstdruby/libzstd/dictBuilder/divsufsort.h +0 -10
  50. data/ext/zstdruby/libzstd/dictBuilder/zdict.c +2 -2
  51. data/ext/zstdruby/libzstd/zdict.h +15 -8
  52. data/ext/zstdruby/libzstd/zstd.h +241 -132
  53. data/ext/zstdruby/libzstd/zstd_errors.h +1 -8
  54. data/ext/zstdruby/streaming_compress.c +20 -5
  55. data/lib/zstd-ruby/version.rb +1 -1
  56. metadata +5 -6
@@ -15,10 +15,6 @@
15
15
  extern "C" {
16
16
  #endif
17
17
 
18
- /*===== dependency =====*/
19
- #include <stddef.h> /* size_t */
20
-
21
-
22
18
  /* ===== ZSTDERRORLIB_API : control library symbols visibility ===== */
23
19
  #ifndef ZSTDERRORLIB_VISIBLE
24
20
  /* Backwards compatibility with old macro name */
@@ -80,6 +76,7 @@ typedef enum {
80
76
  ZSTD_error_tableLog_tooLarge = 44,
81
77
  ZSTD_error_maxSymbolValue_tooLarge = 46,
82
78
  ZSTD_error_maxSymbolValue_tooSmall = 48,
79
+ ZSTD_error_cannotProduce_uncompressedBlock = 49,
83
80
  ZSTD_error_stabilityCondition_notRespected = 50,
84
81
  ZSTD_error_stage_wrong = 60,
85
82
  ZSTD_error_init_missing = 62,
@@ -100,10 +97,6 @@ typedef enum {
100
97
  ZSTD_error_maxCode = 120 /* never EVER use this value directly, it can change in future versions! Use ZSTD_isError() instead */
101
98
  } ZSTD_ErrorCode;
102
99
 
103
- /*! ZSTD_getErrorCode() :
104
- convert a `size_t` function result into a `ZSTD_ErrorCode` enum type,
105
- which can be used to compare with enum list published above */
106
- ZSTDERRORLIB_API ZSTD_ErrorCode ZSTD_getErrorCode(size_t functionResult);
107
100
  ZSTDERRORLIB_API const char* ZSTD_getErrorString(ZSTD_ErrorCode code); /**< Same as ZSTD_getErrorName, but using a `ZSTD_ErrorCode` enum argument */
108
101
 
109
102
 
@@ -4,6 +4,7 @@ struct streaming_compress_t {
4
4
  ZSTD_CCtx* ctx;
5
5
  VALUE buf;
6
6
  size_t buf_size;
7
+ VALUE pending; /* accumulate compressed bytes produced by write() */
7
8
  };
8
9
 
9
10
  static void
@@ -12,8 +13,10 @@ streaming_compress_mark(void *p)
12
13
  struct streaming_compress_t *sc = p;
13
14
  #ifdef HAVE_RB_GC_MARK_MOVABLE
14
15
  rb_gc_mark_movable(sc->buf);
16
+ rb_gc_mark_movable(sc->pending);
15
17
  #else
16
18
  rb_gc_mark(sc->buf);
19
+ rb_gc_mark(sc->pending);
17
20
  #endif
18
21
  }
19
22
 
@@ -40,6 +43,7 @@ streaming_compress_compact(void *p)
40
43
  {
41
44
  struct streaming_compress_t *sc = p;
42
45
  sc->buf = rb_gc_location(sc->buf);
46
+ sc->pending = rb_gc_location(sc->pending);
43
47
  }
44
48
  #endif
45
49
 
@@ -64,6 +68,7 @@ rb_streaming_compress_allocate(VALUE klass)
64
68
  sc->ctx = NULL;
65
69
  sc->buf = Qnil;
66
70
  sc->buf_size = 0;
71
+ sc->pending = Qnil;
67
72
  return obj;
68
73
  }
69
74
 
@@ -87,6 +92,7 @@ rb_streaming_compress_initialize(int argc, VALUE *argv, VALUE obj)
87
92
  sc->ctx = ctx;
88
93
  sc->buf = rb_str_new(NULL, buffOutSize);
89
94
  sc->buf_size = buffOutSize;
95
+ sc->pending = rb_str_new(0, 0);
90
96
 
91
97
  return obj;
92
98
  }
@@ -143,7 +149,6 @@ static VALUE
143
149
  rb_streaming_compress_write(int argc, VALUE *argv, VALUE obj)
144
150
  {
145
151
  size_t total = 0;
146
- VALUE result = rb_str_new(0, 0);
147
152
  struct streaming_compress_t* sc;
148
153
  TypedData_Get_Struct(obj, struct streaming_compress_t, &streaming_compress_type, sc);
149
154
  const char* output_data = RSTRING_PTR(sc->buf);
@@ -161,6 +166,10 @@ rb_streaming_compress_write(int argc, VALUE *argv, VALUE obj)
161
166
  if (ZSTD_isError(ret)) {
162
167
  rb_raise(rb_eRuntimeError, "compress error error code: %s", ZSTD_getErrorName(ret));
163
168
  }
169
+ /* collect produced bytes */
170
+ if (output.pos > 0) {
171
+ rb_str_cat(sc->pending, output.dst, output.pos);
172
+ }
164
173
  total += RSTRING_LEN(str);
165
174
  }
166
175
  }
@@ -193,8 +202,11 @@ rb_streaming_compress_flush(VALUE obj)
193
202
  {
194
203
  struct streaming_compress_t* sc;
195
204
  TypedData_Get_Struct(obj, struct streaming_compress_t, &streaming_compress_type, sc);
196
- VALUE result = no_compress(sc, ZSTD_e_flush);
197
- return result;
205
+ VALUE drained = no_compress(sc, ZSTD_e_flush);
206
+ rb_str_cat(sc->pending, RSTRING_PTR(drained), RSTRING_LEN(drained));
207
+ VALUE out = sc->pending;
208
+ sc->pending = rb_str_new(0, 0);
209
+ return out;
198
210
  }
199
211
 
200
212
  static VALUE
@@ -202,8 +214,11 @@ rb_streaming_compress_finish(VALUE obj)
202
214
  {
203
215
  struct streaming_compress_t* sc;
204
216
  TypedData_Get_Struct(obj, struct streaming_compress_t, &streaming_compress_type, sc);
205
- VALUE result = no_compress(sc, ZSTD_e_end);
206
- return result;
217
+ VALUE drained = no_compress(sc, ZSTD_e_end);
218
+ rb_str_cat(sc->pending, RSTRING_PTR(drained), RSTRING_LEN(drained));
219
+ VALUE out = sc->pending;
220
+ sc->pending = rb_str_new(0, 0);
221
+ return out;
207
222
  }
208
223
 
209
224
  extern VALUE rb_mZstd, cStreamingCompress;
@@ -1,3 +1,3 @@
1
1
  module Zstd
2
- VERSION = "1.5.6.7"
2
+ VERSION = "1.5.7.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zstd-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.6.7
4
+ version: 1.5.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - SpringMT
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-07-06 00:00:00.000000000 Z
10
+ date: 2025-09-26 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: bundler
@@ -151,6 +150,8 @@ files:
151
150
  - ext/zstdruby/libzstd/compress/zstd_ldm_geartab.h
152
151
  - ext/zstdruby/libzstd/compress/zstd_opt.c
153
152
  - ext/zstdruby/libzstd/compress/zstd_opt.h
153
+ - ext/zstdruby/libzstd/compress/zstd_preSplit.c
154
+ - ext/zstdruby/libzstd/compress/zstd_preSplit.h
154
155
  - ext/zstdruby/libzstd/compress/zstdmt_compress.c
155
156
  - ext/zstdruby/libzstd/compress/zstdmt_compress.h
156
157
  - ext/zstdruby/libzstd/decompress/huf_decompress.c
@@ -185,7 +186,6 @@ homepage: https://github.com/SpringMT/zstd-ruby
185
186
  licenses:
186
187
  - MIT
187
188
  metadata: {}
188
- post_install_message:
189
189
  rdoc_options: []
190
190
  require_paths:
191
191
  - lib
@@ -200,8 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
200
  - !ruby/object:Gem::Version
201
201
  version: '0'
202
202
  requirements: []
203
- rubygems_version: 3.4.19
204
- signing_key:
203
+ rubygems_version: 3.6.2
205
204
  specification_version: 4
206
205
  summary: Ruby binding for zstd(Zstandard - Fast real-time compression algorithm)
207
206
  test_files: []