aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-07-09Fix output parameter type for _BitScanReverse (#819)recompressionEugene Kliuchnikov1-2/+2
Fix #811
2020-07-09CMake: change default ("") build type to Release (#818)Eugene Kliuchnikov1-0/+7
Fix #817
2020-07-02Mute strerror/strcpy warnings is MSVC build. (#815)Eugene Kliuchnikov1-0/+5
2020-07-02Add workaround for lying feof. (#814)Eugene Kliuchnikov1-1/+5
Should fix #812
2020-06-30Update platform.h (#813)fisherwky1-1/+1
fix compile error (platform.h:362: error: cast discards qualifiers from pointer target type)
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-05-15.gitignore: Ignore .obj files (#805)OZone1-0/+1
EDK II windows build produces .obj files in source tree
2020-05-15Filter sources for the tarball. (#808)Eugene Kliuchnikov1-0/+32
2020-05-15Update (#807)Eugene Kliuchnikov45-67/+612
- 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
2020-03-31Update bazel to 2.2 + update config (#798)Eugene Kliuchnikov8-13/+24
Newer bazel does not support `maven_jar` rule anymore...
2020-03-19Move TZCNT and BSR intrinsics to platform.h, add MSVC versions (#636)Clinton Ingram3-7/+38
2020-03-19Added go.mod file to go/cbrotli directory (#754)Paul Vollmer1-0/+1
* Added go.mod file * go.mod removed go version
2020-03-19Add HAVE_LOG2 build macro (#783)Cristi Vîjdea2-5/+15
* Add HAVE_LOG2 build macro Fixes #781 * Rename macro to BROTLI_HAVE_LOG2 and move comment for visibility
2020-03-19Adding CIFuzz (#797)Leo Neat1-0/+23
2020-02-14Make types of variable match (#796)shenglei101-2/+2
2019-12-20Add missing "const" to a couple of kConstants (#780)agrieve2-2/+11
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.
2019-10-01Add vcpkg installation instructions (#776)Griffin Downs1-0/+12
2019-08-16Fix license in setup.py (#769)James Hilliard1-2/+2
2019-08-13Add oss-fuzz fuzzing status badge to README (#767)Ammar Askar1-0/+1
2019-08-13Disable PIC in EMCC mode. (#768)Eugene Kliuchnikov1-7/+24
2019-08-07Add an option to avoid building shared libraries. (#766)Eugene Kliuchnikov3-23/+36
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
2019-07-30Fix include for EMCC build (#765)Eugene Kliuchnikov1-1/+1
2019-07-22More careful sanitizer detection (#764)Eugene Kliuchnikov2-4/+17
2019-07-17Update (#762)Eugene Kliuchnikov8-10/+52
* put LICENSE file into .jar * fix typo * add clarification comment in PY wrapper
2019-07-16Explicitly mark tests/testdata/* as binary. (#761)Eugene Kliuchnikov6-5/+10
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.
2019-05-03Update (#753)Eugene Kliuchnikov17-68/+104
* fix executable mode of decode.js * explain clang-analyser about non-nullability * fix "dead assignment" * rename proguard.cfg -> proguard.pgcfg
2019-04-12Update (#749)Eugene Kliuchnikov62-2697/+4874
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
2019-02-19Update WORKSPACE files. (#742)Eugene Kliuchnikov2-3/+7
2019-02-18Fix #741Eugene Kliuchnikov1-1/+1
2018-11-12Ensure decompression consumes all input (#730)Justin Ridgewell3-2/+15
* Ensure decompression consumes all input If not, it's a corrupt stream. * Use byte strings
2018-10-24Verbose CLI + start pulling "Shared-Brotli" (#722)Eugene Kliuchnikov14-88/+848
* 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"
2018-10-23Ramp up version to 1.0.7v1.0.7Eugene Kliuchnikov1-2/+2
2018-10-19Fix #698Eugene Kliuchnikov1-1/+1
2018-10-18Remove dependency to full JDK. This should speedup clean builds. (#719)Eugene Kliuchnikov3-69/+41
* Remove dependency to full JDK. This should speedup clean builds. * Upgrade appveyor bazel
2018-10-17make/build: ensure NEON is enabled and tested (#718)Stephen Kyle2-2/+2
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.
2018-10-16Fix `<arm_neon.h>` inclusion guard. (#717)Eugene Kliuchnikov1-4/+4
2018-10-16Fix typo / minor formatting (#716)Eugene Kliuchnikov12-113/+111
* Fix typo / minor formatting / pull computable constant to the place of use.
2018-10-08decode: fix NEON inclusion (#714)Stephen Kyle2-2/+6
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.)
2018-10-02tools/brotli: improve window size autodetect (#710)Alexey Ivanov1-3/+2
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
2018-09-27decode: faster huffman code loading on 32-bit Arm (#703)Stephen Kyle4-84/+139
* 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
2018-09-27Cross compilation support (#709)Stephen Kyle8-11/+71
* 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-09-13Fix auto detect of bundled mode (#704)v1.0.6Jørgen Ibsen1-3/+3
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.
2018-09-13Update (#706)Eugene Kliuchnikov14-98/+195
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
2018-07-25platform: fix unaligned 64-bit accesses on AArch32 (#702)Stephen Kyle1-10/+31
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.
2018-07-24Revert "platform: fix unaligned 64-bit accesses on AArch32 (#699)" (#701)Eugene Kliuchnikov1-35/+10
This reverts commit 6d027d1648d957c5fee92e535a66420413fd6537.
2018-07-24platform: fix unaligned 64-bit accesses on AArch32 (#699)Stephen Kyle1-10/+35
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.
2018-07-09Fix missing header files (#695)William A. Kennington III2-0/+4
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-27Ramp up version to 1.0.5v1.0.5Eugene Kliuchnikov1-2/+2
2018-06-26Update go_library to use standard importpath (#690)Cody Schroeder2-7/+5
* 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
2018-06-20Update (#688)Eugene Kliuchnikov7-213/+667
* add rolling-composite-hasher for large-window mode * make API methods explicitly public