extzstd 0.1 → 0.1.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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY.ja +5 -0
  3. data/README.md +5 -5
  4. data/contrib/zstd/CONTRIBUTING.md +42 -0
  5. data/contrib/zstd/LICENSE-examples +11 -0
  6. data/contrib/zstd/Makefile +315 -0
  7. data/contrib/zstd/NEWS +261 -0
  8. data/contrib/zstd/PATENTS +33 -0
  9. data/contrib/zstd/README.md +121 -41
  10. data/contrib/zstd/TESTING.md +44 -0
  11. data/contrib/zstd/appveyor.yml +178 -0
  12. data/contrib/zstd/circle.yml +75 -0
  13. data/contrib/zstd/lib/BUCK +186 -0
  14. data/contrib/zstd/lib/Makefile +163 -0
  15. data/contrib/zstd/lib/README.md +77 -0
  16. data/contrib/zstd/{common → lib/common}/bitstream.h +7 -4
  17. data/contrib/zstd/{common → lib/common}/entropy_common.c +19 -23
  18. data/contrib/zstd/{common → lib/common}/error_private.c +0 -0
  19. data/contrib/zstd/{common → lib/common}/error_private.h +0 -0
  20. data/contrib/zstd/{common → lib/common}/fse.h +94 -34
  21. data/contrib/zstd/{common → lib/common}/fse_decompress.c +18 -19
  22. data/contrib/zstd/{common → lib/common}/huf.h +52 -20
  23. data/contrib/zstd/{common → lib/common}/mem.h +17 -13
  24. data/contrib/zstd/lib/common/pool.c +194 -0
  25. data/contrib/zstd/lib/common/pool.h +56 -0
  26. data/contrib/zstd/lib/common/threading.c +80 -0
  27. data/contrib/zstd/lib/common/threading.h +104 -0
  28. data/contrib/zstd/{common → lib/common}/xxhash.c +3 -1
  29. data/contrib/zstd/{common → lib/common}/xxhash.h +11 -15
  30. data/contrib/zstd/{common → lib/common}/zstd_common.c +1 -11
  31. data/contrib/zstd/{common → lib/common}/zstd_errors.h +16 -2
  32. data/contrib/zstd/{common → lib/common}/zstd_internal.h +17 -1
  33. data/contrib/zstd/{compress → lib/compress}/fse_compress.c +138 -91
  34. data/contrib/zstd/{compress → lib/compress}/huf_compress.c +218 -67
  35. data/contrib/zstd/{compress → lib/compress}/zstd_compress.c +231 -108
  36. data/contrib/zstd/{compress → lib/compress}/zstd_opt.h +44 -25
  37. data/contrib/zstd/lib/compress/zstdmt_compress.c +739 -0
  38. data/contrib/zstd/lib/compress/zstdmt_compress.h +78 -0
  39. data/contrib/zstd/{decompress → lib/decompress}/huf_decompress.c +28 -23
  40. data/contrib/zstd/{decompress → lib/decompress}/zstd_decompress.c +814 -176
  41. data/contrib/zstd/{common → lib/deprecated}/zbuff.h +60 -39
  42. data/contrib/zstd/lib/deprecated/zbuff_common.c +26 -0
  43. data/contrib/zstd/lib/deprecated/zbuff_compress.c +145 -0
  44. data/contrib/zstd/lib/deprecated/zbuff_decompress.c +74 -0
  45. data/contrib/zstd/lib/dictBuilder/cover.c +1029 -0
  46. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/divsufsort.c +0 -0
  47. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/divsufsort.h +0 -0
  48. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/zdict.c +68 -18
  49. data/contrib/zstd/lib/dictBuilder/zdict.h +201 -0
  50. data/contrib/zstd/{legacy → lib/legacy}/zstd_legacy.h +122 -7
  51. data/contrib/zstd/{legacy → lib/legacy}/zstd_v01.c +34 -3
  52. data/contrib/zstd/{legacy → lib/legacy}/zstd_v01.h +8 -0
  53. data/contrib/zstd/{legacy → lib/legacy}/zstd_v02.c +45 -12
  54. data/contrib/zstd/{legacy → lib/legacy}/zstd_v02.h +8 -0
  55. data/contrib/zstd/{legacy → lib/legacy}/zstd_v03.c +45 -12
  56. data/contrib/zstd/{legacy → lib/legacy}/zstd_v03.h +8 -0
  57. data/contrib/zstd/{legacy → lib/legacy}/zstd_v04.c +56 -33
  58. data/contrib/zstd/{legacy → lib/legacy}/zstd_v04.h +8 -0
  59. data/contrib/zstd/{legacy → lib/legacy}/zstd_v05.c +45 -18
  60. data/contrib/zstd/{legacy → lib/legacy}/zstd_v05.h +7 -0
  61. data/contrib/zstd/{legacy → lib/legacy}/zstd_v06.c +43 -16
  62. data/contrib/zstd/{legacy → lib/legacy}/zstd_v06.h +7 -0
  63. data/contrib/zstd/{legacy → lib/legacy}/zstd_v07.c +57 -23
  64. data/contrib/zstd/{legacy → lib/legacy}/zstd_v07.h +8 -0
  65. data/contrib/zstd/lib/libzstd.pc.in +14 -0
  66. data/contrib/zstd/{zstd.h → lib/zstd.h} +206 -71
  67. data/ext/depend +2 -0
  68. data/ext/extconf.rb +4 -4
  69. data/ext/extzstd.c +1 -1
  70. data/ext/zstd_common.c +5 -5
  71. data/ext/zstd_compress.c +3 -3
  72. data/ext/zstd_decompress.c +2 -2
  73. data/ext/zstd_dictbuilder.c +2 -2
  74. data/ext/zstd_legacy_v01.c +1 -1
  75. data/ext/zstd_legacy_v02.c +1 -1
  76. data/ext/zstd_legacy_v03.c +1 -1
  77. data/ext/zstd_legacy_v04.c +1 -1
  78. data/ext/zstd_legacy_v05.c +1 -1
  79. data/ext/zstd_legacy_v06.c +1 -1
  80. data/ext/zstd_legacy_v07.c +1 -1
  81. data/gemstub.rb +9 -5
  82. data/lib/extzstd/version.rb +1 -1
  83. metadata +73 -51
  84. data/contrib/zstd/compress/zbuff_compress.c +0 -319
  85. data/contrib/zstd/decompress/zbuff_decompress.c +0 -252
  86. data/contrib/zstd/dictBuilder/zdict.h +0 -111
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ecb0b4b4904be3e1cbe37b81a6c9b9d9e5cb020
4
- data.tar.gz: a3ddc7fb56548cfbe64e802cce72f4e4b143f696
3
+ metadata.gz: 192d059ccf6eccb722bcee77c84156b9bb717f9e
4
+ data.tar.gz: f566c8ca8e441d798cf744537be4b8eb7d09d0e8
5
5
  SHA512:
