Files
Limine/.gitignore
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

73 lines
915 B
Plaintext

# We don't want to ignore the following files
!.clang-format
!.editorconfig
!.gitattributes
!.gitignore
# Generated files
*.o
*.d
*.a
*.exe
*.EFI
*.bin
*.bin.limlz
*.tar*
*.elf
*.hdd
*.iso
*.sys
*.dtb
*~
/bin
/build
/limine-protocol
/picoefi
/freestnd-c-hdrs
/flanterm
/common/lib/stb_image.h.nopatch
/common/lib/stb_image.h
/common/cc-runtime.s2.c
/cc-runtime
/decompressor/cc-runtime.c
/libfdt
/edk2-ovmf
/bochsout.txt
/bx_enh_dbg.ini
/test_image
/configure
/configure.ac.save
/timestamps
/build-aux
/aclocal.m4
/config.status
/config.log
/autom4te.cache
/man/man1/limine.1
/GNUmakefile
/config.h
/common-bios
/common-uefi-ia32
/common-uefi-x86-64
/common-uefi-aarch64
/common-uefi-riscv64
/common-uefi-loongarch64
/decompressor-build
/stage1.stamp
# For local development
/.vscode
/.gdb_history
/tags
/TAGS
# Clang's compilation database file
compile_commands.json
# clangd caches
/.clangd
/.cache/clangd