kc3-lang/brotli/c

Branch :


Log

Author Commit Date CI Message
e7313b0c 2023-08-28 07:20:13 tune memory manager for BROTLI_EXPERIMENTAL PiperOrigin-RevId: 560703386
c1bd1968 2023-08-25 01:06:33 comb HAVE_UTIMENSAT definition PiperOrigin-RevId: 560011681
2a5a088b 2023-08-21 06:35:47 more tuning for BROTLI_EXPERIMENTAL + clean-on-oom PiperOrigin-RevId: 558771745
feb6d8bc 2023-08-21 03:34:13 prepare for 1.1.0rc PiperOrigin-RevId: 558736892
3ebb2d30 2023-08-18 02:55:01 Move serialized dictionary feature behind the flag. BROTLI_SHARED_DICTIONARY_SERIALIZED enum value is a part of API, but it should not be used (will cause failures). Changing how serialized dictionaries work won't be considered as an API change, until this feature is enabled. Enabling this feature in the future will be considered as a "compatible" change. PiperOrigin-RevId: 558091676
0f2157cc 2023-08-16 08:54:37 Update comment; fixes #1061 PiperOrigin-RevId: 557501089
8c792304 2023-08-09 02:48:12 reduce amount of padding in decoder structs PiperOrigin-RevId: 555101669
a5600898 2023-08-03 04:58:16 speedup q5-9 on large files PiperOrigin-RevId: 553440457
117b68b7 2023-08-02 03:04:52 speedup encoder on q5-9 / 1MB+ files PiperOrigin-RevId: 553087469
d639a81d 2023-07-31 07:18:48 add option to delete files that are not "compressed" PiperOrigin-RevId: 552472135
27a9a809 2023-07-30 03:44:38 simplify CMake build PiperOrigin-RevId: 552238545
779a49bf 2023-07-20 04:18:18 bake in runtime constant PiperOrigin-RevId: 549590409
c3dc7d03 2023-07-17 05:38:37 more careful bit-reader interruption PiperOrigin-RevId: 548661043
2d0947f1 2023-07-10 06:00:17 insert missing fuzz/WORKSPACE content PiperOrigin-RevId: 546848285
2e6164d7 2023-07-10 11:40:07 verbose error report in CLI PiperOrigin-RevId: 546833411
70e7b1ae 2023-07-06 11:56:38 simplify building of fuzzer PiperOrigin-RevId: 545950923
6ee96e29 2023-07-03 19:13:24 Internal changes PiperOrigin-RevId: 545262005
e252f1fc 2023-05-04 15:09:05 0.5-2.9% decoder speedup PiperOrigin-RevId: 529412095
e1f5788f 2023-04-14 15:46:39 Fix internal buffer reset PiperOrigin-RevId: 524301253
e5dba91c 2023-03-28 16:17:13 Add BROTLI_ENABLE_DUMP build option PiperOrigin-RevId: 520047051
f29c44ed 2023-03-15 13:29:35 Avoid nullptr with zero offset PiperOrigin-RevId: 516808122
cb1ced3a 2023-03-15 08:15:19 speedup decoder by 0.2%-1.2% PiperOrigin-RevId: 516754779
57c36a4f 2023-03-02 14:49:53 1.2-2.3% decoder speedup PiperOrigin-RevId: 513524040
6db17c87 2023-03-01 16:51:03 0.4-1.5% decoder speedup PiperOrigin-RevId: 513248503
bfa15d40 2023-06-22 10:27:21 fuzz: make target resist allocation failures (#1023) So that fuzzing can go on with simulated allocation failures
1d8452b7 2023-06-20 15:44:23 Add loongarch64 support (#1022)
b2c86d18 2023-01-30 18:34:24 Decoder API: added API to attach metadata blocks callbacks PiperOrigin-RevId: 505734532
04f294b1 2023-01-29 14:16:20 Fix emitting 1-byte long metadata block PiperOrigin-RevId: 505484299
1e61e972 2023-01-27 10:16:21 speed up encoding by ~5 % PiperOrigin-RevId: 505061835
36533a86 2023-01-16 18:04:35 Internal change PiperOrigin-RevId: 502401179
71fe6cac 2023-01-07 22:01:47 Fix BrotliEncoderEstimatePeakMemoryUsage (#1002) Fixes https://github.com/google/brotli/issues/1001
0ea46038 2023-01-04 12:10:29 Fix MSVC warning (#998) Fix #875
509d4419 2022-12-22 16:05:25 Copy ns time stat (#992)
641bec0e 2022-12-16 12:42:42 CMake: Allow using BUILD_SHARED_LIBS to choose static/shared libs (#655) By convention projects using CMake which can build either static or shared libraries use a BUILD_SHARED_LIBS flag to allow selecting between both: the add_library() command automatically switches between both using this variable when the library kind is not passed to add_library(). It is also usual to expose the BUILD_SHARED_LIBS as an user-facing setting with the option() command. This way, the following will both work as expected: % cmake -DBUILD_SHARED_LIBS=OFF ... % cmake -DBUILS_SHARED_LIBS=ON ... This is helpful for distributions which need (or want) to build only static libraries.
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)
6d03dfbe 2022-10-25 12:29:58 Fix -Wstrict-prototypes warnings (#985) Envoy builds brotli with -Werror, and these strict prototypes are picked up by newer versions of clang.
4ec67035 2021-12-07 01:47:07 Merge pull request #929 from jbms/fix-vla-parameter Fix -Werror=vla-parameter errors with GCC 11.2.0
8376f72e 2021-11-10 10:34:39 Prepare for copybara (#939) Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org>
27dd7265 2021-09-14 12:27:45 Fix -Werror=vla-parameter errors with GCC 11.2.0
62662f87 2021-09-08 09:18:45 Strip "./" in includes (#925) Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org>
0e42caf3 2021-08-31 14:07:17 Migrate to github actions (#920) Not all combinations are migrated to the initial configuration; corresponding TODOs added. Drive-by: additional combinations uncovered minor portability problems -> fixed Drive-by: remove no-longer used "script" files. Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org>
68f1b90a 2021-08-18 19:15:07 Update (#918) Prepare to use copybara worklow.
19d86fb9 2021-08-04 14:42:02 Merge-in SharedDictionary feature (#916) Co-authored-by: Eugene Kliuchnikov <eustas@chromium.org>
630b5084 2021-07-29 22: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
0a3944c8 2021-06-23 08: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>
bdcfb123 2021-06-23 16:42:28 Fix typo in hash_composite_inc.h (#903) defered -> deferred
f8c67177 2021-06-23 09: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
5692e422 2021-01-18 10: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
97006561 2020-09-21 13:22:56 Fix VC C++ 12.0 BROTLI_MSVC_VERSION_CHECK calls (#843)
90fd2b60 2020-09-07 10:53:03 add execution time (#834)
7e8e207c 2020-09-07 10: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.
e61745a6 2020-08-27 16:12:55 Re-release
665e81dc 2020-08-26 14:36:02 New version: 1.0.8 (#827)
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
fc823290 2020-07-02 19:45:57 Mute strerror/strcpy warnings is MSVC build. (#815)
55193526 2020-07-02 17:57:40 Add workaround for lying feof. (#814) Should fix #812
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)
f503cb70 2020-03-19 11: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
666c3280 2020-02-14 17:40:02 Make types of variable match (#796)
4b5771be 2019-12-19 18: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.
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)
c8b37e8f 2019-07-17 14:39:56 Update (#762) * put LICENSE file into .jar * fix typo * add clarification comment in PY wrapper
78e7bbc3 2019-05-03 11:51:11 Update (#753) * fix executable mode of decode.js * explain clang-analyser about non-nullability * fix "dead assignment" * rename proguard.cfg -> proguard.pgcfg
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
d0ffe60b 2018-10-24 16: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"
d6d98957 2018-10-23 12:24:40 Ramp up version to 1.0.7
a1e44975 2018-10-19 17:01:54 Fix #698
ce8951c3 2018-10-16 17:19:37 Fix `<arm_neon.h>` inclusion guard. (#717)
f7cbc97c 2018-10-16 16:46:54 Fix typo / minor formatting (#716) * Fix typo / minor formatting / pull computable constant to the place of use.
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.)
c94c6f80 2018-10-02 07: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
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.
b601fe81 2018-06-27 17:03:45 Ramp up version to 1.0.5
eb12ec04 2018-06-20 15:14:10 Update (#688) * add rolling-composite-hasher for large-window mode * make API methods explicitly public
7505290e 2018-06-18 14:39:38 Convert fuzzer to C99. (#686)
09cd3e87 2018-06-11 15:17:26 Update
8544ae85 2018-06-09 11:17:13 Update (#680) * fix MSVC warnings * cleanups
1e7ea1d8 2018-06-04 17: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...
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>
48a25b3f 2018-05-18 22:07:52 Fix #671 (#672)
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)
68db5c02 2018-04-13 11:44:34 Update (#660) * Update * improve q=1 compression on small files * fix "left shift before promotion" * fix osx Travis builds
c6333e1e 2018-03-29 10: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
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
631fe194 2018-03-20 17: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
533843e3 2018-03-02 15: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
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`
0ad94eed 2017-11-28 15: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
3e58ea5f 2017-10-13 14: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`
a0c7dafe 2017-10-10 11:24:13 Fix permissions of various files in project (#613) Move from 755 to 644.