Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Sort issigned after isfloat | Thomas Voss | 2024-06-22 | 1 | -1/+1 |
| | |||||
* | Default untyped numeric constants to ints | Thomas Voss | 2024-06-22 | 1 | -2/+4 |
| | |||||
* | If a key is unset, default it to AST_EMPTY | Thomas Voss | 2024-06-22 | 1 | -2/+3 |
| | |||||
* | Don’t assume that uints are 64 bits | Thomas Voss | 2024-06-22 | 1 | -1/+2 |
| | |||||
* | Print result of strerror() | Thomas Voss | 2024-06-22 | 1 | -3/+3 |
| | |||||
* | More codegen work | Thomas Voss | 2024-06-22 | 3 | -63/+111 |
| | |||||
* | Rename lots of things to make my life easier | Thomas Voss | 2024-06-22 | 19 | -311/+332 |
| | |||||
* | Store decl info in auxilliary data | Thomas Voss | 2024-06-22 | 7 | -115/+163 |
| | |||||
* | Do some work on basic basic codegen | Thomas Voss | 2024-06-22 | 4 | -32/+109 |
| | |||||
* | Reset errno to 0 | Thomas Voss | 2024-06-21 | 1 | -0/+1 |
| | |||||
* | Ignore a bunch of GNU MP build artifacts | Thomas Voss | 2024-06-21 | 1 | -2/+820 |
| | |||||
* | Basic constant folding implementation | Thomas Voss | 2024-06-21 | 2159 | -30/+548204 |
| | |||||
* | Fix fmdcmp() | Thomas Voss | 2024-06-21 | 1 | -2/+13 |
| | |||||
* | 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 | 4 | -192/+23 |
| | |||||
* | Huge changes to static analysis | Thomas Voss | 2024-06-21 | 11 | -248/+453 |
| | |||||
* | Use fmdnewer() & fmdolder() | Thomas Voss | 2024-06-20 | 1 | -3/+3 |
| | |||||
* | Rename function name | Thomas Voss | 2024-06-20 | 1 | -3/+3 |
| | |||||
* | 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 | 10 | -4/+345 |
| | |||||
* | 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 |
| | |||||
* | Support gperf | Thomas Voss | 2024-06-14 | 1 | -4/+31 |
| | |||||
* | 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 |
| | |||||
* | Allow disabling the sanitizer | Thomas Voss | 2024-06-12 | 1 | -5/+19 |
| | |||||
* | 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 |
| |