Log

Author Commit Date CI Message
Jørgen Ibsen 6eba239a 2018-09-13T19:31:23 Fix auto detect of bundled mode (#704) Set bundled mode to ON when parent directory is not empty. Due to the peculiarities of CMake if, comparing an undefined variable to the empty string is false, so this likely never triggered.
Eugene Kliuchnikov 2216a0dd 2018-09-13T08:09:32 Update (#706) Update * add ASAN/MSAN unaligned read specializations * add "brotli" prefix to u_uint64 type * increment version to 1.0.06 * fix CoverityScan "unused assignment" warning * fix JDK 8<->9 incompatibility * add encoder optimization for empty input * regenerate JS decoder * unbreak Travis builds
Stephen Kyle d4cd6cdf 2018-07-25T10:43:06 platform: fix unaligned 64-bit accesses on AArch32 (#702) Ensures that Aarch32 Arm builds with an Armv8 compiler do not set BROTLI_64_BITS. This scenario is possible with ChromeOS builds, as they may use a toolchain with the target armv7-cros-gnueabi, but with -march=armv8. This will set __ARM_ARCH to 8 (defining BROTLI_TARGET_ARMV8), but will also set __ARM_32BIT_STATE and not __ARM_64BIT_STATE. Without this, illegal 64-bit non-word-aligned reads (LDRD) may be emitted. Also fix unaligned 64-bit reads on AArch32 - STRD was still possible to emit.
Eugene Kliuchnikov 8a073bd9 2018-07-24T17:32:13 Revert "platform: fix unaligned 64-bit accesses on AArch32 (#699)" (#701) This reverts commit 6d027d1648d957c5fee92e535a66420413fd6537.
Stephen Kyle 6d027d16 2018-07-24T16:29:50 platform: fix unaligned 64-bit accesses on AArch32 (#699) Ensures that Aarch32 Arm builds with an Armv8 compiler do not set BROTLI_64_BITS. This scenario is possible with ChromeOS builds, as they may use a toolchain with the target armv7-cros-gnueabi, but with -march=armv8. This will set __ARM_ARCH to 8 (defining BROTLI_TARGET_ARMV8), but will also set __ARM_32BIT_STATE and not __ARM_64BIT_STATE. Without this, illegal 64-bit non-word-aligned reads (LDRD) may be emitted. Also fix unaligned 64-bit reads on AArch32 - STRD was still possible to emit.
William A. Kennington III fc4d3459 2018-07-09T01:40:08 Fix missing header files (#695) 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>
Eugene Kliuchnikov b601fe81 2018-06-27T17:03:45 Ramp up version to 1.0.5
Cody Schroeder ee2a5e15 2018-06-26T09:08:07 Update go_library to use standard importpath (#690) * Update go_library to use standard importpath Instead of using go_prefix, which is deprecated, the importpath attribute is made explicit. * Add description to go/BUILD
Eugene Kliuchnikov eb12ec04 2018-06-20T15:14:10 Update (#688) * add rolling-composite-hasher for large-window mode * make API methods explicitly public
Eugene Kliuchnikov 7505290e 2018-06-18T14:39:38 Convert fuzzer to C99. (#686)
Eugene Kliuchnikov ff05c351 2018-06-18T13:13:23 Add VS2017 release Appveyor build (#685)
Eugene Kliuchnikov 09cd3e87 2018-06-11T15:17:26 Update
Eugene Kliuchnikov 8544ae85 2018-06-09T11:17:13 Update (#680) * fix MSVC warnings * cleanups
Eugene Kliuchnikov 1e7ea1d8 2018-06-04T17:53:16 Inverse bazel project/workspace tree (#677) * 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...
Eugene Kliuchnikov 29dc2cce 2018-05-31T13:21:04 Update golang and JS Bazel plugins to latest stable versions. (#676)
davidlt f9b8c026 2018-05-22T14:35:04 Add RISC-V 64-bit (riscv64) platform configuration (#669) Signed-off-by: David Abdurachmanov <david.abdurachmanov@gmail.com>
Eugene Kliuchnikov 48a25b3f 2018-05-18T22:07:52 Fix #671 (#672)
Eugene Kliuchnikov a4581c15 2018-05-16T12:59:09 Add tools to download and transform static dictionary data. (#670)
Eugene Kliuchnikov f5ed35d0 2018-05-03T11:16:21 Update (#664) * Update * fix ifdef style * get back to fine-compiler-version-based-macros (use Hedley) * fix q=0 histogram collection for very long copy/insert commands
Cosimo Lupo f94cd51b 2018-04-20T18:31:51 appveyor: fix issue self-upgradig pip to v10 (#663) 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
Eugene Kliuchnikov 60003961 2018-04-20T14:10:55 Remove unprefixed macros from public headers (#662)
Eugene Kliuchnikov 68db5c02 2018-04-13T11:44:34 Update (#660) * Update * improve q=1 compression on small files * fix "left shift before promotion" * fix osx Travis builds
Eugene Kliuchnikov c6333e1e 2018-03-29T10:37:07 Fix MSVC compilation (#657) * tell bazel not to pass strict options to a fancy compiler * fix signed-unsigned comparison warning found by MSVC
Eugene Kliuchnikov 0f3c84e7 2018-03-27T22:29:22 Update (#656) * 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
Adrian Perez 515fc623 2018-03-26T16:41:18 Tell CMake to not check for a C++ compiler (#653) 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.
Eugene Kliuchnikov 2c034825 2018-03-23T02:09:00 Fix "memory leak" in python tests (#652) OOMs on RPi (1GB)
Tobe O a238f5ba 2018-03-20T07:53:32 Update README.md (#646) Add mention of Dart native bindings
Eugene Kliuchnikov 631fe194 2018-03-20T17:37:41 Update (#651) * 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
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)