6
- metadata.gz: 4b69991752be6462fb7b8ba21206721dce94743d223476b42c20cd6aca6849084fa27f7b5f56e837b756166c15d1609e59e7c4df03c3dd9fc2d49a6d26782126
7
- data.tar.gz: c5361d53314bc3770a086d0d338bf42940389436d9cfb46d05f940cca0308160d4e777185ec32209d2ddbe6bbd45b7e996c89ff6fda89b26468243ed34936159
6
+ metadata.gz: 5c9cc38b7d2ffb6c4699b77a67272a36e1260e29365ea5e81174a23ebabb9da2225776a14838857103222cbfee89e66128593901ca9e6ba9b14a1306fc71b818
7
+ data.tar.gz: e90ed8d7c3868405ff9eab28859d5146ef53149a5cca9ceba29832acb68d0216064cc0b6249c60148ec74e40bd76fee1cba676e1e6229c7ff21f336a017e4280
data/HISTORY.ja CHANGED
@@ -1,5 +1,10 @@
1
1
  # extzstd の更新履歴
2
2
 
3
+ ## extzstd-0.1.1 (平成29年3月28日 火曜日)
4
+
5
+ * zstd-1.1.4 への更新
6
+
7
+
3
8
  ## extzstd-0.1 (平成28年11月2日 (水曜日))
4
9
 
5
10
  初版
