Open nuta opened 2 years ago
Ref: LLVM's string table builder: https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/MC/StringTableBuilder.h
Ref: Using trie would be better, as used in Mach-O: https://github.com/llvm/llvm-project/blob/main/lld/MachO/ExportTrie.cpp
Why do you need to keep the symbol table with the running kernel?
Currently, a symbol table reserves 2MiB space to store symbols (e.g. function names) of the kernel. Because symbols in Rust tend to be lengthy, they are truncated to 55 characters.
This issue aims to implement a simple symbol table compression to: