Commit Graph

6092 Commits

Author SHA1 Message Date
Lzu Tao
25311d24c6 meson: Use clang for faster build 2018-12-03 00:57:10 +07:00
Lzu Tao
65507666bb Use -Dlegacy_level build option to control ZSTD_LEGACY_SUPPORT macro in test 2018-12-03 00:36:40 +07:00
Lzu Tao
437ec5f47f meson helper: Use Python conventional name for naming function [skip ci] 2018-12-02 22:48:11 +07:00
Lzu Tao
838de08439 meson: Fix soversion 2018-12-02 22:45:46 +07:00
Lzu Tao
23d751507e meson: Use -werror build option instead of adding -Werror [skip ci] 2018-12-02 22:33:43 +07:00
Lzu Tao
38728b4518 Use argparse instead of manually parsing [skip ci] 2018-12-02 22:33:43 +07:00
Lzu Tao
7da18bc85a Add missed .1 extension for manpage [skip ci] 2018-12-02 00:18:00 +07:00
Lzu Tao
cbf2a924dd meson: Cleanup installing symlinks 2018-12-01 23:18:59 +07:00
Lzu Tao
519b2de6f7 Update README 2018-12-01 23:18:59 +07:00
Lzu Tao
8d5252b68d meson: Remove redundant join_paths function 2018-12-01 23:18:59 +07:00
Lzu Tao
ff1bca3fbd ci: Use new meson auto_features option
* Install lz4 dep from Ubuntu repo
* Use curl instead of wget
* Use xenial for meson and make meson build first
* Unset Travis preset CC and CXX value for meson to use ccache
* Be more verbose with "set -x"
2018-12-01 23:18:59 +07:00
Lzu Tao
24bc513ea1 meson: Change build options' name 2018-12-01 23:18:59 +07:00
Lzu Tao
39f49ac39f Add almost all test cases in tests/Makefile 2018-12-01 23:18:59 +07:00
Lzu Tao
c55d65b35d Add clang cflags 2018-12-01 23:18:59 +07:00
Lzu Tao
0a0683f5b2 Initial support for Windows build 2018-12-01 23:18:59 +07:00
Lzu Tao
2337429e8d Change tabsize 2018-12-01 23:18:59 +07:00
Lzu Tao
8c59d94d7a Build both shared and static lib on CI
Rename INSTALL_SYSTEM to BUILD_SYSTEM
2018-12-01 23:18:59 +07:00
Lzu Tao
c4fb45ffe8 Add comment about looking for dependencies 2018-12-01 23:18:59 +07:00
Lzu Tao
918e0d5c36 Rename some meson build options to match autoconf convention 2018-12-01 23:18:59 +07:00
Lzu Tao
9ac9cbc9de Enable debugging flag 2018-12-01 23:18:59 +07:00
Lzu Tao
0669392937 Update relevant files after moving meson to build/
Update meson build instructions
2018-12-01 23:18:59 +07:00
Lzu Tao
beb13bd87e Move contrib/meson to build/meson 2018-12-01 23:18:59 +07:00
Lzu Tao
c0e71cae55 Add enable_lz4 build option and fix lzma dependency 2018-12-01 23:18:59 +07:00
Lzu Tao
5c4965c351 Add pedantic flag 2018-12-01 23:18:59 +07:00
Lzu Tao
6f3f1a8d3a No install zstd_manual.html 2018-12-01 23:18:59 +07:00
Lzu Tao
f660825d9f Install missed zstdgrep and zstdless 2018-12-01 23:18:59 +07:00
Lzu Tao
3f27e2a072 Install zstdmt.1 manpage [skip ci] 2018-12-01 23:18:59 +07:00
Lzu Tao
d3134a3ed3 Rename meson variables 2018-12-01 23:18:59 +07:00
Lzu Tao
1985e427c7 Add manpage install warning [skip ci]
We link new manpages with gz compressed format of the target manpage.
I have not tested it on Windows. So just place a warning here.
2018-12-01 23:18:59 +07:00
Lzu Tao
9c862c6a53 Fix manpage symlinks [skip ci] 2018-12-01 23:18:59 +07:00
Lzu Tao
d79df2a370 Apply new InstallSymlink script 2018-12-01 23:18:59 +07:00
Lzu Tao
ef2e761937 Helper script to install symlink in meson 2018-12-01 23:18:59 +07:00
Lzu Tao
3175188407 No need these helpers 2018-12-01 23:18:59 +07:00
Lzu Tao
0a25b13aae Init CI test for meson build
Do not use ccache: Build error in gcc-8
2018-12-01 23:18:59 +07:00
Lzu Tao
337f914dc8 Fix lib soversion and no install cover.h header 2018-12-01 23:18:59 +07:00
Lzu Tao
c9f0144302 Fix meson tests build 2018-12-01 23:18:59 +07:00
Lzu Tao
5a36a57cf5 Bump to 1.3.8 and fix run_command function
The run_command is run from an unspecified directory. Therefore we cannot assume
which directory it is running our command.
2018-12-01 23:18:59 +07:00
Lzu Tao
8a160680d1 Update legacy support to 5 2018-12-01 23:18:59 +07:00
Lzu Tao
f727808731 Minor fix for meson build
Use files function instead of constructing path with meson.current_source_dir()
2018-12-01 23:18:59 +07:00
Nick Terrell
e859862341 [regression] Add dictionary support
Dictionaries are prebuilt and saved as part of the data object.
The config decides whether or not to use the dictionary if it is
available. Configs that require dictionaries are only run with
data that have dictionaries. The method will skip configs that are
irrelevant, so for example ZSTD_compress() will skip configs with
dictionaries.

