extzstd 0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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