extzstd 0.0.3.CONCEPT → 0.3.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 (138) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY.ja.md +39 -0
  3. data/LICENSE +6 -6
  4. data/README.md +26 -45
  5. data/contrib/zstd/CHANGELOG +555 -0
  6. data/contrib/zstd/CODE_OF_CONDUCT.md +5 -0
  7. data/contrib/zstd/CONTRIBUTING.md +392 -0
  8. data/contrib/zstd/COPYING +339 -0
  9. data/contrib/zstd/LICENSE +13 -9
  10. data/contrib/zstd/Makefile +414 -0
  11. data/contrib/zstd/README.md +170 -45
  12. data/contrib/zstd/TESTING.md +44 -0
  13. data/contrib/zstd/appveyor.yml +289 -0
  14. data/contrib/zstd/lib/BUCK +234 -0
  15. data/contrib/zstd/lib/Makefile +354 -0
  16. data/contrib/zstd/lib/README.md +179 -0
  17. data/contrib/zstd/{common → lib/common}/bitstream.h +170 -130
  18. data/contrib/zstd/lib/common/compiler.h +175 -0
  19. data/contrib/zstd/lib/common/cpu.h +215 -0
  20. data/contrib/zstd/lib/common/debug.c +24 -0
  21. data/contrib/zstd/lib/common/debug.h +114 -0
  22. data/contrib/zstd/{common → lib/common}/entropy_common.c +79 -94
  23. data/contrib/zstd/lib/common/error_private.c +55 -0
  24. data/contrib/zstd/lib/common/error_private.h +80 -0
  25. data/contrib/zstd/{common → lib/common}/fse.h +153 -93
  26. data/contrib/zstd/{common → lib/common}/fse_decompress.c +37 -82
  27. data/contrib/zstd/lib/common/huf.h +340 -0
  28. data/contrib/zstd/{common → lib/common}/mem.h +154 -78
  29. data/contrib/zstd/lib/common/pool.c +344 -0
  30. data/contrib/zstd/lib/common/pool.h +84 -0
  31. data/contrib/zstd/lib/common/threading.c +121 -0
  32. data/contrib/zstd/lib/common/threading.h +155 -0
  33. data/contrib/zstd/{common → lib/common}/xxhash.c +85 -75
  34. data/contrib/zstd/{common → lib/common}/xxhash.h +85 -73
  35. data/contrib/zstd/lib/common/zstd_common.c +83 -0
  36. data/contrib/zstd/lib/common/zstd_errors.h +94 -0
  37. data/contrib/zstd/lib/common/zstd_internal.h +447 -0
  38. data/contrib/zstd/{compress → lib/compress}/fse_compress.c +194 -303
  39. data/contrib/zstd/lib/compress/hist.c +183 -0
  40. data/contrib/zstd/lib/compress/hist.h +75 -0
  41. data/contrib/zstd/lib/compress/huf_compress.c +798 -0
  42. data/contrib/zstd/lib/compress/zstd_compress.c +4278 -0
  43. data/contrib/zstd/lib/compress/zstd_compress_internal.h +1125 -0
  44. data/contrib/zstd/lib/compress/zstd_compress_literals.c +158 -0
  45. data/contrib/zstd/lib/compress/zstd_compress_literals.h +29 -0
  46. data/contrib/zstd/lib/compress/zstd_compress_sequences.c +419 -0
  47. data/contrib/zstd/lib/compress/zstd_compress_sequences.h +54 -0
  48. data/contrib/zstd/lib/compress/zstd_compress_superblock.c +845 -0
  49. data/contrib/zstd/lib/compress/zstd_compress_superblock.h +32 -0
  50. data/contrib/zstd/lib/compress/zstd_cwksp.h +525 -0
  51. data/contrib/zstd/lib/compress/zstd_double_fast.c +521 -0
  52. data/contrib/zstd/lib/compress/zstd_double_fast.h +38 -0
  53. data/contrib/zstd/lib/compress/zstd_fast.c +496 -0
  54. data/contrib/zstd/lib/compress/zstd_fast.h +37 -0
  55. data/contrib/zstd/lib/compress/zstd_lazy.c +1138 -0
  56. data/contrib/zstd/lib/compress/zstd_lazy.h +67 -0
  57. data/contrib/zstd/lib/compress/zstd_ldm.c +619 -0
  58. data/contrib/zstd/lib/compress/zstd_ldm.h +110 -0
  59. data/contrib/zstd/lib/compress/zstd_opt.c +1200 -0
  60. data/contrib/zstd/lib/compress/zstd_opt.h +56 -0
  61. data/contrib/zstd/lib/compress/zstdmt_compress.c +2143 -0
  62. data/contrib/zstd/lib/compress/zstdmt_compress.h +192 -0
  63. data/contrib/zstd/lib/decompress/huf_decompress.c +1248 -0
  64. data/contrib/zstd/lib/decompress/zstd_ddict.c +244 -0
  65. data/contrib/zstd/lib/decompress/zstd_ddict.h +44 -0
  66. data/contrib/zstd/lib/decompress/zstd_decompress.c +1885 -0
  67. data/contrib/zstd/lib/decompress/zstd_decompress_block.c +1432 -0
  68. data/contrib/zstd/lib/decompress/zstd_decompress_block.h +59 -0
  69. data/contrib/zstd/lib/decompress/zstd_decompress_internal.h +189 -0
  70. data/contrib/zstd/{common → lib/deprecated}/zbuff.h +86 -69
  71. data/contrib/zstd/lib/deprecated/zbuff_common.c +26 -0
  72. data/contrib/zstd/lib/deprecated/zbuff_compress.c +147 -0
  73. data/contrib/zstd/lib/deprecated/zbuff_decompress.c +75 -0
  74. data/contrib/zstd/lib/dictBuilder/cover.c +1236 -0
  75. data/contrib/zstd/lib/dictBuilder/cover.h +157 -0
  76. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/divsufsort.c +3 -3
  77. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/divsufsort.h +5 -5
  78. data/contrib/zstd/lib/dictBuilder/fastcover.c +757 -0
  79. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/zdict.c +437 -347
  80. data/contrib/zstd/lib/dictBuilder/zdict.h +305 -0
  81. data/contrib/zstd/lib/legacy/zstd_legacy.h +415 -0
  82. data/contrib/zstd/{legacy → lib/legacy}/zstd_v01.c +272 -292
  83. data/contrib/zstd/{legacy → lib/legacy}/zstd_v01.h +26 -32
  84. data/contrib/zstd/{legacy → lib/legacy}/zstd_v02.c +162 -392
  85. data/contrib/zstd/{legacy → lib/legacy}/zstd_v02.h +26 -32
  86. data/contrib/zstd/{legacy → lib/legacy}/zstd_v03.c +162 -391
  87. data/contrib/zstd/{legacy → lib/legacy}/zstd_v03.h +27 -33
  88. data/contrib/zstd/{legacy → lib/legacy}/zstd_v04.c +195 -604
  89. data/contrib/zstd/{legacy → lib/legacy}/zstd_v04.h +26 -32
  90. data/contrib/zstd/{legacy → lib/legacy}/zstd_v05.c +300 -575
  91. data/contrib/zstd/{legacy → lib/legacy}/zstd_v05.h +22 -31
  92. data/contrib/zstd/{legacy → lib/legacy}/zstd_v06.c +165 -592
  93. data/contrib/zstd/{legacy → lib/legacy}/zstd_v06.h +54 -67
  94. data/contrib/zstd/lib/legacy/zstd_v07.c +4541 -0
  95. data/contrib/zstd/lib/legacy/zstd_v07.h +187 -0
  96. data/contrib/zstd/lib/libzstd.pc.in +15 -0
  97. data/contrib/zstd/lib/zstd.h +2090 -0
  98. data/ext/depend +2 -0
  99. data/ext/extconf.rb +18 -5
  100. data/ext/extzstd.c +296 -214
  101. data/ext/extzstd.h +81 -36
  102. data/ext/extzstd_nogvls.h +0 -117
  103. data/ext/extzstd_stream.c +622 -0
  104. data/ext/libzstd_conf.h +8 -0
  105. data/ext/zstd_common.c +11 -0
  106. data/ext/zstd_compress.c +15 -0
  107. data/ext/zstd_decompress.c +6 -0
  108. data/ext/zstd_dictbuilder.c +10 -0
  109. data/ext/zstd_dictbuilder_fastcover.c +3 -0
  110. data/ext/zstd_legacy_v01.c +3 -1
  111. data/ext/zstd_legacy_v02.c +3 -1
  112. data/ext/zstd_legacy_v03.c +3 -1
  113. data/ext/zstd_legacy_v04.c +3 -1
  114. data/ext/zstd_legacy_v05.c +3 -1
  115. data/ext/zstd_legacy_v06.c +3 -1
  116. data/ext/zstd_legacy_v07.c +3 -0
  117. data/gemstub.rb +27 -21
  118. data/lib/extzstd.rb +82 -161
  119. data/lib/extzstd/version.rb +1 -1
  120. data/test/test_basic.rb +19 -6
  121. metadata +127 -59
  122. data/contrib/zstd/common/error_private.h +0 -125
  123. data/contrib/zstd/common/error_public.h +0 -77
  124. data/contrib/zstd/common/huf.h +0 -228
  125. data/contrib/zstd/common/zstd.h +0 -475
  126. data/contrib/zstd/common/zstd_common.c +0 -91
  127. data/contrib/zstd/common/zstd_internal.h +0 -238
  128. data/contrib/zstd/compress/huf_compress.c +0 -577
  129. data/contrib/zstd/compress/zbuff_compress.c +0 -327
  130. data/contrib/zstd/compress/zstd_compress.c +0 -3074
  131. data/contrib/zstd/compress/zstd_opt.h +0 -1046
  132. data/contrib/zstd/decompress/huf_decompress.c +0 -894
  133. data/contrib/zstd/decompress/zbuff_decompress.c +0 -294
  134. data/contrib/zstd/decompress/zstd_decompress.c +0 -1362
  135. data/contrib/zstd/dictBuilder/zdict.h +0 -113
  136. data/contrib/zstd/legacy/zstd_legacy.h +0 -140
  137. data/ext/extzstd_buffered.c +0 -265
  138. data/ext/zstd_amalgam.c +0 -18
