aboutsummaryrefslogtreecommitdiff
path: root/test/stage2
AgeCommit message (Collapse)Author
2020-06-24OOM -> catch unreachableNoam Preil
2020-06-24Clean up test harnessNoam Preil
2020-06-24self-hosted: add compare output test for new AST->ZIR codeAndrew Kelley
2020-06-24self-hosted: fix test regressionsAndrew Kelley
I'm allowing incremental compilation of ZIR modules to be broken. This is not a real use case of ZIR, and the feature requires a lot of code duplication with incremental compilation of Zig AST (which works great).
2020-06-24self-hosted: restore ZIR functionalityAndrew Kelley
2020-06-15Stage2/Testing: Code cleanupNoam Preil
2020-06-15Stage2/Testing: Enable another testNoam Preil
2020-06-15Stage2/Testing: Remove dead codeNoam Preil
2020-06-15Stage2/Testing: Fix transformation testsNoam Preil
2020-06-15Stage2/Testing: Move Transformation case to ZIRCaseNoam Preil
2020-06-15Stage2/Testing: Fix error specificationNoam Preil
2020-06-15Stage2/Testing: Fix error testsNoam Preil
2020-06-15[Stage2/Testing] Attempt to call nakedcc functionNoam Preil
2020-06-15[Stage2/Testing] Make API more friendlyNoam Preil
2020-06-15[Stage2/Testing] Add (failing) testNoam Preil
2020-06-15[Stage2/Testing] Reduce testNoam Preil
2020-06-15[Stage2/Testing] ZIR tests for expected errorsNoam Preil
2020-06-08stage2: add passing test for compile error in unreferenced cycleAndrew Kelley
2020-06-08stage2: -femit-zir respects decl names and supports cyclesAndrew Kelley
2020-06-02stage2: fix referencing decls which appear later in the fileAndrew Kelley
2020-05-28stage2: first pass at recursive dependency resolutionAndrew Kelley
2020-05-27self-hosted: introduce a virtual address allocation schemeAndrew 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-19stage2: function calls using the global offset tableAndrew Kelley
so far they don't support parameters or return values
2020-05-17update ZIR compare output test to test incremental updatesAndrew Kelley
2020-05-16cross compile the stage2 tests for the target that they work forAndrew Kelley
2020-05-15update ZIR test casesAndrew Kelley
2020-05-01add ZIR transform test caseAndrew Kelley
2020-05-01disable stage2 zir tests on not-yet-supported archsAndrew Kelley
2020-05-01disable stage2 zir tests on not-yet-supported OS'sAndrew Kelley
2020-05-01add ZIR compare output test case to test suiteAndrew Kelley
2020-04-20simplify ZIR spec; separate parsing/rendering from analysisAndrew Kelley
2020-04-19generic ir parsing frameworkAndrew Kelley
2020-04-19beginnings of zig ir parserAndrew Kelley
2019-12-03exported main must be pubVexu
2019-11-24Merge remote-tracking branch 'origin/master' into null-terminated-pointersAndrew Kelley
2019-11-23re-enable stage2 testsVexu
2019-11-21string literals are now null terminatedAndrew Kelley
this also deletes C string literals from the language, and then makes the std lib changes and compiler changes necessary to get the behavior tests and std lib tests passing again.
2019-05-12Recursive rewrite of stage2 parser, part 3hryx
2018-07-24fix race conditions in self-hosted compiler; add testAndrew Kelley
* fix race condition in std.event.Channel deinit * add support to zig build for --no-rosegment * add passing self-hosted compare-output test for calling a function * put a global lock on LLD linking because it's not thread safe
2018-07-23self-hosted: add first compare-output testAndrew Kelley
2018-07-20self-hosted: implicit cast comptime ints to other intsAndrew Kelley
we now have successful exit codes from main linking against libc
2018-07-18self-hosted: compile errors for return in wrong placeAndrew Kelley
* outside fn definition * inside defer expression
2018-07-11add std.event.FutureAndrew Kelley
This is like a promise, but it's for multiple getters, and uses an event loop.