zstd-ruby 1.5.2.3 → 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/README.md +13 -5
- 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 +26 -10
- data/ext/zstdruby/libzstd/common/pool.h +7 -1
- data/ext/zstdruby/libzstd/common/portability_macros.h +22 -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 +17 -118
- 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 +1243 -538
- data/ext/zstdruby/libzstd/compress/zstd_compress_internal.h +225 -151
- 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 +3 -3
- 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 +128 -62
- 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 +433 -148
- data/ext/zstdruby/libzstd/compress/zstd_fast.h +3 -2
- data/ext/zstdruby/libzstd/compress/zstd_lazy.c +398 -345
- data/ext/zstdruby/libzstd/compress/zstd_lazy.h +4 -2
- data/ext/zstdruby/libzstd/compress/zstd_ldm.c +5 -5
- 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 +106 -80
- data/ext/zstdruby/libzstd/compress/zstd_opt.h +1 -1
- data/ext/zstdruby/libzstd/compress/zstdmt_compress.c +17 -9
- data/ext/zstdruby/libzstd/compress/zstdmt_compress.h +1 -1
- data/ext/zstdruby/libzstd/decompress/huf_decompress.c +434 -441
- data/ext/zstdruby/libzstd/decompress/huf_decompress_amd64.S +30 -39
- 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 +11 -89
- 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 +6 -0
- data/ext/zstdruby/skippable_frame.c +63 -0
- data/lib/zstd-ruby/version.rb +1 -1
- metadata +9 -6
@@ -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
|
@@ -30,14 +30,14 @@
|
|
30
30
|
* TODO: Support Windows calling convention.
|
31
31
|
*/
|
32
32
|
|
33
|
-
ZSTD_HIDE_ASM_FUNCTION(
|
34
|
-
ZSTD_HIDE_ASM_FUNCTION(
|
35
|
-
ZSTD_HIDE_ASM_FUNCTION(
|
36
|
-
ZSTD_HIDE_ASM_FUNCTION(
|
37
|
-
.global
|
38
|
-
.global
|
39
|
-
.global
|
40
|
-
.global
|
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
|
41
41
|
.text
|
42
42
|
|
43
43
|
/* Sets up register mappings for clarity.
|
@@ -95,8 +95,9 @@ ZSTD_HIDE_ASM_FUNCTION(_HUF_decompress4X1_usingDTable_internal_bmi2_asm_loop)
|
|
95
95
|
/* Define both _HUF_* & HUF_* symbols because MacOS
|
96
96
|
* C symbols are prefixed with '_' & Linux symbols aren't.
|
97
97
|
*/
|
98
|
-
|
99
|
-
|
98
|
+
_HUF_decompress4X1_usingDTable_internal_fast_asm_loop:
|
99
|
+
HUF_decompress4X1_usingDTable_internal_fast_asm_loop:
|
100
|
+
ZSTD_CET_ENDBRANCH
|
100
101
|
/* Save all registers - even if they are callee saved for simplicity. */
|
101
102
|
push %rax
|
102
103
|
push %rbx
|
@@ -350,8 +351,9 @@ HUF_decompress4X1_usingDTable_internal_bmi2_asm_loop:
|
|
350
351
|
pop %rax
|
351
352
|
ret
|
352
353
|
|
353
|
-
|
354
|
-
|
354
|
+
_HUF_decompress4X2_usingDTable_internal_fast_asm_loop:
|
355
|
+
HUF_decompress4X2_usingDTable_internal_fast_asm_loop:
|
356
|
+
ZSTD_CET_ENDBRANCH
|
355
357
|
/* Save all registers - even if they are callee saved for simplicity. */
|
356
358
|
push %rax
|
357
359
|
push %rbx
|
@@ -427,41 +429,30 @@ HUF_decompress4X2_usingDTable_internal_bmi2_asm_loop:
|
|
427
429
|
/* r15 = (ip0 - ilimit) / 7 */
|
428
430
|
movq %rdx, %r15
|
429
431
|
|
430
|
-
|
431
|
-
movq 8(%rsp),
|
432
|
-
subq %op0,
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
/* r15 = min(%rdx, %r15) */
|
437
|
-
cmpq %rdx, %r15
|
438
|
-
cmova %rdx, %r15
|
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 */
|
439
437
|
|
440
|
-
|
441
|
-
|
442
|
-
subq %op1, %rax /* rax = oend1 - op1 */
|
443
|
-
mulq %rdx
|
444
|
-
shrq $3, %rdx /* rdx = rax / 10 */
|
445
|
-
|
446
|
-
/* r15 = min(%rdx, %r15) */
|
447
|
-
cmpq %rdx, %r15
|
448
|
-
cmova %rdx, %r15
|
438
|
+
cmpq %rax, %rdx
|
439
|
+
cmova %rax, %rdx /* rdx = min(%rdx, %rax) */
|
449
440
|
|
450
|
-
movabsq $-3689348814741910323, %rdx
|
451
441
|
movq 24(%rsp), %rax /* rax = oend2 */
|
452
442
|
subq %op2, %rax /* rax = oend2 - op2 */
|
453
|
-
mulq %rdx
|
454
|
-
shrq $3, %rdx /* rdx = rax / 10 */
|
455
443
|
|
456
|
-
|
457
|
-
|
458
|
-
cmova %rdx, %r15
|
444
|
+
cmpq %rax, %rdx
|
445
|
+
cmova %rax, %rdx /* rdx = min(%rdx, %rax) */
|
459
446
|
|
460
|
-
movabsq $-3689348814741910323, %rdx
|
461
447
|
movq 32(%rsp), %rax /* rax = oend3 */
|
462
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
|
463
454
|
mulq %rdx
|
464
|
-
shrq $3, %rdx /* rdx =
|
455
|
+
shrq $3, %rdx /* rdx = rdx / 10 */
|
465
456
|
|
466
457
|
/* r15 = min(%rdx, %r15) */
|
467
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
|
}
|