aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-03-29Fix MSVC compilation (#657)v1.0.4v1.0Eugene Kliuchnikov2-16/+25
* tell bazel not to pass strict options to a fancy compiler * fix signed-unsigned comparison warning found by MSVC
2018-03-27Update (#656)Eugene Kliuchnikov11-100/+274
* proper fix for the "fall through" warning" * automatic NDIRECT/NPOSTFIX tuning (better compression) * fix unaligned access for `aarch64`-cross-`armhf` build * fix `aarch64` detection (10% decoder speedup) * expose `large_window` CLI option * make default window size 16MiB * ramp up version to 1.0.4
2018-03-26Tell CMake to not check for a C++ compiler (#653)Adrian Perez1-1/+1
By default CMake checks both for C and C++ compilers, while the latter is not needed. Setting the list of languages to just "C" in the call to project() removes the unneeded check.
2018-03-23Fix "memory leak" in python tests (#652)Eugene Kliuchnikov2-0/+6
OOMs on RPi (1GB)
2018-03-20Update README.md (#646)Tobe O1-0/+2
Add mention of Dart native bindings
2018-03-20Update (#651)Eugene Kliuchnikov14-67/+261
* 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-03-02Update (#643)v1.0.3Eugene Kliuchnikov9-64/+150
Update * make the zopflification aware of `NDIRECT`, `NPOSTFIX` (better compression in `font` mode) * add small and simple decoder tool * fix typo * Java: wrapper: make decoder channel more async-friendly Ramp up version to 1.0.3 / 1.0.3
2018-02-26New feature: "Large Window Brotli" (#640)Eugene Kliuchnikov92-1793/+3612
* 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 Kliuchnikov2-9/+10
* 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
2018-02-08Fix brotlidump.py crashing when complex prefix code has exactly 1 non-zero ↵Daniel Chýlek1-3/+4
code length (#635) According to the format specification regarding complex prefix codes: > If there are at least two non-zero code lengths, any trailing zero > code lengths are omitted, i.e., the last code length in the > sequence must be non-zero. In this case, the sum of (32 >> code > length) over all the non-zero code lengths must equal to 32. > If the lengths have been read for the entire code length alphabet > and there was only one non-zero code length, then the prefix code > has one symbol whose code has zero length. The script does not handle a case where there is just 1 non-zero code length where the sum rule doesn't apply, which causes a StopIteration exception when it attempts to read past the list boundaries. An example of such file is tests/testdata/mapsdatazrh.compressed. I made sure this change doesn't break anything by processing all *.compressed files from the testdata folder with no thrown exceptions.
2017-12-12Update (#630)Eugene Kliuchnikov64-794/+770
* merge {dec|enc}/port.h into common/platform.h * fix one-shot q=10 1-byte input compression * fix some unprefixed definitions * make hashers host-endianness-independent * extract enc/params.h from enc/quality.h * fix API documentation / typos * improve `BrotliEncoderMaxCompressedSize`
2017-12-07Don't set rpath (#629)Jeremy Bicha1-10/+0
2017-12-04Work around Linuxisms (#627)Bernard Spil1-2/+4
Missed this in my previous tests. Sorry for that. On BSDs, both bc and sed are part of the base operating system. For sed this results in an error as the check construct (--version) is a GNU-ism and only works for GNU sed, not for bsd sed. Similarly, BSD sed does not take parameters after the filename(s) operated on. Moving `-i` to the front fixes that. `-r` is provided for GNU compat in BSD sed as an alias of `-E`. The `-i` option in BSD sed requires an extension to work in-place. (thank you for picking up the nginx module too!)
2017-11-30Update Travis matrix (#626)Eugene Kliuchnikov2-36/+32
* 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-30Do not rely on bash arithmetic in `bootstrap` (#625)Eugene Kliuchnikov1-8/+13
2017-11-29Fix missing symbols errors in libbrotlienc and dec (#623)Bernard Spil1-0/+2
When using autotools to build the binary and libraries, the resulting libraries don't link `brotlicommon` or `m`. This was detected when building cURL 7.57.0 which has now has brotli support. During configure it was failing ``` checking run-time libs availability... failed configure: error: one or more libs available at link-time are not available run-time. Libs used at link-time: -lbrotlidec -lz -L/usr/local/lib ``` inspection of config.log showed missing symbols from libbrotlicommon as the cause. This patch results in the encryption and decryption libs to be properly linked against libbrotlicommon and libm. See also https://bugs.freebsd.org/223966
2017-11-28Update (#620)v1.0.2Eugene Kliuchnikov17-138/+302
* 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-11-17Update shared-brotli-fetch-spec.txtLode Vandevenne1-1/+20
2017-11-16Update shared-brotli-fetch-spec.txtLode Vandevenne1-0/+2
2017-11-16Create shared-brotli-fetch-spec.txtLode Vandevenne1-0/+95
2017-10-13Update (#617)Eugene Kliuchnikov7-17/+19
* remove `const` on `BrotliDictionary` members * extend `ZofliNode` distance range to 128MiB * add missing `port.h` include to `quality.h` * fix typo in encoder API-doc * regenerate `decode.min.js`
2017-10-13Add new (fast) dictionary generator engine. (#616)Eugene Kliuchnikov6-25/+436
Add CLI for dictionary generation. Add BUILD file for research folder
2017-10-11Use bazel in appveyor (#612)Eugene Kliuchnikov4-9/+99
+publish jni dll
2017-10-10Fix permissions of various files in project (#613)Tomáš Popela84-0/+0
Move from 755 to 644.
2017-10-09Improve Bazel/JNI portability (#611)Eugene Kliuchnikov18-153/+170
* Improve Bazel/JNI portability * Update go and closure bazel addons
2017-09-26Fix fuzzer test script and add it to travis matrix (#606)Eugene Kliuchnikov3-8/+29
2017-09-22Ramp up to version to 1.0.1v1.0.1Eugene Kliuchnikov1-1/+1
2017-09-22Fix parallel test executionEugene Kliuchnikov1-1/+2
2017-09-22Update README.mdEugene Kliuchnikov1-0/+2
2017-09-20Fix API documentation + theoretical NPEs (#602)v1.0.0Eugene Kliuchnikov3-11/+17
2017-09-20Install static libraries as well (#601)Eugene Kliuchnikov1-1/+8
2017-09-19Update: (#600)Eugene Kliuchnikov11-518/+707
* encoder: relax backward references candidates asserts * encoder: make RNG more platform-independent * encoder: remove "unused" param (context mode) * CLI: improve first-encounter experience * Java: update SynthTest * Java: refine proguard config * Java/JNI: fix one-shot compression workflow
2017-09-19Update README.mdEugene Kliuchnikov1-0/+4
2017-09-19Update MANIFEST.inEugene Kliuchnikov1-1/+2
2017-09-19Update README.mdEugene Kliuchnikov1-13/+2
2017-09-19Build both static and shared libs with CMake (#599)Eugene Kliuchnikov2-23/+34
2017-09-18Reduce / update travis build matrix. (#598)Eugene Kliuchnikov1-109/+24
2017-09-18CI configEugene Kliuchnikov2-3/+25
* Appveyor: publish artifacts on bintray * Appveyor & Travis: build only master branch
2017-09-14Employ make/gcc on Appveyor + push artifacts (#596)Eugene Kliuchnikov2-51/+44
2017-09-07Update (#593)Eugene Kliuchnikov4-81/+90
* Update: * fix CLI error messages * fix CLI console IO on Windows
2017-09-04Update README.mdEugene Kliuchnikov1-5/+3
2017-08-28Update (#590)Eugene Kliuchnikov10-22/+1954
* add transpiled JS decoder * make PY wrapper accept memview * fix dictionary generator * speedup compression of RLEish data
2017-08-24Update (#589)Eugene Kliuchnikov8-41/+79
* cleanup * fix `unbrotli` CLI * Java retouch for faster JS decoder
2017-08-23disable buidling/deployment of python wheels (#583)Cosimo Lupo10-360/+60
* [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-08-08Python: Update bro_test to reference script directly (#582)Alex Nicksay3-11/+9
2017-08-04Add link to 7Zip pluginEugene Kliuchnikov1-0/+4
2017-08-04Update API, and more (#581)Eugene Kliuchnikov65-2093/+1068
Update API, and more: * remove "custom dictionary" support * c/encoder: fix #580: big-endian build * Java: reduce jar size * Java: speedup decoding * Java: add 32-bit CPU support * Java: make source code JS transpiler-ready
2017-08-02Python: Add a "make install" command and clarify installation docs (#578)Alex Nicksay3-9/+22
Closes #576
2017-08-02Add an EditorConfig file to provide consistent style across editors. (#579)Alex Nicksay1-0/+40
2017-07-21Update (#574)custom-dictionaryEugene Kliuchnikov13-87/+397
* Update * decoder: better behavior after failure * encoder: replace "len_x_code" with delta * research: add experimental dictionary generator * python: test combing