extzstd 0.1 → 0.3.2

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 (134) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY.ja.md +39 -0
  3. data/README.md +38 -56
  4. data/contrib/zstd/CHANGELOG +613 -0
  5. data/contrib/zstd/CODE_OF_CONDUCT.md +5 -0
  6. data/contrib/zstd/CONTRIBUTING.md +406 -0
  7. data/contrib/zstd/COPYING +339 -0
  8. data/contrib/zstd/Makefile +420 -0
  9. data/contrib/zstd/README.md +179 -41
  10. data/contrib/zstd/TESTING.md +44 -0
  11. data/contrib/zstd/appveyor.yml +292 -0
  12. data/contrib/zstd/lib/BUCK +234 -0
  13. data/contrib/zstd/lib/Makefile +451 -0
  14. data/contrib/zstd/lib/README.md +207 -0
  15. data/contrib/zstd/{common → lib/common}/bitstream.h +187 -138
  16. data/contrib/zstd/lib/common/compiler.h +288 -0
  17. data/contrib/zstd/lib/common/cpu.h +213 -0
  18. data/contrib/zstd/lib/common/debug.c +24 -0
  19. data/contrib/zstd/lib/common/debug.h +107 -0
  20. data/contrib/zstd/lib/common/entropy_common.c +362 -0
  21. data/contrib/zstd/{common → lib/common}/error_private.c +25 -12
  22. data/contrib/zstd/{common → lib/common}/error_private.h +14 -10
  23. data/contrib/zstd/{common → lib/common}/fse.h +173 -92
  24. data/contrib/zstd/{common → lib/common}/fse_decompress.c +149 -85
  25. data/contrib/zstd/lib/common/huf.h +361 -0
  26. data/contrib/zstd/{common → lib/common}/mem.h +115 -59
  27. data/contrib/zstd/lib/common/pool.c +350 -0
  28. data/contrib/zstd/lib/common/pool.h +84 -0
  29. data/contrib/zstd/lib/common/threading.c +122 -0
  30. data/contrib/zstd/lib/common/threading.h +155 -0
  31. data/contrib/zstd/{common → lib/common}/xxhash.c +55 -96
  32. data/contrib/zstd/{common → lib/common}/xxhash.h +23 -47
  33. data/contrib/zstd/lib/common/zstd_common.c +83 -0
  34. data/contrib/zstd/lib/common/zstd_deps.h +111 -0
  35. data/contrib/zstd/lib/common/zstd_errors.h +95 -0
  36. data/contrib/zstd/lib/common/zstd_internal.h +478 -0
  37. data/contrib/zstd/{compress → lib/compress}/fse_compress.c +214 -319
  38. data/contrib/zstd/lib/compress/hist.c +181 -0
  39. data/contrib/zstd/lib/compress/hist.h +75 -0
  40. data/contrib/zstd/lib/compress/huf_compress.c +913 -0
  41. data/contrib/zstd/lib/compress/zstd_compress.c +5208 -0
  42. data/contrib/zstd/lib/compress/zstd_compress_internal.h +1203 -0
  43. data/contrib/zstd/lib/compress/zstd_compress_literals.c +158 -0
  44. data/contrib/zstd/lib/compress/zstd_compress_literals.h +29 -0
  45. data/contrib/zstd/lib/compress/zstd_compress_sequences.c +433 -0
  46. data/contrib/zstd/lib/compress/zstd_compress_sequences.h +54 -0
  47. data/contrib/zstd/lib/compress/zstd_compress_superblock.c +849 -0
  48. data/contrib/zstd/lib/compress/zstd_compress_superblock.h +32 -0
  49. data/contrib/zstd/lib/compress/zstd_cwksp.h +561 -0
  50. data/contrib/zstd/lib/compress/zstd_double_fast.c +521 -0
  51. data/contrib/zstd/lib/compress/zstd_double_fast.h +38 -0
  52. data/contrib/zstd/lib/compress/zstd_fast.c +496 -0
  53. data/contrib/zstd/lib/compress/zstd_fast.h +37 -0
  54. data/contrib/zstd/lib/compress/zstd_lazy.c +1412 -0
  55. data/contrib/zstd/lib/compress/zstd_lazy.h +87 -0
  56. data/contrib/zstd/lib/compress/zstd_ldm.c +660 -0
  57. data/contrib/zstd/lib/compress/zstd_ldm.h +116 -0
  58. data/contrib/zstd/lib/compress/zstd_opt.c +1345 -0
  59. data/contrib/zstd/lib/compress/zstd_opt.h +56 -0
  60. data/contrib/zstd/lib/compress/zstdmt_compress.c +1811 -0
  61. data/contrib/zstd/lib/compress/zstdmt_compress.h +110 -0
  62. data/contrib/zstd/lib/decompress/huf_decompress.c +1350 -0
  63. data/contrib/zstd/lib/decompress/zstd_ddict.c +244 -0
  64. data/contrib/zstd/lib/decompress/zstd_ddict.h +44 -0
  65. data/contrib/zstd/lib/decompress/zstd_decompress.c +1930 -0
  66. data/contrib/zstd/lib/decompress/zstd_decompress_block.c +1540 -0
  67. data/contrib/zstd/lib/decompress/zstd_decompress_block.h +62 -0
  68. data/contrib/zstd/lib/decompress/zstd_decompress_internal.h +190 -0
  69. data/contrib/zstd/{common → lib/deprecated}/zbuff.h +68 -45
  70. data/contrib/zstd/lib/deprecated/zbuff_common.c +26 -0
  71. data/contrib/zstd/lib/deprecated/zbuff_compress.c +147 -0
  72. data/contrib/zstd/lib/deprecated/zbuff_decompress.c +75 -0
  73. data/contrib/zstd/lib/dictBuilder/cover.c +1245 -0
  74. data/contrib/zstd/lib/dictBuilder/cover.h +157 -0
  75. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/divsufsort.c +3 -3
  76. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/divsufsort.h +0 -0
  77. data/contrib/zstd/lib/dictBuilder/fastcover.c +758 -0
  78. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/zdict.c +318 -194
  79. data/contrib/zstd/lib/dictBuilder/zdict.h +305 -0
  80. data/contrib/zstd/{legacy → lib/legacy}/zstd_legacy.h +171 -15
  81. data/contrib/zstd/{legacy → lib/legacy}/zstd_v01.c +191 -124
  82. data/contrib/zstd/{legacy → lib/legacy}/zstd_v01.h +19 -5
  83. data/contrib/zstd/{legacy → lib/legacy}/zstd_v02.c +125 -125
  84. data/contrib/zstd/{legacy → lib/legacy}/zstd_v02.h +19 -5
  85. data/contrib/zstd/{legacy → lib/legacy}/zstd_v03.c +125 -124
  86. data/contrib/zstd/{legacy → lib/legacy}/zstd_v03.h +20 -6
  87. data/contrib/zstd/{legacy → lib/legacy}/zstd_v04.c +151 -299
  88. data/contrib/zstd/{legacy → lib/legacy}/zstd_v04.h +19 -5
  89. data/contrib/zstd/{legacy → lib/legacy}/zstd_v05.c +237 -243
  90. data/contrib/zstd/{legacy → lib/legacy}/zstd_v05.h +19 -6
  91. data/contrib/zstd/{legacy → lib/legacy}/zstd_v06.c +130 -143
  92. data/contrib/zstd/{legacy → lib/legacy}/zstd_v06.h +18 -5
  93. data/contrib/zstd/{legacy → lib/legacy}/zstd_v07.c +158 -157
  94. data/contrib/zstd/{legacy → lib/legacy}/zstd_v07.h +19 -5
  95. data/contrib/zstd/lib/libzstd.pc.in +15 -0
  96. data/contrib/zstd/lib/zstd.h +2391 -0
  97. data/ext/depend +2 -0
  98. data/ext/extconf.rb +15 -6
  99. data/ext/extzstd.c +76 -145
  100. data/ext/extzstd.h +80 -31
  101. data/ext/extzstd_stream.c +417 -142
  102. data/ext/libzstd_conf.h +8 -0
  103. data/ext/zstd_common.c +10 -7
  104. data/ext/zstd_compress.c +14 -5
  105. data/ext/zstd_decompress.c +5 -4
  106. data/ext/zstd_dictbuilder.c +9 -4
  107. data/ext/zstd_dictbuilder_fastcover.c +3 -0
  108. data/ext/zstd_legacy_v01.c +3 -1
  109. data/ext/zstd_legacy_v02.c +3 -1
  110. data/ext/zstd_legacy_v03.c +3 -1
  111. data/ext/zstd_legacy_v04.c +3 -1
  112. data/ext/zstd_legacy_v05.c +3 -1
  113. data/ext/zstd_legacy_v06.c +3 -1
  114. data/ext/zstd_legacy_v07.c +3 -1
  115. data/gemstub.rb +10 -24
  116. data/lib/extzstd.rb +64 -179
  117. data/lib/extzstd/version.rb +6 -1
  118. data/test/test_basic.rb +9 -6
  119. metadata +113 -57
  120. data/HISTORY.ja +0 -5
  121. data/contrib/zstd/common/entropy_common.c +0 -225
  122. data/contrib/zstd/common/huf.h +0 -228
  123. data/contrib/zstd/common/zstd_common.c +0 -83
  124. data/contrib/zstd/common/zstd_errors.h +0 -60
  125. data/contrib/zstd/common/zstd_internal.h +0 -267
  126. data/contrib/zstd/compress/huf_compress.c +0 -533
  127. data/contrib/zstd/compress/zbuff_compress.c +0 -319
  128. data/contrib/zstd/compress/zstd_compress.c +0 -3264
  129. data/contrib/zstd/compress/zstd_opt.h +0 -900
  130. data/contrib/zstd/decompress/huf_decompress.c +0 -883
  131. data/contrib/zstd/decompress/zbuff_decompress.c +0 -252
  132. data/contrib/zstd/decompress/zstd_decompress.c +0 -1842
  133. data/contrib/zstd/dictBuilder/zdict.h +0 -111
  134. data/contrib/zstd/zstd.h +0 -640
