Commit Graph

13 Commits

Author SHA1 Message Date
Kamila Szewczyk
9c3ead9386 decompressor: gzip/tinf -> limlz
removes external dependency on tinf by replacing the compression algorithm with a simpler, faster, smaller and more auditable fixed-width LZ77 encoding purpose-tailored to x86 code mixed with data.

before: decompressor.bin 2,492 bytes (tinf dependency) with .text 0x875 and .rodata 0x13c bytes each.
after: decompressor.bin consists only of .text, 0xe6-byte decompressor; 90.8% reduction in decompressor volume.

the dependency on gzip during compile-time is replaced by host/limlzpack.c, a Lempel-Ziv encoder in 275 SLoC that uses a suffix array matchfinder (prefix-doubling in mathcal O(n log^2 n) and Storer-Szymanski backwards parse. the fixed-width formats packets as [F][LLLL][MMM], favouring a literal-skewed distribution with F switching between one-byte and two-byte offsets (favouring recent statistics).

integrity checking is done via crc32 with the polynomial 0xEDB88320, reflected.

the effective loss in compression ratio by using a tremendously simpler and less packed with edge cases algorithm causes a compression ratio hit well below 1KB, factoring in the stub sizes.

also adds new machinery for host cc detection per review.
2026-04-19 00:29:09 +02:00
Mintsuki
3f866e1ce8 misc: Migration to GitHub 2026-04-06 19:04:22 +02:00
Mintsuki
ae3d989d2d build: Finish migration of subprojects to Codeberg 2025-08-30 13:55:43 +02:00
Mintsuki
98061dbf6e misc: Initial migration to Codeberg 2025-08-30 00:49:55 +02:00
Mintsuki
dde0bce0ba build: Update repository links and adjustments for PicoEFI rebrand 2025-08-20 08:00:14 +02:00
Mintsuki
996a0c1801 misc: Move to using separate libfdt repository 2025-07-12 12:08:05 +02:00
Mintsuki
b532faea1f misc: Move to using separate limine-protocol repository 2025-07-12 09:25:05 +02:00
Mintsuki
7112289e1e build: Update submodule links to codeberg.org as needed 2025-04-01 13:32:21 +02:00
Mintsuki
35c4399dc7 docs: 3RDPARTY.md: Clarify document for readers of installed copies 2025-03-13 04:44:43 +01:00
Mintsuki
1868470041 build: Install LICENSES files as documentation 2025-03-13 04:32:51 +01:00
Mintsuki
2762591d79 docs: 3RDPARTY.md: Fix formatting and linking to special license 2025-03-13 04:02:09 +01:00
Mintsuki
2ad0481ebb docs: Use SPDX format for LicenseRef-scancode-bsd-no-disclaimer-unmodified 2025-03-13 03:53:24 +01:00
Mintsuki
3cadfdab74 docs: Split off 3rd party software acks. to dedicated file 2025-03-11 22:17:02 +01:00