data/README.md CHANGED
@@ -4,18 +4,18 @@ This is unofficial ruby bindings for compression library
4
4
  [Zstd (Zstandard)](https://github.com/facebook/zstd).
5
5
 
6
6
  * package name: extzstd
7
- * version: 0.1
7
+ * version: 0.1.1
8
8
  * software quality: EXPERIMENTAL
9
9
  * license: BSD-2-clause License
10
- * author: dearblue <mailto:dearblue@users.osdn.me>
11
- * report issue to: <https://osdn.jp/projects/rutsubo/ticket/>
10
+ * author: dearblue <mailto:dearblue@users.noreply.github.com>
11
+ * report issue to: <https://github.com/dearblue/ruby-extzstd/issues>
12
12
  * dependency ruby: ruby-2.1+
13
13
  * dependency ruby gems: (none)
14
14
  * dependency library: (none)
15
15
  * bundled external C library:
16
- * zstd-1.1.1 <https://github.com/facebook/zstd/tree/v1.1.1>
16
+ * zstd-1.1.4 <https://github.com/facebook/zstd/tree/v1.1.4>
17
17
 
18
- under BSD-3-clause License <https://github.com/facebook/zstd/blob/v1.1.1/LICENSE>
18
+ under BSD-3-clause License <https://github.com/facebook/zstd/blob/v1.1.4/LICENSE>
19
19
 
20
20
  by facebook <https://github.com/facebook>
21
21
 
@@ -0,0 +1,42 @@
1
+ # Contributing to Zstandard
2
+ We want to make contributing to this project as easy and transparent as
3
+ possible.
4
+
5
+ ## Our Development Process
6
+ New versions are being developed in the "dev" branch,
7
+ or in their own feature branch.
8
+ When they are deemed ready for a release, they are merged into "master".
9
+
10
+ As a consequences, all contributions must stage first through "dev"
11
+ or their own feature branch.
12
+
13
+ ## Pull Requests
14
+ We actively welcome your pull requests.
15
+
16
+ 1. Fork the repo and create your branch from `dev`.
17
+ 2. If you've added code that should be tested, add tests.
18
+ 3. If you've changed APIs, update the documentation.
19
+ 4. Ensure the test suite passes.
20
+ 5. Make sure your code lints.
21
+ 6. If you haven't already, complete the Contributor License Agreement ("CLA").
22
+
23
+ ## Contributor License Agreement ("CLA")
24
+ In order to accept your pull request, we need you to submit a CLA. You only need
25
+ to do this once to work on any of Facebook's open source projects.
26
+
27
+ Complete your CLA here: <https://code.facebook.com/cla>
28
+
29
+ ## Issues
30
+ We use GitHub issues to track public bugs. Please ensure your description is
31
+ clear and has sufficient instructions to be able to reproduce the issue.
32
+
33
+ Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe
34
+ disclosure of security bugs. In those cases, please go through the process
35
+ outlined on that page and do not file a public issue.
36
+
37
+ ## Coding Style
38
+ * 4 spaces for indentation rather than tabs
39
+
40
+ ## License
41
+ By contributing to Zstandard, you agree that your contributions will be licensed
42
+ under the [LICENSE](LICENSE) file in the root directory of this source tree.
@@ -0,0 +1,11 @@
1
+ Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
2
+
3
+ The examples provided by Facebook are for non-commercial testing and evaluation
4
+ purposes only. Facebook reserves all rights not expressly granted.
5
+
6
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
7
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
8
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
9
+ FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
10
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
11
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,315 @@
1
+ # ################################################################
2
+ # Copyright (c) 2016-present, Yann Collet, Facebook, Inc.
3
+ # All rights reserved.
4
+ #
5
+ # This source code is licensed under the BSD-style license found in the
6
+ # LICENSE file in the root directory of this source tree. An additional grant
7
+ # of patent rights can be found in the PATENTS file in the same directory.
8
+ # ################################################################
9
+
10
+ PRGDIR = programs
11
+ ZSTDDIR = lib
12
+ BUILDIR = build
13
+ ZWRAPDIR = zlibWrapper
14
+ TESTDIR = tests
15
+
16
+ # Define nul output
17
+ VOID = /dev/null
18
+
19
+ ifneq (,$(filter Windows%,$(OS)))
20
+ EXT =.exe
21
+ else
22
+ EXT =
23
+ endif
24
+
25
+ .PHONY: default
26
+ default: lib-release zstd-release
27
+
28
+ .PHONY: all
29
+ all: | allmost examples manual
30
+
31
+ .PHONY: allmost
32
+ allmost:
33
+ $(MAKE) -C $(ZSTDDIR) all
34
+ $(MAKE) -C $(PRGDIR) all
35
+ $(MAKE) -C $(TESTDIR) all
36
+ $(MAKE) -C $(ZWRAPDIR) all
37
+
38
+ #skip zwrapper, can't build that on alternate architectures without the proper zlib installed
39
+ .PHONY: allarch
40
+ allarch:
41
+ $(MAKE) -C $(ZSTDDIR) all
42
+ $(MAKE) -C $(PRGDIR) all
43
+ $(MAKE) -C $(TESTDIR) all
44
+
45
+ .PHONY: all32
46
+ all32:
47
+ $(MAKE) -C $(PRGDIR) zstd32
48
+ $(MAKE) -C $(TESTDIR) all32
49
+
50
+ .PHONY: lib
51
+ lib:
52
+ @$(MAKE) -C $(ZSTDDIR) $@
53
+
54
+ .PHONY: lib-release
55
+ lib-release:
56
+ @$(MAKE) -C $(ZSTDDIR)
57
+
58
+ .PHONY: zstd
59
+ zstd:
60
+ @$(MAKE) -C $(PRGDIR) $@
61
+ cp $(PRGDIR)/zstd$(EXT) .
62
+
63
+ .PHONY: zstd-release
64
+ zstd-release:
65
+ @$(MAKE) -C $(PRGDIR)
66
+ cp $(PRGDIR)/zstd$(EXT) .
67
+
68
+ .PHONY: zstdmt
69
+ zstdmt:
70
+ @$(MAKE) -C $(PRGDIR) $@
71
+ cp $(PRGDIR)/zstd$(EXT) ./zstdmt$(EXT)
72
+
73
+ .PHONY: zlibwrapper
74
+ zlibwrapper:
75
+ $(MAKE) -C $(ZWRAPDIR) test
76
+
77
+ .PHONY: shortest
78
+ shortest:
79
+ $(MAKE) -C $(TESTDIR) $@
80
+
81
+ .PHONY: test
82
+ test:
83
+ $(MAKE) -C $(TESTDIR) $@
84
+
85
+ .PHONY: examples
86
+ examples:
87
+ CPPFLAGS=-I../lib LDFLAGS=-L../lib $(MAKE) -C examples/ all
88
+
89
+ .PHONY: manual
90
+ manual:
91
+ $(MAKE) -C contrib/gen_html $@
92
+
93
+ .PHONY: clean
94
+ clean:
95
+ @$(MAKE) -C $(ZSTDDIR) $@ > $(VOID)
96
+ @$(MAKE) -C $(PRGDIR) $@ > $(VOID)
97
+ @$(MAKE) -C $(TESTDIR) $@ > $(VOID)
98
+ @$(MAKE) -C $(ZWRAPDIR) $@ > $(VOID)
99
+ @$(MAKE) -C examples/ $@ > $(VOID)
100
+ @$(MAKE) -C contrib/gen_html $@ > $(VOID)
101
+ @$(RM) zstd$(EXT) zstdmt$(EXT) tmp*
102
+ @echo Cleaning completed
103
+
104
+ #------------------------------------------------------------------------------
105
+ # make install is validated only for Linux, OSX, Hurd and some BSD targets
106
+ #------------------------------------------------------------------------------
107
+ ifneq (,$(filter $(shell uname),Linux Darwin GNU/kFreeBSD GNU FreeBSD DragonFly NetBSD))
108
+ HOST_OS = POSIX
109
+ .PHONY: install uninstall travis-install clangtest gpptest armtest usan asan uasan
110
+
111
+ install:
112
+ @$(MAKE) -C $(ZSTDDIR) $@
113
+ @$(MAKE) -C $(PRGDIR) $@
114
+
115
+ uninstall:
116
+ @$(MAKE) -C $(ZSTDDIR) $@
117
+ @$(MAKE) -C $(PRGDIR) $@
118
+
119
+ travis-install:
120
+ $(MAKE) install PREFIX=~/install_test_dir
121
+
122
+ gppbuild: clean
123
+ g++ -v
124
+ CC=g++ $(MAKE) -C programs all CFLAGS="-O3 -Wall -Wextra -Wundef -Wshadow -Wcast-align -Werror"
125
+
126
+ gcc5build: clean
127
+ gcc-5 -v
128
+ CC=gcc-5 $(MAKE) all MOREFLAGS="-Werror"
129
+
130
+ gcc6build: clean
131
+ gcc-6 -v
132
+ CC=gcc-6 $(MAKE) all MOREFLAGS="-Werror"
133
+
134
+ clangbuild: clean
135
+ clang -v
136
+ CXX=clang++ CC=clang $(MAKE) all MOREFLAGS="-Werror -Wconversion -Wno-sign-conversion -Wdocumentation"
137
+
138
+ m32build: clean
139
+ gcc -v
140
+ $(MAKE) all32
141
+
142
+ armbuild: clean
143
+ CC=arm-linux-gnueabi-gcc CFLAGS="-Werror" $(MAKE) allarch
144
+
145
+ aarch64build: clean
146
+ CC=aarch64-linux-gnu-gcc CFLAGS="-Werror" $(MAKE) allarch
147
+
148
+ ppcbuild: clean
149
+ CC=powerpc-linux-gnu-gcc CLAGS="-m32 -Wno-attributes -Werror" $(MAKE) allarch
150
+
151
+ ppc64build: clean
152
+ CC=powerpc-linux-gnu-gcc CFLAGS="-m64 -Werror" $(MAKE) allarch
153
+
154
+ armfuzz: clean
155
+ CC=arm-linux-gnueabi-gcc QEMU_SYS=qemu-arm-static MOREFLAGS="-static" $(MAKE) -C $(TESTDIR) fuzztest
156
+
157
+ aarch64fuzz: clean
158
+ CC=aarch64-linux-gnu-gcc QEMU_SYS=qemu-aarch64-static MOREFLAGS="-static" $(MAKE) -C $(TESTDIR) fuzztest
159
+
160
+ ppcfuzz: clean
161
+ CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc-static MOREFLAGS="-static" $(MAKE) -C $(TESTDIR) fuzztest
162
+
163
+ ppc64fuzz: clean
164
+ CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc64-static MOREFLAGS="-m64 -static" $(MAKE) -C $(TESTDIR) fuzztest
165
+
166
+ gpptest: clean
167
+ CC=g++ $(MAKE) -C $(PRGDIR) all CFLAGS="-O3 -Wall -Wextra -Wundef -Wshadow -Wcast-align -Werror"
168
+
169
+ gcc5test: clean
170
+ gcc-5 -v
171
+ $(MAKE) all CC=gcc-5 MOREFLAGS="-Werror"
172
+
173
+ gcc6test: clean
174
+ gcc-6 -v
175
+ $(MAKE) all CC=gcc-6 MOREFLAGS="-Werror"
176
+
177
+ clangtest: clean
178
+ clang -v
179
+ $(MAKE) all CXX=clang-++ CC=clang MOREFLAGS="-Werror -Wconversion -Wno-sign-conversion -Wdocumentation"
180
+
181
+ armtest: clean
182
+ $(MAKE) -C $(TESTDIR) datagen # use native, faster
183
+ $(MAKE) -C $(TESTDIR) test CC=arm-linux-gnueabi-gcc QEMU_SYS=qemu-arm-static ZSTDRTTEST= MOREFLAGS="-Werror -static"
184
+
185
+ aarch64test:
186
+ $(MAKE) -C $(TESTDIR) datagen # use native, faster
187
+ $(MAKE) -C $(TESTDIR) test CC=aarch64-linux-gnu-gcc QEMU_SYS=qemu-aarch64-static ZSTDRTTEST= MOREFLAGS="-Werror -static"
188
+
189
+ ppctest: clean
190
+ $(MAKE) -C $(TESTDIR) datagen # use native, faster
191
+ $(MAKE) -C $(TESTDIR) test CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc-static ZSTDRTTEST= MOREFLAGS="-Werror -Wno-attributes -static"
192
+
193
+ ppc64test: clean
194
+ $(MAKE) -C $(TESTDIR) datagen # use native, faster
195
+ $(MAKE) -C $(TESTDIR) test CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc64-static ZSTDRTTEST= MOREFLAGS="-m64 -static"
196
+
197
+ arm-ppc-compilation:
198
+ $(MAKE) -C $(PRGDIR) clean zstd CC=arm-linux-gnueabi-gcc QEMU_SYS=qemu-arm-static ZSTDRTTEST= MOREFLAGS="-Werror -static"
199
+ $(MAKE) -C $(PRGDIR) clean zstd CC=aarch64-linux-gnu-gcc QEMU_SYS=qemu-aarch64-static ZSTDRTTEST= MOREFLAGS="-Werror -static"
200
+ $(MAKE) -C $(PRGDIR) clean zstd CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc-static ZSTDRTTEST= MOREFLAGS="-Werror -Wno-attributes -static"
201
+ $(MAKE) -C $(PRGDIR) clean zstd CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc64-static ZSTDRTTEST= MOREFLAGS="-m64 -static"
202
+
203
+ # run UBsan with -fsanitize-recover=signed-integer-overflow
204
+ # due to a bug in UBsan when doing pointer subtraction
205
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63303
206
+
207
+ usan: clean
208
+ $(MAKE) test CC=clang MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=signed-integer-overflow -fsanitize=undefined"
209
+
210
+ asan: clean
211
+ $(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=address"
212
+
213
+ asan-%: clean
214
+ LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=address" $(MAKE) -C $(TESTDIR) $*
215
+
216
+ msan: clean
217
+ $(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=memory -fno-omit-frame-pointer" # datagen.c fails this test for no obvious reason
218
+
219
+ msan-%: clean
220
+ LDFLAGS=-fuse-ld=gold MOREFLAGS="-fno-sanitize-recover=all -fsanitize=memory -fno-omit-frame-pointer" $(MAKE) -C $(TESTDIR) $*
221
+
222
+ asan32: clean
223
+ $(MAKE) -C $(TESTDIR) test32 CC=clang MOREFLAGS="-g -fsanitize=address"
224
+
225
+ uasan: clean
226
+ $(MAKE) test CC=clang MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=signed-integer-overflow -fsanitize=address,undefined"
227
+
228
+ uasan-%: clean
229
+ LDFLAGS=-fuse-ld=gold MOREFLAGS="-Og -fno-sanitize-recover=all -fsanitize-recover=signed-integer-overflow -fsanitize=address,undefined" $(MAKE) -C $(TESTDIR) $*
230
+
231
+ tsan-%: clean
232
+ LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=thread" $(MAKE) -C $(TESTDIR) $*
233
+ apt-install:
234
+ sudo apt-get -yq --no-install-suggests --no-install-recommends --force-yes install $(APT_PACKAGES)
235
+
236
+ apt-add-repo:
237
+ sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
238
+ sudo apt-get update -y -qq
239
+
240
+ ppcinstall:
241
+ APT_PACKAGES="qemu-system-ppc qemu-user-static gcc-powerpc-linux-gnu" $(MAKE) apt-install
242
+
243
+ arminstall:
244
+ APT_PACKAGES="qemu-system-arm qemu-user-static gcc-arm-linux-gnueabi libc6-dev-armel-cross gcc-aarch64-linux-gnu libc6-dev-arm64-cross" $(MAKE) apt-install
245
+
246
+ valgrindinstall:
247
+ APT_PACKAGES="valgrind" $(MAKE) apt-install
248
+
249
+ libc6install:
250
+ APT_PACKAGES="libc6-dev-i386 gcc-multilib" $(MAKE) apt-install
251
+
252
+ gcc6install: apt-add-repo
253
+ APT_PACKAGES="libc6-dev-i386 gcc-multilib gcc-6 gcc-6-multilib" $(MAKE) apt-install
254
+
255
+ gpp6install: apt-add-repo
256
+ APT_PACKAGES="libc6-dev-i386 g++-multilib gcc-6 g++-6 g++-6-multilib" $(MAKE) apt-install
257
+
258
+ clang38install:
259
+ APT_PACKAGES="clang-3.8" $(MAKE) apt-install
260
+
261
+ endif
262
+
263
+
264
+ ifneq (,$(filter MSYS%,$(shell uname)))
265
+ HOST_OS = MSYS
266
+ CMAKE_PARAMS = -G"MSYS Makefiles"
267
+ endif
268
+
269
+
270
+ #------------------------------------------------------------------------
271
+ #make tests validated only for MSYS, Linux, OSX, kFreeBSD and Hurd targets
272
+ #------------------------------------------------------------------------
273
+ ifneq (,$(filter $(HOST_OS),MSYS POSIX))
274
+ cmakebuild:
275
+ cmake --version
276
+ $(RM) -r $(BUILDIR)/cmake/build
277
+ mkdir $(BUILDIR)/cmake/build
278
+ cd $(BUILDIR)/cmake/build ; cmake -DPREFIX:STRING=~/install_test_dir $(CMAKE_PARAMS) .. ; $(MAKE) install ; $(MAKE) uninstall
279
+
280
+ c90build: clean
281
+ gcc -v
282
+ CFLAGS="-std=c90" $(MAKE) allmost # will fail, due to missing support for `long long`
283
+
284
+ gnu90build: clean
285
+ gcc -v
286
+ CFLAGS="-std=gnu90" $(MAKE) allmost
287
+
288
+ c99build: clean
289
+ gcc -v
290
+ CFLAGS="-std=c99" $(MAKE) allmost
291
+
292
+ gnu99build: clean
293
+ gcc -v
294
+ CFLAGS="-std=gnu99" $(MAKE) allmost
295
+
296
+ c11build: clean
297
+ gcc -v
298
+ CFLAGS="-std=c11" $(MAKE) allmost
299
+
300
+ bmix64build: clean
301
+ gcc -v
302
+ CFLAGS="-O3 -mbmi -Werror" $(MAKE) -C $(TESTDIR) test
303
+
304
+ bmix32build: clean
305
+ gcc -v
306
+ CFLAGS="-O3 -mbmi -mx32 -Werror" $(MAKE) -C $(TESTDIR) test
307
+
308
+ bmi32build: clean
309
+ gcc -v
310
+ CFLAGS="-O3 -mbmi -m32 -Werror" $(MAKE) -C $(TESTDIR) test
311
+
312
+ staticAnalyze: clean
313
+ gcc -v
314
+ CPPFLAGS=-g scan-build --status-bugs -v $(MAKE) all
315
+ endif
data/contrib/zstd/NEWS ADDED
@@ -0,0 +1,261 @@
1
+ v1.1.4
2
+ cli : new : can compress in *.gz format, using --format=gzip command, by Przemyslaw Skibinski
3
+ cli : new : advanced benchmark command --priority=rt
4
+ cli : fix : write on sparse-enabled file systems in 32-bits mode, by @ds77
5
+ cli : fix : --rm remains silent when input is stdin
6
+ cli : experimental : xzstd, with support for xz/lzma decoding, by Przemyslaw Skibinski
7
+ speed : improved decompression speed in streaming mode for single shot scenarios (+5%)
8
+ memory : DDict (decompression dictionary) memory usage down from 150 KB to 20 KB
9
+ arch : 32-bits variant able to generate and decode very long matches (>32 MB), by Sean Purcell
10
+ API : new : ZSTD_findFrameCompressedSize(), ZSTD_getFrameContentSize(), ZSTD_findDecompressedSize()
11
+ API : changed : dropped support of legacy versions <= v0.3 (can be changed by modifying ZSTD_LEGACY_SUPPORT value)
12
+ build: new: meson build system in contrib/meson, by Dima Krasner
13
+ build: improved cmake script, by @Majlen
14
+ build: added -Wformat-security flag, as recommended by Padraig Brady
15
+ doc : new : educational decoder, by Sean Purcell
16
+
17
+ v1.1.3
18
+ cli : zstd can decompress .gz files (can be disabled with `make zstd-nogz` or `make HAVE_ZLIB=0`)
19
+ cli : new : experimental target `make zstdmt`, with multi-threading support
20
+ cli : new : improved dictionary builder "cover" (experimental), by Nick Terrell, based on prior work by Giuseppe Ottaviano.
21
+ cli : new : advanced commands for detailed parameters, by Przemyslaw Skibinski
22
+ cli : fix zstdless on Mac OS-X, by Andrew Janke
23
+ cli : fix #232 "compress non-files"
24
+ dictBuilder : improved dictionary generation quality, thanks to Nick Terrell
25
+ API : new : lib/compress/ZSTDMT_compress.h multithreading API (experimental)
26
+ API : new : ZSTD_create?Dict_byReference(), requested by Bartosz Taudul
27
+ API : new : ZDICT_finalizeDictionary()
28
+ API : fix : ZSTD_initCStream_usingCDict() properly writes dictID into frame header, by Gregory Szorc (#511)
29
+ API : fix : all symbols properly exposed in libzstd, by Nick Terrell
30
+ build : support for Solaris target, by Przemyslaw Skibinski
31
+ doc : clarified specification, by Sean Purcell
32
+
33
+ v1.1.2
34
+ API : streaming : decompression : changed : automatic implicit reset when chain-decoding new frames without init
35
+ API : experimental : added : dictID retrieval functions, and ZSTD_initCStream_srcSize()
36
+ API : zbuff : changed : prototypes now generate deprecation warnings
37
+ lib : improved : faster decompression speed at ultra compression settings and 32-bits mode
38
+ lib : changed : only public ZSTD_ symbols are now exposed
39
+ lib : changed : reduced usage of stack memory
40
+ lib : fixed : several corner case bugs, by Nick Terrell
41
+ cli : new : gzstd, experimental version able to decode .gz files, by Przemyslaw Skibinski
42
+ cli : new : preserve file attributes
43
+ cli : new : added zstdless and zstdgrep tools
44
+ cli : fixed : status displays total amount decoded, even for file consisting of multiple frames (like pzstd)
45
+ cli : fixed : zstdcat
46
+ zlib_wrapper : added support for gz* functions, by Przemyslaw Skibinski
47
+ install : better compatibility with FreeBSD, by Dimitry Andric
48
+ source tree : changed : zbuff source files moved to lib/deprecated
49
+
50
+ v1.1.1
51
+ New : command -M#, --memory=, --memlimit=, --memlimit-decompress= to limit allowed memory consumption
52
+ New : doc/zstd_manual.html, by Przemyslaw Skibinski
53
+ Improved : slightly better compression ratio at --ultra levels (>= 20)
54
+ Improved : better memory usage when using streaming compression API, thanks to @Rogier-5 report
55
+ Added : API : ZSTD_initCStream_usingCDict(), ZSTD_initDStream_usingDDict() (experimental section)
56
+ Added : example/multiple_streaming_compression.c
57
+ Changed : zstd_errors.h is now installed within /include (and replaces errors_public.h)
58
+ Updated man page
59
+ Fixed : zstd-small, zstd-compress and zstd-decompress compilation targets
60
+
61
+ v1.1.0
62
+ New : contrib/pzstd, parallel version of zstd, by Nick Terrell
63
+ added : NetBSD install target (#338)
64
+ Improved : speed for batches of small files
65
+ Improved : speed of zlib wrapper, by Przemyslaw Skibinski
66
+ Changed : libzstd on Windows supports legacy formats, by Christophe Chevalier
67
+ Fixed : CLI -d output to stdout by default when input is stdin (#322)
68
+ Fixed : CLI correctly detects console on Mac OS-X
69
+ Fixed : CLI supports recursive mode `-r` on Mac OS-X
70
+ Fixed : Legacy decoders use unified error codes, reported by benrg (#341), fixed by Przemyslaw Skibinski
71
+ Fixed : compatibility with OpenBSD, reported by Juan Francisco Cantero Hurtado (#319)
72
+ Fixed : compatibility with Hurd, by Przemyslaw Skibinski (#365)
73
+ Fixed : zstd-pgo, reported by octoploid (#329)
74
+
75
+ v1.0.0
76
+ Change Licensing, all project is now BSD, Copyright Facebook
77
+ Small decompression speed improvement
78
+ API : Streaming API supports legacy format
79
+ API : ZDICT_getDictID(), ZSTD_sizeof_{CCtx, DCtx, CStream, DStream}(), ZSTD_setDStreamParamter()
80
+ CLI supports legacy formats v0.4+
81
+ Fixed : compression fails on certain huge files, reported by Jesse McGrew
82
+ Enhanced documentation, by Przemyslaw Skibinski
83
+
84
+ v0.8.1
85
+ New streaming API
86
+ Changed : --ultra now enables levels beyond 19
87
+ Changed : -i# now selects benchmark time in second
88
+ Fixed : ZSTD_compress* can now compress > 4 GB in a single pass, reported by Nick Terrell
89
+ Fixed : speed regression on specific patterns (#272)
90
+ Fixed : support for Z_SYNC_FLUSH, by Dmitry Krot (#291)
91
+ Fixed : ICC compilation, by Przemyslaw Skibinski
92
+
93
+ v0.8.0
94
+ Improved : better speed on clang and gcc -O2, thanks to Eric Biggers
95
+ New : Build on FreeBSD and DragonFly, thanks to JrMarino
96
+ Changed : modified API : ZSTD_compressEnd()
97
+ Fixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist
98
+ Fixed : premature end of frame when zero-sized raw block, reported by Eric Biggers
99
+ Fixed : large dictionaries (> 384 KB), reported by Ilona Papava
100
+ Fixed : checksum correctly checked in single-pass mode
101
+ Fixed : combined --test amd --rm, reported by Andreas M. Nilsson
102
+ Modified : minor compression level adaptations
103
+ Updated : compression format specification to v0.2.0
104
+ changed : zstd.h moved to /lib directory
105
+
106
+ v0.7.5
107
+ Transition version, supporting decoding of v0.8.x
108
+
109
+ v0.7.4
110
+ Added : homebrew for Mac, by Daniel Cade
111
+ Added : more examples
112
+ Fixed : segfault when using small dictionaries, reported by Felix Handte
113
+ Modified : default compression level for CLI is now 3
114
+ Updated : specification, to v0.1.1
115
+
116
+ v0.7.3
117
+ New : compression format specification
118
+ New : `--` separator, stating that all following arguments are file names. Suggested by Chip Turner.
119
+ New : `ZSTD_getDecompressedSize()`
120
+ New : OpenBSD target, by Juan Francisco Cantero Hurtado
121
+ New : `examples` directory
122
+ fixed : dictBuilder using HC levels, reported by Bartosz Taudul
123
+ fixed : legacy support from ZSTD_decompress_usingDDict(), reported by Felix Handte
124
+ fixed : multi-blocks decoding with intermediate uncompressed blocks, reported by Greg Slazinski
125
+ modified : removed "mem.h" and "error_public.h" dependencies from "zstd.h" (experimental section)
126
+ modified : legacy functions no longer need magic number
127
+
128
+ v0.7.2
129
+ fixed : ZSTD_decompressBlock() using multiple consecutive blocks. Reported by Greg Slazinski.
130
+ fixed : potential segfault on very large files (many gigabytes). Reported by Chip Turner.
131
+ fixed : CLI displays system error message when destination file cannot be created (#231). Reported by Chip Turner.
132
+
133
+ v0.7.1
134
+ fixed : ZBUFF_compressEnd() called multiple times with too small `dst` buffer, reported by Christophe Chevalier
135
+ fixed : dictBuilder fails if first sample is too small, reported by Руслан Ковалёв
136
+ fixed : corruption issue, reported by cj
137
+ modified : checksum enabled by default in command line mode
138
+
139
+ v0.7.0
140
+ New : Support for directory compression, using `-r`, thanks to Przemyslaw Skibinski
141
+ New : Command `--rm`, to remove source file after successful de/compression
142
+ New : Visual build scripts, by Christophe Chevalier
143
+ New : Support for Sparse File-systems (do not use space for zero-filled sectors)
144
+ New : Frame checksum support
145
+ New : Support pass-through mode (when using `-df`)
146
+ API : more efficient Dictionary API : `ZSTD_compress_usingCDict()`, `ZSTD_decompress_usingDDict()`
147
+ API : create dictionary files from custom content, by Giuseppe Ottaviano
148
+ API : support for custom malloc/free functions
149
+ New : controllable Dictionary ID
150
+ New : Support for skippable frames
151
+
152
+ v0.6.1
153
+ New : zlib wrapper API, thanks to Przemyslaw Skibinski
154
+ New : Ability to compile compressor / decompressor separately
155
+ Changed : new lib directory structure
156
+ Fixed : Legacy codec v0.5 compatible with dictionary decompression
157
+ Fixed : Decoder corruption error (#173)
158
+ Fixed : null-string roundtrip (#176)
159
+ New : benchmark mode can select directory as input
160
+ Experimental : midipix support, VMS support
161
+
162
+ v0.6.0
163
+ Stronger high compression modes, thanks to Przemyslaw Skibinski
164
+ API : ZSTD_getFrameParams() provides size of decompressed content
165
+ New : highest compression modes require `--ultra` command to fully unleash their capacity
166
+ Fixed : zstd cli return error code > 0 and removes dst file artifact when decompression fails, thanks to Chip Turner
167
+
168
+ v0.5.1
169
+ New : Optimal parsing => Very high compression modes, thanks to Przemyslaw Skibinski
170
+ Changed : Dictionary builder integrated into libzstd and zstd cli
171
+ Changed (!) : zstd cli now uses "multiple input files" as default mode. See `zstd -h`.
172
+ Fix : high compression modes for big-endian platforms
173
+ New : zstd cli : `-t` | `--test` command
174
+
175
+ v0.5.0
176
+ New : dictionary builder utility
177
+ Changed : streaming & dictionary API
178
+ Improved : better compression of small data
179
+
180
+ v0.4.7
181
+ Improved : small compression speed improvement in HC mode
182
+ Changed : `zstd_decompress.c` has ZSTD_LEGACY_SUPPORT to 0 by default
183
+ fix : bt search bug
184
+
185
+ v0.4.6
186
+ fix : fast compression mode on Windows
187
+ New : cmake configuration file, thanks to Artyom Dymchenko
188
+ Improved : high compression mode on repetitive data
189
+ New : block-level API
190
+ New : ZSTD_duplicateCCtx()
191
+
192
+ v0.4.5
193
+ new : -m/--multiple : compress/decompress multiple files
194
+
195
+ v0.4.4
196
+ Fixed : high compression modes for Windows 32 bits
197
+ new : external dictionary API extended to buffered mode and accessible through command line
198
+ new : windows DLL project, thanks to Christophe Chevalier
199
+
200
+ v0.4.3 :
201
+ new : external dictionary API
202
+ new : zstd-frugal
203
+
204
+ v0.4.2 :
205
+ Generic minor improvements for small blocks
206
+ Fixed : big-endian compatibility, by Peter Harris (#85)
207
+
208
+ v0.4.1
209
+ Fixed : ZSTD_LEGACY_SUPPORT=0 build mode (reported by Luben)
210
+ removed `zstd.c`
211
+
212
+ v0.4.0
213
+ Command line utility compatible with high compression levels
214
+ Removed zstdhc => merged into zstd
215
+ Added : ZBUFF API (see zstd_buffered.h)
216
+ Rolling buffer support
217
+
218
+ v0.3.6
219
+ small blocks params
220
+
221
+ v0.3.5
222
+ minor generic compression improvements
223
+
224
+ v0.3.4
225
+ Faster fast cLevels
226
+
227
+ v0.3.3
228
+ Small compression ratio improvement
229
+
230
+ v0.3.2
231
+ Fixed Visual Studio
232
+
233
+ v0.3.1 :
234
+ Small compression ratio improvement
235
+
236
+ v0.3
237
+ HC mode : compression levels 2-26
238
+
239
+ v0.2.2
240
+ Fix : Visual Studio 2013 & 2015 release compilation, by Christophe Chevalier
241
+
242
+ v0.2.1
243
+ Fix : Read errors, advanced fuzzer tests, by Hanno Böck
244
+
245
+ v0.2.0
246
+ **Breaking format change**
247
+ Faster decompression speed
248
+ Can still decode v0.1 format
249
+
250
+ v0.1.3
251
+ fix uninitialization warning, reported by Evan Nemerson
252
+
253
+ v0.1.2
254
+ frame concatenation support
255
+
256
+ v0.1.1
257
+ fix compression bug
258
+ detects write-flush errors
259
+
260
+ v0.1.0
261
+ first release