Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 6ee96e29 | 2023-07-03 19:13:24 | Internal changes PiperOrigin-RevId: 545262005 | ||
| e5dba91c | 2023-03-28 16:17:13 | Add BROTLI_ENABLE_DUMP build option PiperOrigin-RevId: 520047051 | ||
| 6db17c87 | 2023-03-01 16:51:03 | 0.4-1.5% decoder speedup PiperOrigin-RevId: 513248503 | ||
| 1d8452b7 | 2023-06-20 15:44:23 | Add loongarch64 support (#1022) | ||
| a8f5813b | 2022-11-17 13:03:09 | Update Documentation: - add note that brotli is a "stream" format, not an archive-like - regenerate .1 with Pandoc Build: - drop legacy "BROTLI_BUILD_PORTABLE" option - drop "BROTLI_SANITIZED" definition Code: - c: comb includes - c/enc: extract encoder state into separate header - c/enc: drop designated q10 codepath - c/enc: dealing better with flushing of empty stream - fix MSVC compilation API: - py: use library version instead of one in version.h - c: add plugable API to report consumed input / produced output - c/java: support "lean" prepared dictionaries (without copy of source) | ||
| 8376f72e | 2021-11-10 10:34:39 | Prepare for copybara (#939) Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org> | ||
| 97006561 | 2020-09-21 13:22:56 | Fix VC C++ 12.0 BROTLI_MSVC_VERSION_CHECK calls (#843) | ||
| 223d80cf | 2020-08-26 12: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 | ||
| 0c5603e0 | 2020-07-09 16:40:01 | Fix output parameter type for _BitScanReverse (#819) Fix #811 | ||
| d2ea1982 | 2020-06-30 17:23:07 | Update platform.h (#813) fix compile error (platform.h:362: error: cast discards qualifiers from pointer target type) | ||
| 7f740f13 | 2020-05-15 11: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 | ||
| 924b2b2b | 2020-03-19 03:57:56 | Move TZCNT and BSR intrinsics to platform.h, add MSVC versions (#636) | ||
| 3d176718 | 2019-07-30 10:01:21 | Fix include for EMCC build (#765) | ||
| f1124c85 | 2019-07-22 14:29:51 | More careful sanitizer detection (#764) | ||
| 4b2b2d4f | 2019-04-12 13: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 | ||
| a1e44975 | 2018-10-19 17:01:54 | Fix #698 | ||
| cc7a74f1 | 2018-10-08 14: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.) | ||
| 9402ac5c | 2018-09-27 12: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 | ||
| 2216a0dd | 2018-09-13 08: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 | ||
| d4cd6cdf | 2018-07-25 10: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. | ||
| 8a073bd9 | 2018-07-24 17:32:13 | Revert "platform: fix unaligned 64-bit accesses on AArch32 (#699)" (#701) This reverts commit 6d027d1648d957c5fee92e535a66420413fd6537. | ||
| 6d027d16 | 2018-07-24 16: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. | ||
| eb12ec04 | 2018-06-20 15:14:10 | Update (#688) * add rolling-composite-hasher for large-window mode * make API methods explicitly public | ||
| 8544ae85 | 2018-06-09 11:17:13 | Update (#680) * fix MSVC warnings * cleanups | ||
| f9b8c026 | 2018-05-22 14:35:04 | Add RISC-V 64-bit (riscv64) platform configuration (#669) Signed-off-by: David Abdurachmanov <david.abdurachmanov@gmail.com> | ||
| f5ed35d0 | 2018-05-03 11: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 | ||
| 60003961 | 2018-04-20 14:10:55 | Remove unprefixed macros from public headers (#662) | ||
| 0f3c84e7 | 2018-03-27 22: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 | ||
| 35e69fc7 | 2018-02-26 09: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. | ||
| da254cff | 2017-12-12 14: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` |