aboutsummaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)AuthorFilesLines
2023-09-13upload full testdata archiveEvgenii Kliuchnikov1-0/+7
PiperOrigin-RevId: 565017690
2023-08-21prepare for 1.1.0rcEvgenii Kliuchnikov2-2/+2
PiperOrigin-RevId: 558736892
2023-07-30simplify CMake buildEvgenii Kliuchnikov1-111/+0
PiperOrigin-RevId: 552238545
2022-11-17UpdateEvgenii Kliuchnikov1-0/+1
Documentation: - add note that brotli is a "stream" format, not an archive-like - regenerate .1 with Pandoc Build: - drop legacy "BROTLI_BUILD_PORTABLE" option - drop "BROTLI_SANITIZED" definition Code: - c: comb includes - c/enc: extract encoder state into separate header - c/enc: drop designated q10 codepath - c/enc: dealing better with flushing of empty stream - fix MSVC compilation API: - py: use library version instead of one in version.h - c: add plugable API to report consumed input / produced output - c/java: support "lean" prepared dictionaries (without copy of source)
2021-08-31Migrate to github actions (#920)Eugene Kliuchnikov10-264/+15
Not all combinations are migrated to the initial configuration; corresponding TODOs added. Drive-by: additional combinations uncovered minor portability problems -> fixed Drive-by: remove no-longer used "script" files. Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org>
2021-08-04Merge-in SharedDictionary feature (#916)Eugene Kliuchnikov1-0/+5
Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org>
2021-06-23Update (#908)Eugene Kliuchnikov1-2/+1
* re-enable Js build/test * improve decoder performance * rewrite dictionary data in Java/Js to a shorter uncompressed form * improve dictionary generation tool
2021-01-27unichr was removed in Python 3 because all str are Unicode (#877)Christian Clauss1-0/+5
https://python-future.org/compatible_idioms.html#unichr
2021-01-18Update (#852)Eugene Kliuchnikov1-1/+2
* Update * comments and clarifications in block_splitter * power-of-2 aligned allocations for Hasher * refresh decode.js from Java sources * disable JS build
2020-09-02Revert "Add runtime linker path to pkg-config files (#740)" (#838)Eugene Kliuchnikov3-3/+3
This reverts commit 31754d4ffce14153b5c2addf7a11019ec23f51c1.
2020-08-26New version: 1.0.8 (#827)Eugene Kliuchnikov1-1/+1
2020-08-26Update (#826)Eugene Kliuchnikov2-1/+6
* IMPORTANT: decoder: fix potential overflow when input chunk is >2GiB * simplify max Huffman table size calculation * eliminate symbol duplicates (static arrays in .h files) * minor combing in research/ code
2020-05-15Add runtime linker path to pkg-config files (#740)Nils Goroll3-3/+3
Otherwise libraries will not be found at runtime when installing to a path not included in the default runtime linker's path with programs linking brotli configured via pkg-config.
2020-03-31Update bazel to 2.2 + update config (#798)Eugene Kliuchnikov2-3/+3
Newer bazel does not support `maven_jar` rule anymore...
2019-07-16Explicitly mark tests/testdata/* as binary. (#761)Eugene Kliuchnikov1-0/+1
Fixes #760 Drive-by: * update go_rules * modernize brotli_inc * fix wrapper build * update PY to 3 in Travis / OSX / Bazel build * upgrade JS Bazel rules.
2018-10-18Remove dependency to full JDK. This should speedup clean builds. (#719)Eugene Kliuchnikov1-1/+1
* Remove dependency to full JDK. This should speedup clean builds. * Upgrade appveyor bazel
2018-09-27Cross compilation support (#709)Stephen Kyle1-3/+3
* build: add cross-compilation support to make Set CROSS_COMPILE when running make to use the selected cross compilation toolchain, such as arm-linux-gnueabihf, or aarch64-linux-gnu. Testing requires the presence of qemu - 'qemu-$(ARCH)' will be executed, where ARCH is the first part of the toolchain triplet. * build: add cross-compilation support to cmake If C_COMPILER/CXX_COMPILER/CC/CXX are found to have cross-compilation triplets in front of the compiler, then qemu will be used to execute the tests. * CI: add arm-linux-gnueabihf-gcc builder to Travis The version of qemu available in Ubuntu trusty (as provided by Travis) appears to have a bug in qemu-aarch64, which leads to the compatibility tests failing on some inputs, erroneously rejecting the input as corrupt. Once Travis supports xenial, we could add an aarch64-gnu-linux-gcc builder as well. * CI: propagate cmake errors out of .travis.sh Seems like even if cmake fails, the error isn't picked up by Travis.
2018-07-09Fix missing header files (#695)William A. Kennington III1-0/+2
Our dist tarball is missing hash_rolling_inc.h and hash_composite_inc.h, which causes subsequent autotools builds to fail. Fix this by adding it to the sources list. Signed-off-by: William A. Kennington III <william@wkennington.com>
2018-06-18Add VS2017 release Appveyor build (#685)Eugene Kliuchnikov1-4/+16
2018-06-04Inverse bazel project/workspace tree (#677)Eugene Kliuchnikov3-9/+27
* Inverse bazel workspace tree. Now each subproject directly depends on root (c) project. This helps to mitigate Bazel bug bazelbuild/bazel#2391; short summary: Bazel does not work if referenced subproject `WORKSPACE` uses any repositories that embedding project does not. Bright side: building C project is much faster; no need to download closure, go and JDK...
2018-05-16Add tools to download and transform static dictionary data. (#670)Eugene Kliuchnikov5-0/+170
2018-04-20appveyor: fix issue self-upgradig pip to v10 (#663)Cosimo Lupo1-1/+1
Installing with --user will leave the old pip.exe script in the $PATH, but running this will fail because pip 10 moved 'main' to internal modules. https://github.com/pypa/pip/issues/5240#issuecomment-382989420
2018-04-13Update (#660)Eugene Kliuchnikov1-1/+1
* Update * improve q=1 compression on small files * fix "left shift before promotion" * fix osx Travis builds
2018-03-20Update (#651)Eugene Kliuchnikov2-1/+2
* fix `bazel` build (ignore switch case fall-through) * add `NPOSTFIX` / `NDIRECT` encoder parameters * fix source file lists (add `params.h`) * fix bug in `durchschlag` * print clarifying messages wheb CLI argument parsing fails
2018-02-26New feature: "Large Window Brotli" (#640)Eugene Kliuchnikov1-8/+9
* New feature: "Large Window Brotli" By setting special encoder/decoder flag it is now possible to extend LZ-window up to 30 bits; though produced stream will not be RFC7932 compliant. Added new dictionary generator - "DSH". It combines speed of "Sieve" and quality of "DM". Plus utilities to prepare train corpora (remove unique strings). Improved compression ratio: now two sub-blocks could be stitched: the last copy command could be extended to span the next sub-block. Fixed compression ineffectiveness caused by floating numbers rounding and wrong cost heuristic. Other C changes: - combined / moved `context.h` to `common` - moved transforms to `common` - unified some aspects of code formatting - added an abstraction for encoder (static) dictionary - moved default allocator/deallocator functions to `common` brotli CLI: - window size is auto-adjusted if not specified explicitly Java: - added "eager" decoding both to JNI wrapper and pure decoder - huge speed-up of `DictionaryData` initialization * Add dictionaryless compressed dictionary * Fix `sources.lst` * Fix `sources.lst` and add a note that `libtool` is also required. * Update setup.py * Fix `EagerStreamTest` * Fix BUILD file * Add missing `libdivsufsort` dependency * Fix "unused parameter" warning.
2018-02-08Update go and closure bazel rules (#637)Eugene Kliuchnikov1-1/+1
* Update go and closure bazel rules * Follow the new bazel go rules guide * Swap go & closure rules initialization * Update bazel to 0.10.0 in appveyor build
2017-11-30Update Travis matrix (#626)Eugene Kliuchnikov1-0/+3
* Use Clang-5.0 * Disable unholy ASAN leak detector (to unbreak build) * Reduce build matrix and use faster env, where compiler version is not important * Add autotools build to Travis matrix
2017-11-28Update (#620)v1.0.2Eugene Kliuchnikov4-0/+130
* add autotools build * separate semantic and ABI version * extract sources.lst (used by CMake and Automake) * share pkgconfig templates (used by CMake and Automake) * decoder: always set `total_out` * encoder: fix `BROTLI_ENSURE_CAPACITY` macro (no-op after preprocessor) * decoder/encoder: refine `free_func` contract
2017-10-11Use bazel in appveyor (#612)Eugene Kliuchnikov2-2/+45
+publish jni dll
2017-09-26Fix fuzzer test script and add it to travis matrix (#606)Eugene Kliuchnikov1-0/+3
2017-09-19Build both static and shared libs with CMake (#599)Eugene Kliuchnikov1-3/+0
2017-09-18CI configEugene Kliuchnikov1-3/+22
* Appveyor: publish artifacts on bintray * Appveyor & Travis: build only master branch
2017-09-14Employ make/gcc on Appveyor + push artifacts (#596)Eugene Kliuchnikov1-50/+44
2017-08-23disable buidling/deployment of python wheels (#583)Cosimo Lupo5-326/+9
* [appveyor] remove 'deploy' stage; only test python 2.7 and 3.6 all the other python versions are being built and tested on https://github.com/google/brotli-wheels/blob/d571d63/appveyor.yml * remove terrify submodule as not needed any more * [travis] just test py2.7 and 3.6 on linux; remove extra osx python builds All the other python versions for OSX are being built/tested on: https://github.com/google/brotli-wheels/blob/d571d63/.travis.yml Also, there's no need to build and deploy wheels here, as that's done in the separate repository. * [setup.py] only rebuild if dependency are newer; fix typo in list of 'depends' https://github.com/python/cpython/blob/v3.6.2/Lib/distutils/command/build_ext.py#L485-L500 * [ci] only run 'python setup.py test' if we run 'python setup.py built test', the setuptools 'test' command will forcibly re-run the build_ext subcommand because it wants to pass the --inplace option (it ignores whether it's up to date, just re-runs it all the time). with this we go from running built_ext twice, to running it only once per build * [Makefile] run 'build_ext --inplace' instead of 'develop' as default target The 'develop' command is like 'install' in the sense that it modifies the user's python environment. The default make target should be less intrusive, i.e. just building the extension module in-place without modify anything in the user's environment. We don't need to tell make about the dependency between 'test' and 'build' target as that is baked in the `python setup.py test` command. * [Makefile] add 'develop' target; remove unnecessary 'tests' target `make test` is good enough * [Makefile] `setup.py test` requires setuptools; run `python -m unittest` This will work even if setuptools is not installed, which is unlikely nowadays but still our `setup.py` works with plain distutils, so we may well have our tests work without setuptools. * [python/README.md] add ref to 'develop' target; remove 'tests', just 'make test' * [setup.py] import modules as per nicksay's comment https://github.com/google/brotli/pull/583#discussion_r131981049 * [Makefile] add 'develop' to .PHONY targets remove 'tests' from .PHONY * [appveyor] remove unused setup scripts We don't need to install custom python versions, we are using the pre-installed ones on Appveyor. * [appveyor] remove unneeded setup code
2017-06-22Fix linux-bazel build (#566)Eugene Kliuchnikov1-11/+0
Install bazel via apt-source
2017-06-01Add JNI wrappers. (#556)Eugene Kliuchnikov1-1/+1
2017-05-29Update (#555)Eugene Kliuchnikov1-1/+1
Update: * new CLI; bro -> brotli; + man page * JNI wrappers preparation (for bazel build) * add raw binary dictionary representation `dictionary.bin` * add ability to side-load brotli RFC dictionary * decoder persists last error now * fix `BrotliDecoderDecompress` documentation * go reader don't block until necessary * more consistent bazel target names * Java dictionary data compiled footprint reduced * Java tests refactoring
2017-04-23Move files & update paths (#541)Eugene Kliuchnikov7-0/+486
* Move files & update paths * Rename build to scripts. * Fix paths * Fix script.