Log

Author Commit Date CI Message
Eugene Kliuchnikov 630b5084 2021-07-29T22:29:43 Update (#914) * slimmer stack frames in encoder * fix MSAN problem in hasher_composite (not dangerous, only in large_window mode) * fix JNI decoder wrapper - power-of-two payloads fail to decode sometimes * reformat polyfil.js and decode_test.js
Dirk Lemstra ce222e31 2021-06-23T10:12:21 Enabled install when building with emscripten. (#906) * Enabled install when building with emscripten. * Also install the pkg-config files.
Adrián Herrera Arcila 0a3944c8 2021-06-23T08:53:59 Fix VLA parameter warning (#893) Make VLA buffer types consistent in declarations and definitions. Resolves build crash when using -Werror due to "vla-parameter" warning. Signed-off-by: Adrian Herrera <adr.her.arc.95@gmail.com>
Ikko Ashimine bdcfb123 2021-06-23T16:42:28 Fix typo in hash_composite_inc.h (#903) defered -> deferred
Eugene Kliuchnikov f8c67177 2021-06-23T09:40:57 Update (#908) * re-enable Js build/test * improve decoder performance * rewrite dictionary data in Java/Js to a shorter uncompressed form * improve dictionary generation tool
Martin Grigorov bbe5d72b 2021-03-24T22:23:03 [Java] make it possible to set modes (generic, text, font) (#887) * [Java] make it possible to set modes (generic, text, font)
Eugene Kliuchnikov 2f9277ff 2021-03-24T15:05:23 Update bazel WORKSPACE files (#896) * Update bazel WORKSPACE files * Use fresh OSX image * Cache homebrew dirs for faster startup
Christian Clauss 63be8a99 2021-01-27T15:08:05 unichr was removed in Python 3 because all str are Unicode (#877) https://python-future.org/compatible_idioms.html#unichr
marianopeck 2a51a85a 2021-01-18T07:59:02 New Dart fast FFI-based Brotli implementation (#866) New Dart compression framework with [fast FFI-based Brotli implementation](https://pub.dev/documentation/es_compression/latest/brotli/brotli-library.html) with ready-to-use prebuilt binaries for Win/Linux/Mac
Eugene Kliuchnikov 5692e422 2021-01-18T10:56:39 Update (#852) * Update * comments and clarifications in block_splitter * power-of-2 aligned allocations for Hasher * refresh decode.js from Java sources * disable JS build
Aayush Atharva f1684561 2021-01-08T17:54:44 Fix typo in variable name (#854) * Fix typo in variable name * Fix compile error
Juliy V. Chirkov 0e8afdc9 2021-01-08T14:21:44 typo fix (#868)
dependabot[bot] 4969984a 2021-01-08T13:21:02 Bump junit from 4.12 to 4.13.1 in /java/org/brotli/dec (#853) Bumps [junit](https://github.com/junit-team/junit4) from 4.12 to 4.13.1. - [Release notes](https://github.com/junit-team/junit4/releases) - [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.12.md) - [Commits](https://github.com/junit-team/junit4/compare/r4.12...r4.13.1) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Evgenii Kliuchnikov fcda9db7 2020-10-08T14:50:33 Shorten docs/brotli.svg Kudos to @alrra
Tim Gates 685d7bae 2020-09-27T19:00:29 docs: Fix small typo: rougly -> roughly (#849)
Gábor Lipták 60b2a7ad 2020-09-25T13:37:31 Add Python 3.7 and 3.8 to Travis (#847)
Eugene Kliuchnikov f6b3aa6d 2020-09-24T13:43:44 Add brotli logo (#845) Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org>
Kurt Mosiejczuk f2ca32ed 2020-09-21T06:24:13 Change MANIFEST.in to include python regression tests in tarball (#841) * Change MANIFEST.in to include python regression tests in tarball * Python tests need the testdata from the base tests directory
Gabriel 97006561 2020-09-21T13:22:56 Fix VC C++ 12.0 BROTLI_MSVC_VERSION_CHECK calls (#843)
Dmitry Rozhkov 0cd2e392 2020-09-08T17:48:31 Fix MSVC linker error (#840) The -lm linker option is not known to MSVC and setting it triggers errors in some build systems: [6,366 / 6,367] Linking source/exe/envoy-static.exe; 11s remote LINK : warning LNK4044: unrecognized option '/lm'; ignored LINK : error LNK1218: warning treated as error; no output file generated ERROR: C:/source/source/exe/BUILD:22:16: Linking of rule '//source/exe:envoy-static' failed (Exit 4044): link.exe failed: error executing command Do not set -lm in case of MSVC.
Pavel Rosický 90fd2b60 2020-09-07T10:53:03 add execution time (#834)
Dmitry Rozhkov 7e8e207c 2020-09-07T10:40:03 Fix clang-10 compilation issue (#839) clang-10 throws the following error: In file included from external/org_brotli/c/enc/bit_cost.c:9: external/org_brotli/c/enc/./bit_cost.h:48:16: error: implicit conversion from 'size_t' (aka 'unsigned long') to 'double' may lose precision [-Werror,-Wimplicit-int-float-conversion] if (retval < sum) { ~ ^~~ 1 error generated. Make the conversion explicit.
Eugene Kliuchnikov 09b0992b 2020-09-02T11:38:26 Revert "Add runtime linker path to pkg-config files (#740)" (#838) This reverts commit 31754d4ffce14153b5c2addf7a11019ec23f51c1.
Evgenii Kliuchnikov 0545759b 2020-08-28T10:14:08 Address issues noted in #833
Evgenii Kliuchnikov e61745a6 2020-08-27T16:12:55 Re-release
Evgenii Kliuchnikov db361a0b 2020-08-27T15:56:54 Re-add python bindings to sources tarball
Eugene Kliuchnikov d518e55b 2020-08-26T18:46:19 Update README.md
Eugene Kliuchnikov d0529182 2020-08-26T17:13:31 Fix build files (#829)
Eugene Kliuchnikov 665e81dc 2020-08-26T14:36:02 New version: 1.0.8 (#827)
Eugene Kliuchnikov 223d80cf 2020-08-26T12:32:27 Update (#826) * 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
Eugene Kliuchnikov 0c5603e0 2020-07-09T16:40:01 Fix output parameter type for _BitScanReverse (#819) Fix #811
Eugene Kliuchnikov e8155d67 2020-07-09T15:35:57 CMake: change default ("") build type to Release (#818) Fix #817
Eugene Kliuchnikov fc823290 2020-07-02T19:45:57 Mute strerror/strcpy warnings is MSVC build. (#815)
Eugene Kliuchnikov 55193526 2020-07-02T17:57:40 Add workaround for lying feof. (#814) Should fix #812
fisherwky d2ea1982 2020-06-30T17:23:07 Update platform.h (#813) fix compile error (platform.h:362: error: cast discards qualifiers from pointer target type)
Nils Goroll 31754d4f 2020-05-15T13:11:01 Add runtime linker path to pkg-config files (#740) 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.
OZone 8f093f5e 2020-05-15T14:05:03 .gitignore: Ignore .obj files (#805) EDK II windows build produces .obj files in source tree
Eugene Kliuchnikov f0db711f 2020-05-15T13:04:17 Filter sources for the tarball. (#808)
Eugene Kliuchnikov 7f740f13 2020-05-15T11:06:21 Update (#807) - fix formatting - fix type conversion - fix no-op arithmetic with null-pointer - improve performance of hash_longest_match64 - go: detect read after close - java decoder: support compound dictionary - remove executable flag on non-scripts
Eugene Kliuchnikov f83aa516 2020-03-31T14:38:01 Update bazel to 2.2 + update config (#798) Newer bazel does not support `maven_jar` rule anymore...
Clinton Ingram 924b2b2b 2020-03-19T03:57:56 Move TZCNT and BSR intrinsics to platform.h, add MSVC versions (#636)
Paul Vollmer 0503d8b7 2020-03-19T11:54:51 Added go.mod file to go/cbrotli directory (#754) * Added go.mod file * go.mod removed go version
Cristi Vîjdea f503cb70 2020-03-19T11:46:52 Add HAVE_LOG2 build macro (#783) * Add HAVE_LOG2 build macro Fixes #781 * Rename macro to BROTLI_HAVE_LOG2 and move comment for visibility
Leo Neat 36ac0fea 2020-03-19T01:52:07 Adding CIFuzz (#797)
shenglei10 666c3280 2020-02-14T17:40:02 Make types of variable match (#796)
agrieve 4b5771be 2019-12-19T18:15:58 Add missing "const" to a couple of kConstants (#780) These showed up in a Chromium audit: https://bugs.chromium.org/p/chromium/issues/detail?id=747064#c8 Although already effectively const, adding "const" causes the symbols to be moved into the read-only section of the binary.
Griffin Downs c435f066 2019-10-01T13:53:11 Add vcpkg installation instructions (#776)
James Hilliard 5c3a9a93 2019-08-16T08:32:14 Fix license in setup.py (#769)
Ammar Askar afc4a742 2019-08-13T06:49:30 Add oss-fuzz fuzzing status badge to README (#767)
Eugene Kliuchnikov 35ef5c55 2019-08-13T15:23:04 Disable PIC in EMCC mode. (#768)
Eugene Kliuchnikov ca21dac8 2019-08-07T10:51:55 Add an option to avoid building shared libraries. (#766) Add an option to avoid building shared libraries (for building with EMCC) Drive-by: * maven: ramp up java level to minimal required * travis: replace deprecated clang-5.0 with clang-7 * maven: fallback to jdk10 to void javadoc bug
Eugene Kliuchnikov 3d176718 2019-07-30T10:01:21 Fix include for EMCC build (#765)
Eugene Kliuchnikov f1124c85 2019-07-22T14:29:51 More careful sanitizer detection (#764)
Eugene Kliuchnikov c8b37e8f 2019-07-17T14:39:56 Update (#762) * put LICENSE file into .jar * fix typo * add clarification comment in PY wrapper
Eugene Kliuchnikov 40f0fdcd 2019-07-16T17:49:14 Explicitly mark tests/testdata/* as binary. (#761) 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.
Eugene Kliuchnikov 78e7bbc3 2019-05-03T11:51:11 Update (#753) * fix executable mode of decode.js * explain clang-analyser about non-nullability * fix "dead assignment" * rename proguard.cfg -> proguard.pgcfg
Eugene Kliuchnikov 4b2b2d4f 2019-04-12T13:57:42 Update (#749) Update: * Bazel: fix MSVC configuration * C: common: extended documentation and helpers around distance codes * C: common: enable BROTLI_DCHECK in "debug" builds * C: common: fix implicit trailing zero in `kPrefixSuffix` * C: dec: fix possible bit reader discharge for "large-window" mode * C: dec: simplify distance decoding via lookup table * C: dec: reuse decoder state members memory via union with lookup table * C: dec: add decoder state diagram * C: enc: clarify access to static dictionary * C: enc: improve static dictionary hash * C: enc: add "stream offset" parameter for parallel encoding * C: enc: reorganize hasher; now Q2-Q3 require exactly 256KiB to avoid global TCMalloc lock * C: enc: fix rare access to uninitialized data in ring-buffer * C: enc: reorganize logging / checks in `write_bits.h` * Java: dec: add "large-window" support * Java: dec: improve speed * Java: dec: debug and 32-bit mode are now activated via system properties * Java: dec: demystify some state variables (use better names) * Dictionary generator: add single input mode * Java: dec: modernize tests * Bazel: js: pick working commit for closure rules
Eugene Kliuchnikov 9cd01c04 2019-02-19T11:14:20 Update WORKSPACE files. (#742)
Eugene Kliuchnikov 8109882e 2019-02-18T11:31:48 Fix #741
Justin Ridgewell 5805f99a 2018-11-12T04:36:00 Ensure decompression consumes all input (#730) * Ensure decompression consumes all input If not, it's a corrupt stream. * Use byte strings
Eugene Kliuchnikov d0ffe60b 2018-10-24T16:06:09 Verbose CLI + start pulling "Shared-Brotli" (#722) * Verbose CLI + start pulling "Shared-Brotli" * vesbose CLI output; fix #666 * pull `SHIFT` transforms; currently this is semantically dead code; later it will be used by "Shared-Brotli"
Eugene Kliuchnikov d6d98957 2018-10-23T12:24:40 Ramp up version to 1.0.7
Eugene Kliuchnikov a1e44975 2018-10-19T17:01:54 Fix #698
Eugene Kliuchnikov a799e34c 2018-10-18T17:25:05 Remove dependency to full JDK. This should speedup clean builds. (#719) * Remove dependency to full JDK. This should speedup clean builds. * Upgrade appveyor bazel
Stephen Kyle 7a153ebb 2018-10-17T16:29:32 make/build: ensure NEON is enabled and tested (#718) Make sure the travis CI aarch32 bot tests NEON, and also that running CROSS_COMPILE=arm-linux-gnueabihf make enables the use of NEON to accelerate the back-reference copying.
Eugene Kliuchnikov ce8951c3 2018-10-16T17:19:37 Fix `<arm_neon.h>` inclusion guard. (#717)
Eugene Kliuchnikov f7cbc97c 2018-10-16T16:46:54 Fix typo / minor formatting (#716) * Fix typo / minor formatting / pull computable constant to the place of use.
Stephen Kyle cc7a74f1 2018-10-08T14:40:11 decode: fix NEON inclusion (#714) The macro that checks for NEON support should be __ARM_NEON, not __ARM_NEON__. [1] AArch64 compilers define __ARM_NEON but not __ARM_NEON__. AArch32 compilers currently seem to define both, but could be within their rights to drop __ARM_NEON__ in future versions. This change moves the check into the common/platform.h file, checks for both forms, and sets BROTLI_TARGET_NEON if NEON support is available. [1] Section 6.5.4 of the ARM C Language Extensions. (At the time of writing, the latest version was Release 2.1.)
Alexey Ivanov c94c6f80 2018-10-02T07:28:37 tools/brotli: improve window size autodetect (#710) Window size is defined as: `(1 << BROTLI_PARAM_LGWIN) - 16` in `c/include/brotli/encode.h` Therefore we should probably take these 16 bytes into account. Done basic manual testing: $ python3 -c 'print ("A"*2046)' > t $ bazel run -- //:brotli -w 0 -f -o $(realpath t).br $(realpath ./t) $ python3 research/brotlidump.py t.br |& fgrep WSIZE 0000 c1 1000001 WSIZE windowsize=(1<<12)-16=4080 New version properly detects window size of `4080`, while previous one used `2032`: $ python3 research/brotlidump.py t.br |& fgrep WSIZE 0000 b1 0110001 WSIZE windowsize=(1<<11)-16=2032
Stephen Kyle 9402ac5c 2018-09-27T12:15:46 decode: faster huffman code loading on 32-bit Arm (#703) * platform: add macro for using the 'aligned' attribute * decode: add accessor macros for HuffmanCode fields Adds a constructor function for building HuffmanCode values so they can be accessed quickly on different architectures. Also adds macros for marking a HuffmanCode table pointer that can be accessed quickly (BROTLI_HC_MARK_TABLE_FOR_FAST_LOAD), adjusting the index into that table (BROTLI_HC_ADJUST_TABLE_INDEX), and getting the .bits or .value fields out of the table at the current index (BROTLI_HC_GET_BITS/VALUE). For example, assuming |table| contains a HuffmanCode pointer: BROTLI_HC_MARK_TABLE_FOR_FAST_LOAD(table); BROTLI_HC_ADJUST_TABLE_INDEX(table, index_into_table); *bits = BROTLI_HC_GET_BITS(table); *value = BROTLI_HC_GET_VALUE(table); BROTLI_HC_ADJUST_TABLE_INDEX(table, offset); *bits2 = BROTLI_HC_GET_BITS(table); *value2 = BROTLI_HC_GET_VALUE(table); All uses of the HuffmanCode have been updated appropriately. * decode: add alternative accessors for HuffmanCode on Arm AArch32
Stephen Kyle 67f059ea 2018-09-27T10:00:33 Cross compilation support (#709) * 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.
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