zstd-ruby 1.5.1.1 → 1.5.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
}
|