aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Shove everything into ctxThomas Voss 2024-06-231-72/+74
|
* Move the symbol table to its own fileThomas Voss 2024-06-234-49/+75
|
* Switch from arena_t to arena_t *Thomas Voss 2024-06-231-3/+3
|
* Rename symtab to symtab_tThomas Voss 2024-06-232-5/+5
|
* Make use of MPQCPY() and MPQ_IS_INIT()Thomas Voss 2024-06-231-18/+13
|
* FormattingThomas Voss 2024-06-232-3/+4
|
* Implement a temporary allocatorThomas Voss 2024-06-233-11/+80
|
* Various codegen workThomas Voss 2024-06-224-67/+86
|
* Set RHS to ‘i’ when a block is emptyThomas Voss 2024-06-221-1/+1
|
* Include <stdio.h> when -DDEBUG is passedThomas Voss 2024-06-221-0/+5
|
* Sort issigned after isfloatThomas Voss 2024-06-221-1/+1
|
* Default untyped numeric constants to intsThomas Voss 2024-06-221-2/+4
|
* If a key is unset, default it to AST_EMPTYThomas Voss 2024-06-221-2/+3
|
* Don’t assume that uints are 64 bitsThomas Voss 2024-06-221-1/+2
|
* Print result of strerror()Thomas Voss 2024-06-221-3/+3
|
* More codegen workThomas Voss 2024-06-223-63/+111
|
* Rename lots of things to make my life easierThomas Voss 2024-06-2219-311/+332
|
* Store decl info in auxilliary dataThomas Voss 2024-06-227-115/+163
|
* Do some work on basic basic codegenThomas Voss 2024-06-224-32/+109
|
* Basic constant folding implementationThomas Voss 2024-06-214-24/+223
|
* Avoid memory leakThomas Voss 2024-06-211-0/+1
|
* Set target triple in LLVMThomas Voss 2024-06-211-0/+5
|
* Cleanup codegen.cThomas Voss 2024-06-213-190/+23
|
* Huge changes to static analysisThomas Voss 2024-06-2110-248/+451
|
* Assert that functions actually returnThomas Voss 2024-06-194-38/+55
|
* Add f32 and f64 as typesThomas Voss 2024-06-193-28/+20
|
* Fix the way types are handledThomas Voss 2024-06-192-17/+17
|
* Add a commentThomas Voss 2024-06-191-0/+5
|
* Various parser fixesThomas Voss 2024-06-195-96/+192
|
* Remove <stdio.h> includeThomas Voss 2024-06-181-2/+0
|
* More code to codegenThomas Voss 2024-06-183-105/+52
|
* Big movesThomas Voss 2024-06-184-117/+146
|
* Some more typechecking for functionsThomas Voss 2024-06-182-57/+77
|
* Add 128-bit integersThomas Voss 2024-06-182-15/+20
|
* Add the nonnull attribute to codegenstmt()Thomas Voss 2024-06-181-1/+2
|
* Do more work on the typechecker and compilerThomas Voss 2024-06-186-105/+193
|
* Codegen global variablesThomas Voss 2024-06-171-40/+57
|
* Don’t create a new builder every iterationThomas Voss 2024-06-171-3/+3
|
* Implement super simple function type-checkingThomas Voss 2024-06-172-12/+52
|
* Begin work on the static analyzerThomas Voss 2024-06-179-4/+344
|
* Prefer #error to static_assert()Thomas Voss 2024-06-141-2/+2
|
* Add missing common.h includes and formatting fixesThomas Voss 2024-06-146-8/+20
|
* Minor efficiency improvementThomas Voss 2024-06-141-2/+5
|
* Don’t hardcode _AST_LAST_ENTThomas Voss 2024-06-141-1/+1
|
* Allow identifiers in expressionsThomas Voss 2024-06-142-0/+7
|
* Add a basic arena allocatorThomas Voss 2024-06-142-1/+116
|
* Fix alignof() usage and a very sneaky bugThomas Voss 2024-06-122-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 modeThomas Voss 2024-06-122-13/+15
|
* Strip U+0027 APOSTROPHE from integer literalsThomas Voss 2024-06-121-1/+11
|
* Mark bufalloc with __attribute__((alloc_size))Thomas Voss 2024-06-121-1/+1
|