Log

Author Commit Date CI Message
Eugene Kliuchnikov 533843e3 2018-03-02T15:49:58 Update (#643) 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
Eugene Kliuchnikov 35e69fc7 2018-02-26T09:04:36 New feature: "Large Window Brotli" (#640) * 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.
Eugene Kliuchnikov 3af18990 2018-02-08T14:38:10 Update go and closure bazel rules (#637) * 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
Daniel Chýlek b5033d0e 2018-02-08T12:48:24 Fix brotlidump.py crashing when complex prefix code has exactly 1 non-zero 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.
Eugene Kliuchnikov da254cff 2017-12-12T14:33:12 Update (#630) * 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`
Jeremy Bicha 63e15bb3 2017-12-07T14:39:07 Don't set rpath (#629)
Bernard Spil 62194f20 2017-12-04T15:17:49 Work around Linuxisms (#627) 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!)
Eugene Kliuchnikov 2d6b298e 2017-11-30T20:54:04 Update Travis matrix (#626) * 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
Eugene Kliuchnikov c8c8389e 2017-11-30T11:02:54 Do not rely on bash arithmetic in `bootstrap` (#625)
Bernard Spil 1ca15159 2017-11-29T22:38:16 Fix missing symbols errors in libbrotlienc and dec (#623) 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
Eugene Kliuchnikov 0ad94eed 2017-11-28T15:37:28 Update (#620) * 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
Lode Vandevenne 273de5a2 2017-11-17T01:38:05 Update shared-brotli-fetch-spec.txt
Lode Vandevenne a755ba3b 2017-11-16T19:15:13 Update shared-brotli-fetch-spec.txt
Lode Vandevenne bdda95ee 2017-11-16T19:13:39 Create shared-brotli-fetch-spec.txt
Eugene Kliuchnikov 3e58ea5f 2017-10-13T14:50:51 Update (#617) * 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`
Eugene Kliuchnikov 39ef4bbd 2017-10-13T11:25:03 Add new (fast) dictionary generator engine. (#616) Add CLI for dictionary generation. Add BUILD file for research folder
Eugene Kliuchnikov 9c75a2a2 2017-10-11T22:26:37 Use bazel in appveyor (#612) +publish jni dll
Tomáš Popela a0c7dafe 2017-10-10T11:24:13 Fix permissions of various files in project (#613) Move from 755 to 644.
Eugene Kliuchnikov 42d78807 2017-10-09T17:07:34 Improve Bazel/JNI portability (#611) * Improve Bazel/JNI portability * Update go and closure bazel addons
Eugene Kliuchnikov 4f8cd4c0 2017-09-26T13:49:30 Fix fuzzer test script and add it to travis matrix (#606)
Eugene Kliuchnikov 5b476999 2017-09-22T14:05:06 Ramp up to version to 1.0.1
Eugene Kliuchnikov bf6a6cda 2017-09-22T13:13:22 Fix parallel test execution
Eugene Kliuchnikov 7748a1dc 2017-09-22T10:28:15 Update README.md
Eugene Kliuchnikov c6056359 2017-09-20T15:02:01 Fix API documentation + theoretical NPEs (#602)
Eugene Kliuchnikov b6a01749 2017-09-20T10:04:06 Install static libraries as well (#601)
Eugene Kliuchnikov 37fb83ec 2017-09-19T15:57:15 Update: (#600) * 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
Eugene Kliuchnikov 61a50159 2017-09-19T11:29:55 Update README.md
Eugene Kliuchnikov 4760f7db 2017-09-19T11:25:55 Update MANIFEST.in
Eugene Kliuchnikov 248bddd0 2017-09-19T10:46:10 Update README.md
Eugene Kliuchnikov 52f04833 2017-09-19T09:40:48 Build both static and shared libs with CMake (#599)
Eugene Kliuchnikov 87b43eb6 2017-09-18T13:52:53 Reduce / update travis build matrix. (#598)
Eugene Kliuchnikov 6b1d0ab5 2017-09-18T13:05:47 CI config * Appveyor: publish artifacts on bintray * Appveyor & Travis: build only master branch
Eugene Kliuchnikov 26a34a43 2017-09-14T16:14:05 Employ make/gcc on Appveyor + push artifacts (#596)
Eugene Kliuchnikov d7bce1e0 2017-09-07T20:27:49 Update (#593) * Update: * fix CLI error messages * fix CLI console IO on Windows
Eugene Kliuchnikov fe09a503 2017-09-04T14:54:51 Update README.md
Eugene Kliuchnikov a629289e 2017-08-28T11:31:29 Update (#590) * add transpiled JS decoder * make PY wrapper accept memview * fix dictionary generator * speedup compression of RLEish data
Eugene Kliuchnikov 65354354 2017-08-24T13:29:48 Update (#589) * cleanup * fix `unbrotli` CLI * Java retouch for faster JS decoder
Cosimo Lupo 4f455cac 2017-08-23T19:45:13 disable buidling/deployment of python wheels (#583) * [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
Alex Nicksay 019091f9 2017-08-08T04:25:39 Python: Update bro_test to reference script directly (#582)
Eugene Kliuchnikov 3917011d 2017-08-04T15:40:57 Add link to 7Zip plugin
Eugene Kliuchnikov d63e8f75 2017-08-04T10:02:56 Update API, and more (#581) 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
Alex Nicksay 06082531 2017-08-02T10:59:46 Python: Add a "make install" command and clarify installation docs (#578) Closes #576
Alex Nicksay bc541f74 2017-08-02T10:58:43 Add an EditorConfig file to provide consistent style across editors. (#579)
Eugene Kliuchnikov 52441069 2017-07-21T10:07:24 Update (#574) * Update * decoder: better behavior after failure * encoder: replace "len_x_code" with delta * research: add experimental dictionary generator * python: test combing
Denys Tsomenko 172a378d 2017-07-11T18:22:44 add BROTLI_DEC_API to methods (#572)
Reza Tavakoli 5aabc7a6 2017-07-10T22:27:05 Added windows platform support to premake (#567) * Added windows platform support to premake Win32 and Win64 configuration support for visual studio solutions * Update premake5.lua Fixed platform support for linux, made x64 default * Update premake5.lua Fix typo
Eugene Kliuchnikov 1becbbf2 2017-06-30T13:09:50 Update (#569) * add misssing fclose in `brotli.c` * add basic tests for python `Decompressor` type * minor lint fixes in `_brotli.cc`
Janek 58f5c37f 2017-06-28T16:32:28 Python: Decompressor: Streaming decompression support (#546) python-brotli has Compressor for streaming compression but nothing for streaming decompression. This is a straight-forward copy of the Compressor code into the new class Decompressor.
Eugene Kliuchnikov efdff3f1 2017-06-22T11:38:49 Fix linux-bazel build (#566) Install bazel via apt-source
Eugene Kliuchnikov e51eae56 2017-06-22T10:58:13 Update .travis.yml
Dominik Homberger a423b33a 2017-06-22T10:07:07 Update Related projects (#565) Add BrotliHaxe
Eugene Kliuchnikov a4d2956d 2017-06-21T10:59:38 Update wrappers (#564) * golang: add build information via `cgo.go` * golang: fix lgwin parameter behavior * Java: add proguard configuration
Elouan Martinet 00cacfdf 2017-06-17T13:22:07 Fix compilation issue with BROTLI_ALLOC macro using GCC 7 (-Wint-in-bool-context) (#562)
Eugene Kliuchnikov 05d5f3d7 2017-06-13T12:52:56 Update (#560) Update: * add decoder API to avoid ringbuffer reallocation * fix MSVC warnings * remove dead code
Eugene Kliuchnikov 0fceb906 2017-06-07T12:47:48 Fix bazel go build (#558)
Mike Tzou 31d0629b 2017-06-06T22:58:46 Readme improvements (#557) * [README] Use tools.ietf.org for displaying RFC7932 tools.ietf.org has HTML links which is helpful when reading in browser * [README] Add appveyor badge
Eugene Kliuchnikov 19dc934e 2017-06-01T13:51:18 Add JNI wrappers. (#556)
Eugene Kliuchnikov 03739d2b 2017-05-29T17:55:14 Update (#555) 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
Eugene Kliuchnikov 2c001010 2017-05-24T17:19:34 Unify artifact installation (#544)
Eugene Kliuchnikov 0a84e9bf 2017-05-07T17:40:12 Transpile Java speedup (#548)
Eugene Kliuchnikov 4363f2d7 2017-05-07T17:13:03 Speedup Java decoder. (#547) * geo corpus decodes ~5% faster * fetchlogs corpus decodes ~25% faster
Stefan Bodewig a015b426 2017-05-04T20:27:42 turn java library into an OSGi bundle (#545)
Eugene Kliuchnikov d00ccae5 2017-04-28T13:16:59 Split auto-CMake and plain CMake build manual
Eugene Kliuchnikov 6ece1d87 2017-04-23T14:07:08 Move files & update paths (#541) * Move files & update paths * Rename build to scripts. * Fix paths * Fix script.
Eugene Kliuchnikov 04de756a 2017-04-13T20:05:36 Simplify go brotli wrapper. (#540) Based on PR #533. Kudos to Bryan (bcmillis@).
Eugene Kliuchnikov f2aa4d1e 2017-04-10T21:16:08 Add C# transpilation script. (#538)
Eugene Kliuchnikov 66e798d4 2017-04-10T15:39:00 Update API to v1.0.0 (#537) Make Java decoder fully transpilable to C#.
Eugene Kliuchnikov 46c1a881 2017-04-10T10:42:24 Pull down version for v0.6.0 release
Eugene Kliuchnikov 21c118ba 2017-04-05T18:50:01 Update c- and java-decoder: (#536) * speedup java decoder * avoid masking * avoid excessive fillBits * streamline uncompressed block processing * make java decoder more transpilation-friendly * avoid non-essential goto in c-decoder
Eugene Kliuchnikov e12a7a2d 2017-04-04T13:21:36 Add Brotli logo to README head (#535)
Eugene Kliuchnikov 7a09531f 2017-03-30T16:50:06 Cleanup
Eugene Kliuchnikov e5b7c16b 2017-03-24T14:49:02 Same file name is not permitted overall! (#532)
Eugene Kliuchnikov e77799b0 2017-03-24T14:31:30 Fix bintray release structure (#531) Same file name is not allowed across packages in one version.
Eugene Kliuchnikov 51d6780b 2017-03-24T13:40:30 Actually publich artifacts to Bintray (#530)
Eugene Kliuchnikov 6715130c 2017-03-24T13:03:16 Fix bintray json (#529)
Eugene Kliuchnikov 187904a4 2017-03-24T12:54:20 Upload binaries to bintray (#528)
Eugene Kliuchnikov 29ad4db4 2017-03-23T16:23:57 Break build on sha256sum mismatch (#527)
Eugene Kliuchnikov 22421ebe 2017-03-23T13:35:53 Bazel build on linux/osx (#526)
Eugene Kliuchnikov ee5c7190 2017-03-22T19:13:59 Build and test java decoder with Maven
Eugene Kliuchnikov a657d996 2017-03-22T12:41:19 Add go wrapper, streamline java decoder: (#524) * add (c)brotli golang wrapper * remove (language-specific) enums in java decoder
Eugene Kliuchnikov 8a06e029 2017-03-21T16:08:23 Better compression (#523) Better compression: * use more complex content modeling on 1MiB+ files
Eugene Kliuchnikov 1ff78b87 2017-03-10T16:01:49 Prevent fuzzer timeouts on compression-bomb samples (#522) * Prevent fuzzer timeouts on compression-bomb samples. * Fix fuzzer lanucher
Eugene Kliuchnikov 52ce8670 2017-03-09T17:34:16 Fix typos (#521)
Eugene Kliuchnikov cdca91b6 2017-03-06T14:22:45 Update common, decoder, encoder, java (#520) Common: * wrap dictionary data into `BrotliDictionary` structure * replace public constant with getter `BrotliGetDictionary` * reformat dictionary data Decoder: * adopt common changes * clarify acceptable instance usage patterns * hold reference to dictionary in state Encoder: * adopt common changes * eliminate PIC spots in `CreateBackwardReferences` * add per-chunk ratio guards for q0 and q1 * precompute relative distances to avoid repeated calculations * prostpone hasher allocation/initialization * refactor Hashers to be class-like structure * further improvements for 1MiB+ inputs * added new hasher type; made hashers more configurable Java: * Pull byte->int magic to `IntReader` from `BitReader`
Ian Duncan aaa4424d 2017-03-02T00:19:57 Fix CMakeLists.txt specifying a nonexistent pkgconfig package (#518)
Eugene Kliuchnikov c931e576 2017-02-28T16:59:52 Move `java/` to `java/org/brotli/` to fix `sources.jar` structure (#517) Also added man pages to `docs/`
Eugene Kliuchnikov aaac88a1 2017-02-20T16:16:45 Switch to 0.2.0-SNAPSHOT (#515)
Eugene Kliuchnikov 527db7af 2017-02-20T15:51:48 Release org.brotli.* 0.1.0 (#514)
Eugene Kliuchnikov 56a7fda8 2017-02-20T14:04:55 Java: fix typos and adjust visibility. (#513)
Evan Nemerson d03c38da 2017-02-19T01:06:13 Blacklist PGI from using conformant array parameters. (#511) * Blacklist PGI from using conformant array parameters. There is a bug in pgcc with conformant array parameters where the length argument is a pointer which triggers a compiler error (PGC-S-0094, to be specific). The issue has been reported to PGI and is being tracked internally as TPR 23778. For more information, see https://www.pgroup.com/userforum/viewtopic.php?t=5501 * travis: Add PGI Community Edition build. For details on the installation script, see https://github.com/nemequ/pgi-travis
Eugene Kliuchnikov 53366083 2017-02-17T15:39:34 Prepare org.brotli.dec for deployment. (#512)
Eugene Kliuchnikov 9fa1ad5a 2017-02-08T21:14:01 Fix "zero-distance-code", take 2 (#506)
Eugene Kliuchnikov 0749d9ca 2017-02-07T15:35:03 Fix #502 decoder bug (#505) Decoder may have produced invalid output if: * at offset 0..3 dictionary word with index 3..0 for some length N is used and distance is encoded with direct distance code 0, and * at least one of next 4 commands use value from distance ringbuffer
Eugene Kliuchnikov 11df843c 2017-02-06T14:20:43 Update encoder (#504) * pull `BROTLI_MAX_BACKWARD_LIMIT` to constants * split generic and Zopfli backward references code * pull hashers init and stitch invocation to encoder * make `dictionary_hash` a compilation unit * add `size hint` parameter * add new hasher * use `size hint` to pick new hasher for q4 * modernize clz guard (fix #495) * move `hash to binary tree` to separate file * add `Initialize` and `Cleanup` to all hashers * do not raise OOM if malloc(0) == NULL (fix #500)
Eugene Kliuchnikov 8d3fdc1d 2017-01-26T11:32:18 Update encoder (#497) * pad dictionary LUTs to length 32, etc. (#493) * avoid using INFINITY constant (#496) * make dictionary_hash.h more compact * add "disable literal context modelling" parameter
Eugene Kliuchnikov 7e347a7c 2016-12-22T15:55:05 Update encoder (#492) * fix comment position in `context.h` * fix typo in internal quality constant name * deduplicate `BuildMetaBlockGreedy` code * simplify aggregation in `ChooseContextMap`
Eugene Kliuchnikov 27d94590 2016-12-22T13:03:28 Research (#491) * add advanced mode for optimal references generator * fix #489 Thanks to Ivan Nikulin for working on it.
Eugene Kliuchnikov fe9f9a91 2016-12-22T08:57:44 Split brotli common/dec/enc .pc files (#490) Add URL, and use DEPENS_PRIVATE generator params
Alex Nicksay 6ab0a5ce 2016-12-21T04:17:11 Python: Create Makefile for development shortcuts (#488)
Eugene Kliuchnikov fd96151b 2016-12-20T18:00:51 Move brotlidump.py to research/ (#487)