@@ -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,289 @@
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
+ cmake -G "Visual Studio 14 2015 Win64" .. &&
166
+ cd ..\..\.. &&
167
+ make clean
168
+ )
169
+ - SET "FUZZERTEST=-T30s"
170
+ - if [%HOST%]==[visual] if [%CONFIGURATION%]==[Release] (
171
+ CD tests &&
172
+ SET ZSTD_BIN=./zstd.exe&&
173
+ SET DATAGEN_BIN=./datagen.exe&&
174
+ sh -e playTests.sh --test-large-data &&
175
+ fullbench.exe -i1 &&
176
+ fullbench.exe -i1 -P0 &&
177
+ fuzzer_VS2012_%PLATFORM%_Release.exe %FUZZERTEST% &&
178
+ fuzzer_VS2013_%PLATFORM%_Release.exe %FUZZERTEST% &&
179
+ fuzzer_VS2015_%PLATFORM%_Release.exe %FUZZERTEST%
180
+ )
181
+
182
+
183
+ # The following tests are for regular pushes
184
+ # into `dev` or some feature branch
185
+ # There run less tests, for shorter feedback loop
186
+
187
+ -
188
+ version: 1.0.{build}
189
+ environment:
190
+ matrix:
191
+ - COMPILER: "gcc"
192
+ HOST: "cygwin"
193
+ PLATFORM: "x64"
194
+ - COMPILER: "gcc"
195
+ HOST: "mingw"
196
+ PLATFORM: "x64"
197
+ SCRIPT: "CPPFLAGS=-DDEBUGLEVEL=2 CFLAGS=-Werror make -j allzstd DEBUGLEVEL=2"
198
+ - COMPILER: "gcc"
199
+ HOST: "mingw"
200
+ PLATFORM: "x86"
201
+ SCRIPT: "CFLAGS=-Werror make -j allzstd"
202
+ - COMPILER: "clang"
203
+ HOST: "mingw"
204
+ PLATFORM: "x64"
205
+ SCRIPT: "CFLAGS='--target=x86_64-w64-mingw32 -Werror -Wconversion -Wno-sign-conversion' make -j allzstd"
206
+
207
+ - COMPILER: "visual"
208
+ HOST: "visual"
209
+ PLATFORM: "x64"
210
+ CONFIGURATION: "Debug"
211
+ - COMPILER: "visual"
212
+ HOST: "visual"
213
+ PLATFORM: "Win32"
214
+ CONFIGURATION: "Debug"
215
+ - COMPILER: "visual"
216
+ HOST: "visual"
217
+ PLATFORM: "x64"
218
+ CONFIGURATION: "Release"
219
+ - COMPILER: "visual"
220
+ HOST: "visual"
221
+ PLATFORM: "Win32"
222
+ CONFIGURATION: "Release"
223
+
224
+ install:
225
+ - ECHO Installing %COMPILER% %PLATFORM% %CONFIGURATION%
226
+ - SET PATH_ORIGINAL=%PATH%
227
+ - if [%HOST%]==[cygwin] (
228
+ ECHO Installing Cygwin Packages &&
229
+ C:\cygwin64\setup-x86_64.exe -qnNdO -R "C:\cygwin64" -g -P ^
230
+ gcc-g++,^
231
+ gcc,^
232
+ cmake,^
233
+ make
234
+ )
235
+ - if [%HOST%]==[mingw] (
236
+ SET "PATH_MINGW32=C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin" &&
237
+ SET "PATH_MINGW64=C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin" &&
238
+ COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin\make.exe &&
239
+ COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin\make.exe
240
+ )
241
+ - IF [%HOST%]==[visual] IF [%PLATFORM%]==[x64] (
242
+ 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;"
243
+ )
244
+
245
+ build_script:
246
+ - ECHO Building %COMPILER% %PLATFORM% %CONFIGURATION%
247
+ - if [%HOST%]==[cygwin] (
248
+ set CHERE_INVOKING=yes &&
249
+ set CC=%COMPILER% &&
250
+ C:\cygwin64\bin\bash --login -c "
251
+ set -e;
252
+ cd build/cmake;
253
+ CFLAGS='-Werror' cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Debug -DZSTD_BUILD_TESTS:BOOL=ON -DZSTD_FUZZER_FLAGS=-T30s -DZSTD_ZSTREAM_FLAGS=-T30s .;
254
+ make -j4;
255
+ ctest -V -L Medium;
256
+ "
257
+ )
258
+ - if [%HOST%]==[mingw] (
259
+ ( if [%PLATFORM%]==[x64] (
260
+ SET "PATH=%PATH_MINGW64%;%PATH_ORIGINAL%"
261
+ ) else if [%PLATFORM%]==[x86] (
262
+ SET "PATH=%PATH_MINGW32%;%PATH_ORIGINAL%"
263
+ ) ) &&
264
+ make -v &&
265
+ sh -c "%COMPILER% -v" &&
266
+ set "CC=%COMPILER%" &&
267
+ sh -c "%SCRIPT%"
268
+ )
269
+ - if [%HOST%]==[visual] (
270
+ ECHO *** &&
271
+ ECHO *** Building Visual Studio 2015 %PLATFORM%\%CONFIGURATION% &&
272
+ ECHO *** &&
273
+ 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" &&
274
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
275
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
276
+ 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" &&
277
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
278
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
279
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2015_%PLATFORM%_%CONFIGURATION%.exe &&
280
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe tests\
281
+ )
282
+
283
+
284
+ test_script:
285
+ - ECHO Testing %COMPILER% %PLATFORM% %CONFIGURATION%
286
+ - if [%HOST%]==[mingw] (
287
+ set "CC=%COMPILER%" &&
288
+ make check
289
+ )
@@ -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
+ )