Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Do some work on basic basic codegen | Thomas Voss | 2024-06-22 | 4 | -32/+109 |
| | |||||
* | Basic constant folding implementation | Thomas Voss | 2024-06-21 | 4 | -24/+223 |
| | |||||
* | Avoid memory leak | Thomas Voss | 2024-06-21 | 1 | -0/+1 |
| | |||||
* | Set target triple in LLVM | Thomas Voss | 2024-06-21 | 1 | -0/+5 |
| | |||||
* | Cleanup codegen.c | Thomas Voss | 2024-06-21 | 3 | -190/+23 |
| | |||||
* | Huge changes to static analysis | Thomas Voss | 2024-06-21 | 10 | -248/+451 |
| | |||||
* | Assert that functions actually return | Thomas Voss | 2024-06-19 | 4 | -38/+55 |
| | |||||
* | Add f32 and f64 as types | Thomas Voss | 2024-06-19 | 3 | -28/+20 |
| | |||||
* | Fix the way types are handled | Thomas Voss | 2024-06-19 | 2 | -17/+17 |
| | |||||
* | Add a comment | Thomas Voss | 2024-06-19 | 1 | -0/+5 |
| | |||||
* | Various parser fixes | Thomas Voss | 2024-06-19 | 5 | -96/+192 |
| | |||||
* | Remove <stdio.h> include | Thomas Voss | 2024-06-18 | 1 | -2/+0 |
| | |||||
* | More code to codegen | Thomas Voss | 2024-06-18 | 3 | -105/+52 |
| | |||||
* | Big moves | Thomas Voss | 2024-06-18 | 4 | -117/+146 |
| | |||||
* | Some more typechecking for functions | Thomas Voss | 2024-06-18 | 2 | -57/+77 |
| | |||||
* | Add 128-bit integers | Thomas Voss | 2024-06-18 | 2 | -15/+20 |
| | |||||
* | Add the nonnull attribute to codegenstmt() | Thomas Voss | 2024-06-18 | 1 | -1/+2 |
| | |||||
* | Do more work on the typechecker and compiler | Thomas Voss | 2024-06-18 | 6 | -105/+193 |
| | |||||
* | Codegen global variables | Thomas Voss | 2024-06-17 | 1 | -40/+57 |
| | |||||
* | Don’t create a new builder every iteration | Thomas Voss | 2024-06-17 | 1 | -3/+3 |
| | |||||
* | Implement super simple function type-checking | Thomas Voss | 2024-06-17 | 2 | -12/+52 |
| | |||||
* | Begin work on the static analyzer | Thomas Voss | 2024-06-17 | 9 | -4/+344 |
| | |||||
* | Prefer #error to static_assert() | Thomas Voss | 2024-06-14 | 1 | -2/+2 |
| | |||||
* | Add missing common.h includes and formatting fixes | Thomas Voss | 2024-06-14 | 6 | -8/+20 |
| | |||||
* | Minor efficiency improvement | Thomas Voss | 2024-06-14 | 1 | -2/+5 |
| | |||||
* | Don’t hardcode _AST_LAST_ENT | Thomas Voss | 2024-06-14 | 1 | -1/+1 |
| | |||||
* | Allow identifiers in expressions | Thomas Voss | 2024-06-14 | 2 | -0/+7 |
| | |||||
* | Add a basic arena allocator | Thomas Voss | 2024-06-14 | 2 | -1/+116 |
| | |||||
* | Fix alignof() usage and a very sneaky bug | Thomas Voss | 2024-06-12 | 2 | -26/+28 |
| | | | | | | | | | | | | | | | | | | It might seem innocuous, but the following expression is actually quite prone to breakage: ast->kids[i].lhs = parseexpr(ast, toks); The reason is that parseexpr() and the other parsing functions return indicies into the AST, however in doing so they may find that the AST needs to grow and call astresz(). Should astresz() be called there is a chance that we will realloc() a new buffer somewhere else in memory, causing the left-hand side of the above expression to now be pointing to an invalid location in memory. To combat this we’re forced to break it up into two statements: idx_t_ lhs = parseexpr(ast, toks); ast->kids[i].lhs = lhs; | ||||
* | Use smaller default capacities in debug mode | Thomas Voss | 2024-06-12 | 2 | -13/+15 |
| | |||||
* | Strip U+0027 APOSTROPHE from integer literals | Thomas Voss | 2024-06-12 | 1 | -1/+11 |
| | |||||
* | Mark bufalloc with __attribute__((alloc_size)) | Thomas Voss | 2024-06-12 | 1 | -1/+1 |
| | |||||
* | Assert that we aren’t freeing anything | Thomas Voss | 2024-06-12 | 1 | -0/+2 |
| | |||||
* | Assert that we don’t have too many tokens | Thomas Voss | 2024-06-11 | 2 | -0/+10 |
| | |||||
* | Dispose the LLVM module after use | Thomas Voss | 2024-06-11 | 1 | -0/+1 |
| | |||||
* | Add some unreachables in places | Thomas Voss | 2024-06-11 | 1 | -1/+5 |
| | |||||
* | Code reshuffling | Thomas Voss | 2024-06-11 | 7 | -9/+33 |
| | |||||
* | Remove ‘soa’ from lots of identifiers | Thomas Voss | 2024-06-11 | 7 | -59/+57 |
| | |||||
* | Be consistent with the *_t_ suffix for typedefs | Thomas Voss | 2024-06-11 | 2 | -6/+6 |
| | |||||
* | Switch size_t indicies to be idx_t_ | Thomas Voss | 2024-06-11 | 4 | -36/+23 |
| | |||||
* | Add basic LLVM codegen | Thomas Voss | 2024-06-11 | 8 | -152/+306 |
| | |||||
* | Get building & linking with LLVM working | Thomas Voss | 2024-06-11 | 3 | -0/+49 |
| | |||||
* | Parse very basic declarations | Thomas Voss | 2024-06-11 | 2 | -24/+174 |
| | |||||
* | Begin work on a basic parser | Thomas Voss | 2024-06-11 | 3 | -71/+151 |
| | |||||
* | Lex number literals | Thomas Voss | 2024-06-11 | 2 | -0/+27 |
| | |||||
* | Use alignof() instead of hardcoding 8 | Thomas Voss | 2024-06-11 | 1 | -1/+1 |
| | |||||
* | Formatting | Thomas Voss | 2024-06-11 | 2 | -34/+22 |
| | |||||
* | Color functions with __attribute__() | Thomas Voss | 2024-06-11 | 2 | -4/+4 |
| | |||||
* | Define GCC-specific macros in make.c | Thomas Voss | 2024-06-11 | 1 | -8/+0 |
| | |||||
* | Slightly simplify code | Thomas Voss | 2024-06-09 | 1 | -10/+8 |
| |