I've also trimmed the silesia source to 1MB per file (12 MB total),
and added 500 samples from the github data set with a dictionary.

I've intentionally added an extra line to the `results.csv` to make
the nightly build fail, so that we can see how CircleCI reports it.

Full list of changes:

* Add pre-built dictionaries to the data.
* Add `use_dictionary` and `no_pledged_src_size` flags to the config.
* Add a config using a dictionary for every level.
* Add a config that specifies no pledged source size.
* Support dictionaries and streaming in the `zstdcli` method.
* Add a context-reuse method using `ZSTD_compressCCtx()`.
* Clean up the formatting of the `results.csv` file to align columns.
* Add `--data`, `--config`, and `--method` flags to constrain each
  to a particular value. This is useful for debugging a failure
  or debugging a particular config/method/data.
2018-11-30 18:23:01 -08:00
Yann Collet
da1f3066a3 preparative for ZSTD_DCtx_setParameter() 2018-11-30 15:59:50 -08:00
Yann Collet
d8e215cbee created ZSTD_compress2() and ZSTD_compressStream2()
ZSTD_compress_generic() is renamed ZSTD_compressStream2().

Note that, for the time being,
the "stable" API and advanced one use different parameter planes :
setting parameters using the advanced API does not influence ZSTD_compressStream()
and using ZSTD_initCStream() does not influence parameters for ZSTD_compressStream2().
2018-11-30 11:25:56 -08:00
Yann Collet
386c9ab58a
Merge pull request #1433 from obelisk/fixed_buck
Small changes for buck build
2018-11-30 11:21:09 -08:00
Mitchell Grenier
a424899637 Fix buck for lib 2018-11-30 13:45:16 +00:00
Yann Collet
090bc808a8
Merge pull request #1432 from terrelln/regression
[regression] Add initial regression test framework
2018-11-29 16:06:40 -08:00
Nick Terrell
4aaa36f74b [regression] Add initial regression test framework
The regression tests run nightly or on the `regression`
branch for convenience. The results get uploaded as the
artifacts of the job. If they change, check the diff
printed in the job. If all is well, download the new
results and commit them to the repo.

This code will only run on a UNIX like platform. It
could be made to run on Windows, but I don't think that
it is necessary. It also uses C99.

* data: This module defines the data to run tests on.
  It downloads data from a URL into a cache directory,
  checks it against a checksum, and unpacks it. It also
  provides helpers for accessing the data.
* config: This module defines the configs to run tests
  with. A config is a set of API parameters and a set of
  CLI flags.
* result: This module is a helper for method that defines
  the result type.
* method: This module defines the compression methods
  to test. It is what runs the regression test using the
  data and the config. It reports the total compressed
  size, or an error/skip.
* test: This is the test binary that runs the tests for
  every (data, config, method) tuple, and prints the
  results to the output file and stderr.
* results.csv: The results that the current commit is
  expected to produce.
2018-11-29 14:33:04 -08:00
Yann Collet
f6591e4a04
Merge pull request #1430 from lzutao/fix-zstdgrep
Fix  #1428 - zstdgrep now returns 1 on unmatch
2018-11-28 14:07:40 -08:00
Lzu Tao
d095adf9fb Add simple test for zstdgrep 2018-11-29 03:39:47 +07:00
Lzu Tao
3d18b4764d Prevent globbing on non-quoting variable 2018-11-29 03:04:40 +07:00
Lzu Tao
c046e0b626 Fix #1428 - zstdgrep now returns 1 on unmatch 2018-11-29 02:45:01 +07:00