| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2020-06-08 | stage2: add passing test for compile error in unreferenced cycle | Andrew Kelley | |
| 2020-06-08 | self-hosted: remove deleted Decls from failed_decls | Andrew Kelley | |
| 2020-06-08 | stage2: fix not re-loading source file for updates after errors | Andrew Kelley | |
| 2020-06-08 | stage2: -femit-zir respects decl names and supports cycles | Andrew Kelley | |
| 2020-06-02 | stage2: fix referencing decls which appear later in the file | Andrew Kelley | |
| 2020-05-28 | remove debug log statements | Andrew Kelley | |
| 2020-05-28 | stage2: handle deletions and better dependency resolution | Andrew Kelley | |
| * Deleted decls are deleted; unused decls are also detected as deleted. Cycles are not yet detected. * Re-analysis is smarter and will not cause a re-analysis of dependants when only a function body is changed. | |||
| 2020-05-28 | stage2: first pass at recursive dependency resolution | Andrew Kelley | |
| 2020-05-27 | self-hosted: introduce a virtual address allocation scheme | Andrew Kelley | |
| The binary file abstraction changed its struct named "Decl" to "TextBlock" and it now represents an allocated slice of memory in the .text section. It has two new fields: prev and next, making it a linked list node. This allows a TextBlock to find its neighbors. The ElfFile struct now has free_list and last_text_block fields. Doc comments for free_list are reproduced here: A list of text blocks that have surplus capacity. This list can have false positives, as functions grow and shrink over time, only sometimes being added or removed from the freelist. A text block has surplus capacity when its overcapacity value is greater than minimum_text_block_size * alloc_num / alloc_den. That is, when it has so much extra capacity, that we could fit a small new symbol in it, itself with ideal_capacity or more. Ideal capacity is defined by size * alloc_num / alloc_den. Overcapacity is measured by actual_capacity - ideal_capacity. Note that overcapacity can be negative. A simple way to have negative overcapacity is to allocate a fresh text block, which will have ideal capacity, and then grow it by 1 byte. It will then have -1 overcapacity. The last_text_block keeps track of the end of the .text section. Allocation, freeing, and resizing decls are all now more sophisticated, and participate in the virtual address allocation scheme. There is no longer the possibility for virtual address collisions. | |||
| 2020-05-19 | stage2: set up a trampoline table for functions | Andrew Kelley | |
| However there does not appear to be an x86 encoding for calling an immediate address. So there's no point of setting this up. We should just emit an indirect call to the got addr. | |||
| 2020-05-16 | fix source not being loaded when printing errors | Andrew Kelley | |
| 2020-05-16 | self hosted repl: close executables between updates | Andrew Kelley | |
| This allows the executable to be executed | |||
| 2020-05-15 | stage2 zir tests passing | Andrew Kelley | |
| 2020-05-15 | move Module to its own file | Andrew Kelley | |
