zstd-ruby 1.5.1.1 → 1.5.5.0
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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/README.md +78 -5
- data/Rakefile +8 -2
- data/ext/zstdruby/common.h +15 -0
- data/ext/zstdruby/extconf.rb +1 -1
- data/ext/zstdruby/libzstd/common/allocations.h +55 -0
- data/ext/zstdruby/libzstd/common/bits.h +200 -0
- data/ext/zstdruby/libzstd/common/bitstream.h +19 -60
- data/ext/zstdruby/libzstd/common/compiler.h +26 -3
- data/ext/zstdruby/libzstd/common/cpu.h +1 -1
- data/ext/zstdruby/libzstd/common/debug.c +1 -1
- data/ext/zstdruby/libzstd/common/debug.h +1 -1
- data/ext/zstdruby/libzstd/common/entropy_common.c +12 -40
- data/ext/zstdruby/libzstd/common/error_private.c +9 -2
- data/ext/zstdruby/libzstd/common/error_private.h +1 -1
- data/ext/zstdruby/libzstd/common/fse.h +5 -83
- data/ext/zstdruby/libzstd/common/fse_decompress.c +7 -99
- data/ext/zstdruby/libzstd/common/huf.h +65 -156
- data/ext/zstdruby/libzstd/common/mem.h +39 -46
- data/ext/zstdruby/libzstd/common/pool.c +37 -16
- data/ext/zstdruby/libzstd/common/pool.h +9 -3
- data/ext/zstdruby/libzstd/common/portability_macros.h +28 -3
- data/ext/zstdruby/libzstd/common/threading.c +68 -14
- data/ext/zstdruby/libzstd/common/threading.h +5 -10
- data/ext/zstdruby/libzstd/common/xxhash.c +2 -2
- data/ext/zstdruby/libzstd/common/xxhash.h +8 -8
- data/ext/zstdruby/libzstd/common/zstd_common.c +1 -36
- data/ext/zstdruby/libzstd/common/zstd_deps.h +1 -1
- data/ext/zstdruby/libzstd/common/zstd_internal.h +20 -122
- data/ext/zstdruby/libzstd/common/zstd_trace.h +3 -3
- data/ext/zstdruby/libzstd/compress/clevels.h +1 -1
- data/ext/zstdruby/libzstd/compress/fse_compress.c +7 -124
- data/ext/zstdruby/libzstd/compress/hist.c +1 -1
- data/ext/zstdruby/libzstd/compress/hist.h +1 -1
- data/ext/zstdruby/libzstd/compress/huf_compress.c +234 -169
- data/ext/zstdruby/libzstd/compress/zstd_compress.c +1317 -594
- data/ext/zstdruby/libzstd/compress/zstd_compress_internal.h +272 -165
- data/ext/zstdruby/libzstd/compress/zstd_compress_literals.c +115 -39
- data/ext/zstdruby/libzstd/compress/zstd_compress_literals.h +16 -8
- data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.c +13 -13
- data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.h +1 -1
- data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.c +25 -21
- data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.h +1 -1
- data/ext/zstdruby/libzstd/compress/zstd_cwksp.h +162 -82
- data/ext/zstdruby/libzstd/compress/zstd_double_fast.c +95 -33
- data/ext/zstdruby/libzstd/compress/zstd_double_fast.h +3 -2
- data/ext/zstdruby/libzstd/compress/zstd_fast.c +434 -149
- data/ext/zstdruby/libzstd/compress/zstd_fast.h +3 -2
- data/ext/zstdruby/libzstd/compress/zstd_lazy.c +405 -348
- data/ext/zstdruby/libzstd/compress/zstd_lazy.h +4 -2
- data/ext/zstdruby/libzstd/compress/zstd_ldm.c +9 -7
- data/ext/zstdruby/libzstd/compress/zstd_ldm.h +1 -1
- data/ext/zstdruby/libzstd/compress/zstd_ldm_geartab.h +1 -1
- data/ext/zstdruby/libzstd/compress/zstd_opt.c +149 -100
- data/ext/zstdruby/libzstd/compress/zstd_opt.h +1 -1
- data/ext/zstdruby/libzstd/compress/zstdmt_compress.c +32 -16
- data/ext/zstdruby/libzstd/compress/zstdmt_compress.h +5 -2
- data/ext/zstdruby/libzstd/decompress/huf_decompress.c +434 -441
- data/ext/zstdruby/libzstd/decompress/huf_decompress_amd64.S +42 -37
- data/ext/zstdruby/libzstd/decompress/zstd_ddict.c +4 -4
- data/ext/zstdruby/libzstd/decompress/zstd_ddict.h +1 -1
- data/ext/zstdruby/libzstd/decompress/zstd_decompress.c +205 -80
- data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.c +201 -81
- data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.h +6 -1
- data/ext/zstdruby/libzstd/decompress/zstd_decompress_internal.h +4 -2
- data/ext/zstdruby/libzstd/dictBuilder/cover.c +19 -15
- data/ext/zstdruby/libzstd/dictBuilder/cover.h +1 -1
- data/ext/zstdruby/libzstd/dictBuilder/fastcover.c +2 -2
- data/ext/zstdruby/libzstd/dictBuilder/zdict.c +13 -91
- data/ext/zstdruby/libzstd/zdict.h +53 -31
- data/ext/zstdruby/libzstd/zstd.h +580 -135
- data/ext/zstdruby/libzstd/zstd_errors.h +27 -8
- data/ext/zstdruby/main.c +20 -0
- data/ext/zstdruby/skippable_frame.c +63 -0
- data/ext/zstdruby/streaming_compress.c +177 -0
- data/ext/zstdruby/streaming_compress.h +5 -0
- data/ext/zstdruby/streaming_decompress.c +123 -0
- data/ext/zstdruby/zstdruby.c +113 -31
- data/lib/zstd-ruby/version.rb +1 -1
- data/lib/zstd-ruby.rb +0 -1
- data/zstd-ruby.gemspec +1 -1
- metadata +11 -37
- data/.github/dependabot.yml +0 -8
- data/.github/workflows/ruby.yml +0 -35
- data/ext/zstdruby/libzstd/.gitignore +0 -3
- data/ext/zstdruby/libzstd/BUCK +0 -232
- data/ext/zstdruby/libzstd/Makefile +0 -357
- data/ext/zstdruby/libzstd/README.md +0 -217
- data/ext/zstdruby/libzstd/deprecated/zbuff.h +0 -214
- data/ext/zstdruby/libzstd/deprecated/zbuff_common.c +0 -26
- data/ext/zstdruby/libzstd/deprecated/zbuff_compress.c +0 -167
- data/ext/zstdruby/libzstd/deprecated/zbuff_decompress.c +0 -75
- data/ext/zstdruby/libzstd/dll/example/Makefile +0 -48
- data/ext/zstdruby/libzstd/dll/example/README.md +0 -63
- data/ext/zstdruby/libzstd/dll/example/build_package.bat +0 -20
- data/ext/zstdruby/libzstd/dll/example/fullbench-dll.sln +0 -25
- data/ext/zstdruby/libzstd/dll/example/fullbench-dll.vcxproj +0 -181
- data/ext/zstdruby/libzstd/legacy/zstd_legacy.h +0 -415
- data/ext/zstdruby/libzstd/legacy/zstd_v01.c +0 -2158
- data/ext/zstdruby/libzstd/legacy/zstd_v01.h +0 -94
- data/ext/zstdruby/libzstd/legacy/zstd_v02.c +0 -3518
- data/ext/zstdruby/libzstd/legacy/zstd_v02.h +0 -93
- data/ext/zstdruby/libzstd/legacy/zstd_v03.c +0 -3160
- data/ext/zstdruby/libzstd/legacy/zstd_v03.h +0 -93
- data/ext/zstdruby/libzstd/legacy/zstd_v04.c +0 -3647
- data/ext/zstdruby/libzstd/legacy/zstd_v04.h +0 -142
- data/ext/zstdruby/libzstd/legacy/zstd_v05.c +0 -4050
- data/ext/zstdruby/libzstd/legacy/zstd_v05.h +0 -162
- data/ext/zstdruby/libzstd/legacy/zstd_v06.c +0 -4154
- data/ext/zstdruby/libzstd/legacy/zstd_v06.h +0 -172
- data/ext/zstdruby/libzstd/legacy/zstd_v07.c +0 -4541
- data/ext/zstdruby/libzstd/legacy/zstd_v07.h +0 -187
- data/ext/zstdruby/libzstd/libzstd.mk +0 -185
- data/ext/zstdruby/libzstd/libzstd.pc.in +0 -16
- data/ext/zstdruby/libzstd/modulemap/module.modulemap +0 -4
- data/ext/zstdruby/zstdruby.h +0 -6
|
@@ -1,14 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under both the BSD-style license (found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
|
|
7
|
+
* in the COPYING file in the root directory of this source tree).
|
|
8
|
+
* You may select, at your option, one of the above-listed licenses.
|
|
9
|
+
*/
|
|
2
10
|
|
|
3
|
-
#
|
|
11
|
+
#include "../common/portability_macros.h"
|
|
4
12
|
|
|
5
13
|
/* Stack marking
|
|
6
14
|
* ref: https://wiki.gentoo.org/wiki/Hardened/GNU_stack_quickstart
|
|
7
15
|
*/
|
|
8
|
-
#if defined(
|
|
16
|
+
#if defined(__ELF__) && defined(__GNUC__)
|
|
9
17
|
.section .note.GNU-stack,"",%progbits
|
|
10
18
|
#endif
|
|
11
19
|
|
|
20
|
+
#if ZSTD_ENABLE_ASM_X86_64_BMI2
|
|
21
|
+
|
|
12
22
|
/* Calling convention:
|
|
13
23
|
*
|
|
14
24
|
* %rdi contains the first argument: HUF_DecompressAsmArgs*.
|
|
@@ -20,10 +30,14 @@
|
|
|
20
30
|
* TODO: Support Windows calling convention.
|
|
21
31
|
*/
|
|
22
32
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
33
|
+
ZSTD_HIDE_ASM_FUNCTION(HUF_decompress4X1_usingDTable_internal_fast_asm_loop)
|
|
34
|
+
ZSTD_HIDE_ASM_FUNCTION(HUF_decompress4X2_usingDTable_internal_fast_asm_loop)
|
|
35
|
+
ZSTD_HIDE_ASM_FUNCTION(_HUF_decompress4X2_usingDTable_internal_fast_asm_loop)
|
|
36
|
+
ZSTD_HIDE_ASM_FUNCTION(_HUF_decompress4X1_usingDTable_internal_fast_asm_loop)
|
|
37
|
+
.global HUF_decompress4X1_usingDTable_internal_fast_asm_loop
|
|
38
|
+
.global HUF_decompress4X2_usingDTable_internal_fast_asm_loop
|
|
39
|
+
.global _HUF_decompress4X1_usingDTable_internal_fast_asm_loop
|
|
40
|
+
.global _HUF_decompress4X2_usingDTable_internal_fast_asm_loop
|
|
27
41
|
.text
|
|
28
42
|
|
|
29
43
|
/* Sets up register mappings for clarity.
|
|
@@ -81,8 +95,9 @@
|
|
|
81
95
|
/* Define both _HUF_* & HUF_* symbols because MacOS
|
|
82
96
|
* C symbols are prefixed with '_' & Linux symbols aren't.
|
|
83
97
|
*/
|
|
84
|
-
|
|
85
|
-
|
|
98
|
+
_HUF_decompress4X1_usingDTable_internal_fast_asm_loop:
|
|
99
|
+
HUF_decompress4X1_usingDTable_internal_fast_asm_loop:
|
|
100
|
+
ZSTD_CET_ENDBRANCH
|
|
86
101
|
/* Save all registers - even if they are callee saved for simplicity. */
|
|
87
102
|
push %rax
|
|
88
103
|
push %rbx
|
|
@@ -336,8 +351,9 @@ HUF_decompress4X1_usingDTable_internal_bmi2_asm_loop:
|
|
|
336
351
|
pop %rax
|
|
337
352
|
ret
|
|
338
353
|
|
|
339
|
-
|
|
340
|
-
|
|
354
|
+
_HUF_decompress4X2_usingDTable_internal_fast_asm_loop:
|
|
355
|
+
HUF_decompress4X2_usingDTable_internal_fast_asm_loop:
|
|
356
|
+
ZSTD_CET_ENDBRANCH
|
|
341
357
|
/* Save all registers - even if they are callee saved for simplicity. */
|
|
342
358
|
push %rax
|
|
343
359
|
push %rbx
|
|
@@ -413,41 +429,30 @@ HUF_decompress4X2_usingDTable_internal_bmi2_asm_loop:
|
|
|
413
429
|
/* r15 = (ip0 - ilimit) / 7 */
|
|
414
430
|
movq %rdx, %r15
|
|
415
431
|
|
|
416
|
-
|
|
417
|
-
movq 8(%rsp),
|
|
418
|
-
subq %op0,
|
|
419
|
-
|
|
420
|
-
|
|
432
|
+
/* r15 = min(r15, min(oend0 - op0, oend1 - op1, oend2 - op2, oend3 - op3) / 10) */
|
|
433
|
+
movq 8(%rsp), %rax /* rax = oend0 */
|
|
434
|
+
subq %op0, %rax /* rax = oend0 - op0 */
|
|
435
|
+
movq 16(%rsp), %rdx /* rdx = oend1 */
|
|
436
|
+
subq %op1, %rdx /* rdx = oend1 - op1 */
|
|
421
437
|
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
cmova %rdx, %r15
|
|
438
|
+
cmpq %rax, %rdx
|
|
439
|
+
cmova %rax, %rdx /* rdx = min(%rdx, %rax) */
|
|
425
440
|
|
|
426
|
-
movabsq $-3689348814741910323, %rdx
|
|
427
|
-
movq 16(%rsp), %rax /* rax = oend1 */
|
|
428
|
-
subq %op1, %rax /* rax = oend1 - op1 */
|
|
429
|
-
mulq %rdx
|
|
430
|
-
shrq $3, %rdx /* rdx = rax / 10 */
|
|
431
|
-
|
|
432
|
-
/* r15 = min(%rdx, %r15) */
|
|
433
|
-
cmpq %rdx, %r15
|
|
434
|
-
cmova %rdx, %r15
|
|
435
|
-
|
|
436
|
-
movabsq $-3689348814741910323, %rdx
|
|
437
441
|
movq 24(%rsp), %rax /* rax = oend2 */
|
|
438
442
|
subq %op2, %rax /* rax = oend2 - op2 */
|
|
439
|
-
mulq %rdx
|
|
440
|
-
shrq $3, %rdx /* rdx = rax / 10 */
|
|
441
443
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
cmova %rdx, %r15
|
|
444
|
+
cmpq %rax, %rdx
|
|
445
|
+
cmova %rax, %rdx /* rdx = min(%rdx, %rax) */
|
|
445
446
|
|
|
446
|
-
movabsq $-3689348814741910323, %rdx
|
|
447
447
|
movq 32(%rsp), %rax /* rax = oend3 */
|
|
448
448
|
subq %op3, %rax /* rax = oend3 - op3 */
|
|
449
|
+
|
|
450
|
+
cmpq %rax, %rdx
|
|
451
|
+
cmova %rax, %rdx /* rdx = min(%rdx, %rax) */
|
|
452
|
+
|
|
453
|
+
movabsq $-3689348814741910323, %rax
|
|
449
454
|
mulq %rdx
|
|
450
|
-
shrq $3, %rdx /* rdx =
|
|
455
|
+
shrq $3, %rdx /* rdx = rdx / 10 */
|
|
451
456
|
|
|
452
457
|
/* r15 = min(%rdx, %r15) */
|
|
453
458
|
cmpq %rdx, %r15
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under both the BSD-style license (found in the
|
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
/*-*******************************************************
|
|
15
15
|
* Dependencies
|
|
16
16
|
*********************************************************/
|
|
17
|
+
#include "../common/allocations.h" /* ZSTD_customMalloc, ZSTD_customFree */
|
|
17
18
|
#include "../common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memmove, ZSTD_memset */
|
|
18
19
|
#include "../common/cpu.h" /* bmi2 */
|
|
19
20
|
#include "../common/mem.h" /* low level memory routines */
|
|
20
21
|
#define FSE_STATIC_LINKING_ONLY
|
|
21
22
|
#include "../common/fse.h"
|
|
22
|
-
#define HUF_STATIC_LINKING_ONLY
|
|
23
23
|
#include "../common/huf.h"
|
|
24
24
|
#include "zstd_decompress_internal.h"
|
|
25
25
|
#include "zstd_ddict.h"
|
|
@@ -134,7 +134,7 @@ static size_t ZSTD_initDDict_internal(ZSTD_DDict* ddict,
|
|
|
134
134
|
ZSTD_memcpy(internalBuffer, dict, dictSize);
|
|
135
135
|
}
|
|
136
136
|
ddict->dictSize = dictSize;
|
|
137
|
-
ddict->entropy.hufTable[0] = (HUF_DTable)((
|
|
137
|
+
ddict->entropy.hufTable[0] = (HUF_DTable)((ZSTD_HUFFDTABLE_CAPACITY_LOG)*0x1000001); /* cover both little and big endian */
|
|
138
138
|
|
|
139
139
|
/* parse dictionary content */
|
|
140
140
|
FORWARD_IF_ERROR( ZSTD_loadEntropy_intoDDict(ddict, dictContentType) , "");
|
|
@@ -240,5 +240,5 @@ size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict)
|
|
|
240
240
|
unsigned ZSTD_getDictID_fromDDict(const ZSTD_DDict* ddict)
|
|
241
241
|
{
|
|
242
242
|
if (ddict==NULL) return 0;
|
|
243
|
-
return
|
|
243
|
+
return ddict->dictID;
|
|
244
244
|
}
|