| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2023-09-21 | compiler: move struct types into InternPool proper | Andrew Kelley | |
| Structs were previously using `SegmentedList` to be given indexes, but were not actually backed by the InternPool arrays. After this, the only remaining uses of `SegmentedList` in the compiler are `Module.Decl` and `Module.Namespace`. Once those last two are migrated to become backed by InternPool arrays as well, we can introduce state serialization via writing these arrays to disk all at once. Unfortunately there are a lot of source code locations that touch the struct type API, so this commit is still work-in-progress. Once I get it compiling and passing the test suite, I can provide some interesting data points such as how it affected the InternPool memory size and performance comparison against master branch. I also couldn't resist migrating over a bunch of alignment API over to use the log2 Alignment type rather than a mismash of u32 and u64 byte units with 0 meaning something implicitly different and special at every location. Turns out you can do all the math you need directly on the log2 representation of alignments. | |||
| 2023-09-13 | elf: skip writing non-alloc and zerofill atoms | Jakub Konka | |
| 2023-09-13 | elf: allocate locals and globals in objects | Jakub Konka | |
| 2023-09-13 | elf: re-enable linking compiler_rt | Jakub Konka | |
| 2023-09-13 | elf: do not store Symbol's index in Symbol | Jakub Konka | |
| 2023-09-13 | elf: parse archives | Jakub Konka | |
| 2023-09-13 | elf: allocate .bss section and matching PHDR | Jakub Konka | |
| 2023-09-13 | elf: look for entry point globally if not set by incremental compiler | Jakub Konka | |
| 2023-09-13 | elf: enable linker for non-incremental code paths | Jakub Konka | |
| 2023-09-13 | elf: add u64 to usize casts where required | Jakub Konka | |
| 2023-09-12 | elf: clean up and unify symbol ref handling in relocs | Jakub Konka | |
| Also, this lets us re-enable proper undefined symbols tracking. | |||
| 2023-09-12 | elf: include C compilation artifacts on the linker line | Jakub Konka | |
| 2023-09-12 | elf: resolve and write objects to file | Jakub Konka | |
| 2023-09-12 | elf: allocate objects, currently atom-by-atom | Jakub Konka | |
| 2023-09-12 | elf: set output section index when parsing objects | Jakub Konka | |
| 2023-09-12 | elf: add simplistic reloc scanning mechanism | Jakub Konka | |
| 2023-09-12 | elf: claim unresolved dangling symbols that can be claimed | Jakub Konka | |
| 2023-09-12 | elf: mark imports-exports; populate symtab with objects | Jakub Konka | |
| 2023-09-12 | elf: add simplistic symbol resolution | Jakub Konka | |
| 2023-09-12 | elf: start fixing symbol resolution | Jakub Konka | |
| 2023-09-12 | elf: report undefined symbols in objects | Jakub Konka | |
| 2023-09-11 | elf: add prelim impl of Object parsing | Jakub Konka | |
| 2023-09-11 | elf: add basic error reporting for positional parsing | Jakub Konka | |
| 2023-09-11 | elf: report undefined symbols as errors | Jakub Konka | |
| 2023-09-11 | elf: emit relocation to an extern function | Jakub Konka | |
| 2023-09-11 | elf: simplify handling of relocs for atoms | Jakub Konka | |
| 2023-09-10 | elf: decouple notion of atom free list from shdrs | Jakub Konka | |
| Not every section will have the need for such a free list. | |||
| 2023-09-10 | elf: allocate linker defined symbols | Jakub Konka | |
| 2023-09-10 | elf: write linker-defined symbols to symtab | Jakub Konka | |
| 2023-09-10 | elf: create required linker-defined symbols | Jakub Konka | |
| 2023-09-09 | elf: clean up naming and remove unused functions | Jakub Konka | |
| 2023-09-08 | elf: rename program_headers to phdrs | Jakub Konka | |
| 2023-09-08 | elf: write $got symbols into the symtab | Jakub Konka | |
| 2023-09-08 | elf: store Index rather than ?Index in Atom; gen ABS STT_FILE for zig source | Jakub Konka | |
| 2023-09-08 | elf: store GOT index in symbol extra array; use GotSection for GOT | Jakub Konka | |
| 2023-09-07 | elf: use zld's update mechanism for symtab for Zig module | Jakub Konka | |
| 2023-09-06 | elf: write symbtab | Jakub Konka | |
| 2023-09-06 | elf: set atom names | Jakub Konka | |
| 2023-09-06 | elf: lift-off - get it to compile and run until the error! | Jakub Konka | |
| 2023-09-06 | elf: make everything upside down - track by Symbol.Index rather than Atom.Index | Jakub Konka | |
| 2023-09-05 | elf: start porting abstraction of input file | Jakub Konka | |
| 2023-09-04 | elf: atom.index of 0 reserved for null atom | Jakub Konka | |
| 2023-09-04 | elf: remove dead code | Jakub Konka | |
| 2023-09-04 | elf: simplify accessors to symbols, atoms, etc | Jakub Konka | |
| 2023-09-03 | elf: add global symbol resolver | Jakub Konka | |
| 2023-09-02 | elf: mark dirty .symtab shdr after updating sh_info field | Jakub Konka | |
| 2023-09-02 | elf: correctly set symtab's sh_info to first global index | Jakub Konka | |
| 2023-09-02 | elf: write all symbols in bulk in flush | Jakub Konka | |
| This avoids leaving undefined bytes in the output file in case a decl has been garbage collected before it's been committed into the binary. This should have minimal impact on performance since we have to write globals on every iteration anyway. | |||
| 2023-09-02 | elf: write symbol names into .strtab rather than .shstrtab | Jakub Konka | |
| 2023-08-21 | frontend: directly pass resolved frameworks container to the linker | Jakub Konka | |
| We can infer the framework name from the included resolved framework path. Fix hash implementation, and bump linker hash value from 9 to 10. | |||