@@ -0,0 +1,44 @@
1
+ Testing
2
+ =======
3
+
4
+ Zstandard CI testing is split up into three sections:
5
+ short, medium, and long tests.
6
+
7
+ Short Tests
8
+ -----------
9
+ Short tests run on CircleCI for new commits on every branch and pull request.
10
+ They consist of the following tests:
11
+ - Compilation on all supported targets (x86, x86_64, ARM, AArch64, PowerPC, and PowerPC64)
12
+ - Compilation on various versions of gcc, clang, and g++
13
+ - `tests/playTests.sh` on x86_64, without the tests on long data (CLI tests)
14
+ - Small tests (`tests/legacy.c`, `tests/longmatch.c`) on x64_64
15
+
16
+ Medium Tests
17
+ ------------
18
+ Medium tests run on every commit and pull request to `dev` branch, on TravisCI.
19
+ They consist of the following tests:
20
+ - The following tests run with UBsan and Asan on x86_64 and x86, as well as with
21
+ Msan on x86_64
22
+ - `tests/playTests.sh --test-large-data`
23
+ - Fuzzer tests: `tests/fuzzer.c`, `tests/zstreamtest.c`, and `tests/decodecorpus.c`
24
+ - `tests/zstreamtest.c` under Tsan (streaming mode, including multithreaded mode)
25
+ - Valgrind Test (`make -C tests valgrindTest`) (testing CLI and fuzzer under valgrind)
26
+ - Fuzzer tests (see above) on ARM, AArch64, PowerPC, and PowerPC64
27
+
28
+ Long Tests
29
+ ----------
30
+ Long tests run on all commits to `master` branch,
31
+ and once a day on the current version of `dev` branch,
32
+ on TravisCI.
33
+ They consist of the following tests:
34
+ - Entire test suite (including fuzzers and some other specialized tests) on:
35
+ - x86_64 and x86 with UBsan and Asan
36
+ - x86_64 with Msan
37
+ - ARM, AArch64, PowerPC, and PowerPC64
38
+ - Streaming mode fuzzer with Tsan (for the `zstdmt` testing)
39
+ - ZlibWrapper tests, including under valgrind
40
+ - Versions test (ensuring `zstd` can decode files from all previous versions)
41
+ - `pzstd` with asan and tsan, as well as in 32-bits mode
42
+ - Testing `zstd` with legacy mode off
43
+ - Testing `zbuff` (old streaming API)
44
+ - Entire test suite and make install on macOS
@@ -0,0 +1,292 @@
1
+ # Following tests are run _only_ on master branch
2
+ # To reproduce these tests, it's possible to push into a branch `appveyorTest`
3
+ # or a branch `visual*`, they will intentionnally trigger `master` tests
4
+
5
+ -
6
+ version: 1.0.{build}
7
+ branches:
8
+ only:
9
+ - master
10
+ - appveyorTest
11
+ - /visual*/
12
+ environment:
13
+ matrix:
14
+ - COMPILER: "gcc"
15
+ HOST: "mingw"
16
+ PLATFORM: "x64"
17
+ SCRIPT: "make allzstd MOREFLAGS=-static && make -C tests fullbench-lib"
18
+ ARTIFACT: "true"
19
+ BUILD: "true"
20
+ - COMPILER: "gcc"
21
+ HOST: "mingw"
22
+ PLATFORM: "x86"
23
+ SCRIPT: "make allzstd MOREFLAGS=-static"
24
+ ARTIFACT: "true"
25
+ BUILD: "true"
26
+ - COMPILER: "clang"
27
+ HOST: "mingw"
28
+ PLATFORM: "x64"
29
+ SCRIPT: "MOREFLAGS='--target=x86_64-w64-mingw32 -Werror -Wconversion -Wno-sign-conversion' make allzstd"
30
+ BUILD: "true"
31
+
32
+ - COMPILER: "gcc"
33
+ HOST: "mingw"
34
+ PLATFORM: "x64"
35
+ SCRIPT: ""
36
+ TEST: "cmake"
37
+
38
+ - COMPILER: "visual"
39
+ HOST: "visual"
40
+ PLATFORM: "x64"
41
+ CONFIGURATION: "Debug"
42
+ - COMPILER: "visual"
43
+ HOST: "visual"
44
+ PLATFORM: "Win32"
45
+ CONFIGURATION: "Debug"
46
+ - COMPILER: "visual"
47
+ HOST: "visual"
48
+ PLATFORM: "x64"
49
+ CONFIGURATION: "Release"
50
+ - COMPILER: "visual"
51
+ HOST: "visual"
52
+ PLATFORM: "Win32"
53
+ CONFIGURATION: "Release"
54
+
55
+ install:
56
+ - ECHO Installing %COMPILER% %PLATFORM% %CONFIGURATION%
57
+ - SET PATH_ORIGINAL=%PATH%
58
+ - if [%HOST%]==[mingw] (
59
+ SET "PATH_MINGW32=C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin" &&
60
+ SET "PATH_MINGW64=C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin" &&
61
+ COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin\make.exe &&
62
+ COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin\make.exe
63
+ )
64
+ - IF [%HOST%]==[visual] IF [%PLATFORM%]==[x64] (
65
+ SET ADDITIONALPARAM=/p:LibraryPath="C:\Program Files\Microsoft SDKs\Windows\v7.1\lib\x64;c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 10.0\;C:\Program Files (x86)\Microsoft Visual Studio 10.0\lib\amd64;"
66
+ )
67
+
68
+ build_script:
69
+ - if [%HOST%]==[mingw] (
70
+ ( if [%PLATFORM%]==[x64] (
71
+ SET "PATH=%PATH_MINGW64%;%PATH_ORIGINAL%"
72
+ ) else if [%PLATFORM%]==[x86] (
73
+ SET "PATH=%PATH_MINGW32%;%PATH_ORIGINAL%"
74
+ ) )
75
+ )
76
+ - if [%HOST%]==[mingw] if [%BUILD%]==[true] (
77
+ make -v &&
78
+ sh -c "%COMPILER% -v" &&
79
+ ECHO Building zlib to static link &&
80
+ SET "CC=%COMPILER%" &&
81
+ sh -c "cd .. && git clone --depth 1 --branch v1.2.11 https://github.com/madler/zlib" &&
82
+ sh -c "cd ../zlib && make -f win32/Makefile.gcc libz.a"
83
+ ECHO Building zstd &&
84
+ SET "CPPFLAGS=-I../../zlib" &&
85
+ SET "LDFLAGS=../../zlib/libz.a" &&
86
+ sh -c "%SCRIPT%" &&
87
+ ( if [%COMPILER%]==[gcc] if [%ARTIFACT%]==[true]
88
+ ECHO Creating artifacts &&
89
+ ECHO %cd% &&
90
+ lib\dll\example\build_package.bat &&
91
+ make -C programs DEBUGFLAGS= clean zstd &&
92
+ cd programs\ && 7z a -tzip -mx9 zstd-win-binary-%PLATFORM%.zip zstd.exe &&
93
+ appveyor PushArtifact zstd-win-binary-%PLATFORM%.zip &&
94
+ cp zstd.exe ..\bin\zstd.exe &&
95
+ git clone --depth 1 --branch master https://github.com/facebook/zstd &&
96
+ cd zstd &&
97
+ git archive --format=tar master -o zstd-src.tar &&
98
+ ..\zstd -19 zstd-src.tar &&
99
+ appveyor PushArtifact zstd-src.tar.zst &&
100
+ certUtil -hashfile zstd-src.tar.zst SHA256 > zstd-src.tar.zst.sha256.sig &&
101
+ appveyor PushArtifact zstd-src.tar.zst.sha256.sig &&
102
+ cd ..\..\bin\ &&
103
+ 7z a -tzip -mx9 zstd-win-release-%PLATFORM%.zip * &&
104
+ appveyor PushArtifact zstd-win-release-%PLATFORM%.zip
105
+ )
106
+ )
107
+ - if [%HOST%]==[visual] (
108
+ ECHO *** &&
109
+ ECHO *** Building Visual Studio 2008 %PLATFORM%\%CONFIGURATION% in %APPVEYOR_BUILD_FOLDER% &&
110
+ ECHO *** &&
111
+ msbuild "build\VS2008\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v90 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
112
+ DIR build\VS2008\bin\%PLATFORM%\%CONFIGURATION%\*.exe &&
113
+ MD5sum build/VS2008/bin/%PLATFORM%/%CONFIGURATION%/*.exe &&
114
+ COPY build\VS2008\bin\%PLATFORM%\%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2008_%PLATFORM%_%CONFIGURATION%.exe &&
115
+ ECHO *** &&
116
+ ECHO *** Building Visual Studio 2010 %PLATFORM%\%CONFIGURATION% &&
117
+ ECHO *** &&
118
+ msbuild "build\VS2010\zstd.sln" %ADDITIONALPARAM% /m /verbosity:minimal /property:PlatformToolset=v100 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
119
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
120
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
121
+ msbuild "build\VS2010\zstd.sln" %ADDITIONALPARAM% /m /verbosity:minimal /property:PlatformToolset=v100 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
122
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
123
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
124
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2010_%PLATFORM%_%CONFIGURATION%.exe &&
125
+ ECHO *** &&
126
+ ECHO *** Building Visual Studio 2012 %PLATFORM%\%CONFIGURATION% &&
127
+ ECHO *** &&
128
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v110 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
129
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
130
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
131
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v110 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
132
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
133
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
134
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2012_%PLATFORM%_%CONFIGURATION%.exe &&
135
+ ECHO *** &&
136
+ ECHO *** Building Visual Studio 2013 %PLATFORM%\%CONFIGURATION% &&
137
+ ECHO *** &&
138
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v120 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
139
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
140
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
141
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v120 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
142
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
143
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
144
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2013_%PLATFORM%_%CONFIGURATION%.exe &&
145
+ ECHO *** &&
146
+ ECHO *** Building Visual Studio 2015 %PLATFORM%\%CONFIGURATION% &&
147
+ ECHO *** &&
148
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
149
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
150
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
151
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
152
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
153
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
154
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2015_%PLATFORM%_%CONFIGURATION%.exe &&
155
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe tests\
156
+ )
157
+
158
+ test_script:
159
+ - ECHO Testing %COMPILER% %PLATFORM% %CONFIGURATION%
160
+ - SET "CC=gcc"
161
+ - SET "CXX=g++"
162
+ - if [%TEST%]==[cmake] (
163
+ mkdir build\cmake\build &&
164
+ cd build\cmake\build &&
165
+ SET FUZZERTEST=-T2mn &&
166
+ SET ZSTREAM_TESTTIME=-T2mn &&
167
+ cmake -G "Visual Studio 14 2015 Win64" .. &&
168
+ cd ..\..\.. &&
169
+ make clean
170
+ )
171
+ - SET "FUZZERTEST=-T30s"
172
+ - if [%HOST%]==[visual] if [%CONFIGURATION%]==[Release] (
173
+ CD tests &&
174
+ SET ZSTD_BIN=./zstd.exe&&
175
+ SET DATAGEN_BIN=./datagen.exe&&
176
+ sh -e playTests.sh --test-large-data &&
177
+ fullbench.exe -i1 &&
178
+ fullbench.exe -i1 -P0 &&
179
+ fuzzer_VS2012_%PLATFORM%_Release.exe %FUZZERTEST% &&
180
+ fuzzer_VS2013_%PLATFORM%_Release.exe %FUZZERTEST% &&
181
+ fuzzer_VS2015_%PLATFORM%_Release.exe %FUZZERTEST%
182
+ )
183
+
184
+
185
+ # The following tests are for regular pushes
186
+ # into `dev` or some feature branch
187
+ # There run less tests, for shorter feedback loop
188
+
189
+ -
190
+ version: 1.0.{build}
191
+ environment:
192
+ matrix:
193
+ - COMPILER: "gcc"
194
+ HOST: "cygwin"
195
+ PLATFORM: "x64"
196
+ - COMPILER: "gcc"
197
+ HOST: "mingw"
198
+ PLATFORM: "x64"
199
+ SCRIPT: "CFLAGS=-Werror make -j allzstd DEBUGLEVEL=2"
200
+ - COMPILER: "gcc"
201
+ HOST: "mingw"
202
+ PLATFORM: "x86"
203
+ SCRIPT: "CFLAGS=-Werror make -j allzstd"
204
+ - COMPILER: "clang"
205
+ HOST: "mingw"
206
+ PLATFORM: "x64"
207
+ SCRIPT: "CFLAGS='--target=x86_64-w64-mingw32 -Werror -Wconversion -Wno-sign-conversion' make -j allzstd"
208
+
209
+ - COMPILER: "visual"
210
+ HOST: "visual"
211
+ PLATFORM: "x64"
212
+ CONFIGURATION: "Debug"
213
+ - COMPILER: "visual"
214
+ HOST: "visual"
215
+ PLATFORM: "Win32"
216
+ CONFIGURATION: "Debug"
217
+ - COMPILER: "visual"
218
+ HOST: "visual"
219
+ PLATFORM: "x64"
220
+ CONFIGURATION: "Release"
221
+ - COMPILER: "visual"
222
+ HOST: "visual"
223
+ PLATFORM: "Win32"
224
+ CONFIGURATION: "Release"
225
+
226
+ install:
227
+ - ECHO Installing %COMPILER% %PLATFORM% %CONFIGURATION%
228
+ - SET PATH_ORIGINAL=%PATH%
229
+ - if [%HOST%]==[cygwin] (
230
+ ECHO Installing Cygwin Packages &&
231
+ C:\cygwin64\setup-x86_64.exe -qnNdO -R "C:\cygwin64" -g -P ^
232
+ gcc-g++,^
233
+ gcc,^
234
+ cmake,^
235
+ make
236
+ )
237
+ - if [%HOST%]==[mingw] (
238
+ SET "PATH_MINGW32=C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin" &&
239
+ SET "PATH_MINGW64=C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin" &&
240
+ COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin\make.exe &&
241
+ COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin\make.exe
242
+ )
243
+ - IF [%HOST%]==[visual] IF [%PLATFORM%]==[x64] (
244
+ SET ADDITIONALPARAM=/p:LibraryPath="C:\Program Files\Microsoft SDKs\Windows\v7.1\lib\x64;c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 10.0\;C:\Program Files (x86)\Microsoft Visual Studio 10.0\lib\amd64;"
245
+ )
246
+
247
+ build_script:
248
+ - ECHO Building %COMPILER% %PLATFORM% %CONFIGURATION%
249
+ - if [%HOST%]==[cygwin] (
250
+ set CHERE_INVOKING=yes &&
251
+ set CC=%COMPILER% &&
252
+ C:\cygwin64\bin\bash --login -c "
253
+ set -e;
254
+ cd build/cmake;
255
+ CFLAGS='-Werror' cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Debug -DZSTD_BUILD_TESTS:BOOL=ON -DZSTD_FUZZER_FLAGS=-T30s -DZSTD_ZSTREAM_FLAGS=-T30s .;
256
+ make -j4;
257
+ ctest -V -L Medium;
258
+ "
259
+ )
260
+ - if [%HOST%]==[mingw] (
261
+ ( if [%PLATFORM%]==[x64] (
262
+ SET "PATH=%PATH_MINGW64%;%PATH_ORIGINAL%"
263
+ ) else if [%PLATFORM%]==[x86] (
264
+ SET "PATH=%PATH_MINGW32%;%PATH_ORIGINAL%"
265
+ ) ) &&
266
+ make -v &&
267
+ sh -c "%COMPILER% -v" &&
268
+ set "CC=%COMPILER%" &&
269
+ sh -c "%SCRIPT%"
270
+ )
271
+ - if [%HOST%]==[visual] (
272
+ ECHO *** &&
273
+ ECHO *** Building Visual Studio 2015 %PLATFORM%\%CONFIGURATION% &&
274
+ ECHO *** &&
275
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
276
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
277
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
278
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
279
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
280
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
281
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2015_%PLATFORM%_%CONFIGURATION%.exe &&
282
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe tests\
283
+ )
284
+
285
+
286
+ test_script:
287
+ - ECHO Testing %COMPILER% %PLATFORM% %CONFIGURATION%
288
+ - if [%HOST%]==[mingw] (
289
+ set "CC=%COMPILER%" &&
290
+ make clean &&
291
+ make check
292
+ )
@@ -0,0 +1,234 @@
1
+ cxx_library(
2
+ name='zstd',
3
+ header_namespace='',
4
+ exported_headers=['zstd.h'],
5
+ visibility=['PUBLIC'],
6
+ deps=[
7
+ ':common',
8
+ ':compress',
9
+ ':decompress',
10
+ ':deprecated',
11
+ ],
12
+ )
13
+
14
+ cxx_library(
15
+ name='compress',
16
+ header_namespace='',
17
+ visibility=['PUBLIC'],
18
+ exported_headers=subdir_glob([
19
+ ('compress', 'zstd*.h'),
20
+ ]),
21
+ srcs=glob(['compress/zstd*.c', 'compress/hist.c']),
22
+ deps=[':common'],
23
+ )
24
+
25
+ cxx_library(
26
+ name='decompress',
27
+ header_namespace='',
28
+ visibility=['PUBLIC'],
29
+ headers=subdir_glob([
30
+ ('decompress', '*_impl.h'),
31
+ ]),
32
+ srcs=glob(['decompress/zstd*.c']),
33
+ deps=[
34
+ ':common',
35
+ ':legacy',
36
+ ],
37
+ )
38
+
39
+ cxx_library(
40
+ name='deprecated',
41
+ header_namespace='',
42
+ visibility=['PUBLIC'],
43
+ exported_headers=subdir_glob([
44
+ ('deprecated', '*.h'),
45
+ ]),
46
+ srcs=glob(['deprecated/*.c']),
47
+ deps=[':common'],
48
+ )
49
+
50
+ cxx_library(
51
+ name='legacy',
52
+ header_namespace='',
53
+ visibility=['PUBLIC'],
54
+ exported_headers=subdir_glob([
55
+ ('legacy', '*.h'),
56
+ ]),
57
+ srcs=glob(['legacy/*.c']),
58
+ deps=[':common'],
59
+ exported_preprocessor_flags=[
60
+ '-DZSTD_LEGACY_SUPPORT=4',
61
+ ],
62
+ )
63
+
64
+ cxx_library(
65
+ name='zdict',
66
+ header_namespace='',
67
+ visibility=['PUBLIC'],
68
+ exported_headers=subdir_glob([
69
+ ('dictBuilder', 'zdict.h'),
70
+ ]),
71
+ headers=subdir_glob([
72
+ ('dictBuilder', 'divsufsort.h'),
73
+ ('dictBuilder', 'cover.h'),
74
+ ]),
75
+ srcs=glob(['dictBuilder/*.c']),
76
+ deps=[':common'],
77
+ )
78
+
79
+ cxx_library(
80
+ name='compiler',
81
+ header_namespace='',
82
+ visibility=['PUBLIC'],
83
+ exported_headers=subdir_glob([
84
+ ('common', 'compiler.h'),
85
+ ]),
86
+ )
87
+
88
+ cxx_library(
89
+ name='cpu',
90
+ header_namespace='',
91
+ visibility=['PUBLIC'],
92
+ exported_headers=subdir_glob([
93
+ ('common', 'cpu.h'),
94
+ ]),
95
+ )
96
+
97
+ cxx_library(
98
+ name='bitstream',
99
+ header_namespace='',
100
+ visibility=['PUBLIC'],
101
+ exported_headers=subdir_glob([
102
+ ('common', 'bitstream.h'),
103
+ ]),
104
+ )
105
+
106
+ cxx_library(
107
+ name='entropy',
108
+ header_namespace='',
109
+ visibility=['PUBLIC'],
110
+ exported_headers=subdir_glob([
111
+ ('common', 'fse.h'),
112
+ ('common', 'huf.h'),
113
+ ]),
114
+ srcs=[
115
+ 'common/entropy_common.c',
116
+ 'common/fse_decompress.c',
117
+ 'compress/fse_compress.c',
118
+ 'compress/huf_compress.c',
119
+ 'decompress/huf_decompress.c',
120
+ ],
121
+ deps=[
122
+ ':debug',
123
+ ':bitstream',
124
+ ':compiler',
125
+ ':errors',
126
+ ':mem',
127
+ ],
128
+ )
129
+
130
+ cxx_library(
131
+ name='errors',
132
+ header_namespace='',
133
+ visibility=['PUBLIC'],
134
+ exported_headers=subdir_glob([
135
+ ('common', 'error_private.h'),
136
+ ('common', 'zstd_errors.h'),
137
+ ]),
138
+ srcs=['common/error_private.c'],
139
+ )
140
+
141
+ cxx_library(
142
+ name='mem',
143
+ header_namespace='',
144
+ visibility=['PUBLIC'],
145
+ exported_headers=subdir_glob([
146
+ ('common', 'mem.h'),
147
+ ]),
148
+ )
149
+
150
+ cxx_library(
151
+ name='pool',
152
+ header_namespace='',
153
+ visibility=['PUBLIC'],
154
+ exported_headers=subdir_glob([
155
+ ('common', 'pool.h'),
156
+ ]),
157
+ srcs=['common/pool.c'],
158
+ deps=[
159
+ ':threading',
160
+ ':zstd_common',
161
+ ],
162
+ )
163
+
164
+ cxx_library(
165
+ name='threading',
166
+ header_namespace='',
167
+ visibility=['PUBLIC'],
168
+ exported_headers=subdir_glob([
169
+ ('common', 'threading.h'),
170
+ ]),
171
+ srcs=['common/threading.c'],
172
+ exported_preprocessor_flags=[
173
+ '-DZSTD_MULTITHREAD',
174
+ ],
175
+ exported_linker_flags=[
176
+ '-pthread',
177
+ ],
178
+ )
179
+
180
+ cxx_library(
181
+ name='xxhash',
182
+ header_namespace='',
183
+ visibility=['PUBLIC'],
184
+ exported_headers=subdir_glob([
185
+ ('common', 'xxhash.h'),
186
+ ]),
187
+ srcs=['common/xxhash.c'],
188
+ exported_preprocessor_flags=[
189
+ '-DXXH_NAMESPACE=ZSTD_',
190
+ ],
191
+ )
192
+
193
+ cxx_library(
194
+ name='zstd_common',
195
+ header_namespace='',
196
+ visibility=['PUBLIC'],
197
+ exported_headers=subdir_glob([
198
+ ('', 'zstd.h'),
199
+ ('common', 'zstd_internal.h'),
200
+ ]),
201
+ srcs=['common/zstd_common.c'],
202
+ deps=[
203
+ ':compiler',
204
+ ':errors',
205
+ ':mem',
206
+ ],
207
+ )
208
+
209
+ cxx_library(
210
+ name='debug',
211
+ header_namespace='',
212
+ visibility=['PUBLIC'],
213
+ exported_headers=subdir_glob([
214
+ ('common', 'debug.h'),
215
+ ]),
216
+ srcs=['common/debug.c'],
217
+ )
218
+
219
+ cxx_library(
220
+ name='common',
221
+ deps=[
222
+ ':debug',
223
+ ':bitstream',
224
+ ':compiler',
225
+ ':cpu',
226
+ ':entropy',
227
+ ':errors',
228
+ ':mem',
229
+ ':pool',
230
+ ':threading',
231
+ ':xxhash',
232
+ ':zstd_common',
233
+ ]
234
+ )