aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Allow identifiers in expressionsThomas Voss 2024-06-142-0/+7
|
* Add a basic arena allocatorThomas Voss 2024-06-142-1/+116
|
* Support gperfThomas Voss 2024-06-141-4/+31
|
* 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
|
* Assert that we aren’t freeing anythingThomas Voss 2024-06-121-0/+2
|
* Allow disabling the sanitizerThomas Voss 2024-06-121-5/+19
|
* Assert that we don’t have too many tokensThomas Voss 2024-06-112-0/+10
|
* Dispose the LLVM module after useThomas Voss 2024-06-111-0/+1
|
* Add some unreachables in placesThomas Voss 2024-06-111-1/+5
|
* Code reshufflingThomas Voss 2024-06-118-17/+33
|
* Remove ‘soa’ from lots of identifiersThomas Voss 2024-06-117-59/+57
|
* Be consistent with the *_t_ suffix for typedefsThomas Voss 2024-06-112-6/+6
|
* Switch size_t indicies to be idx_t_Thomas Voss 2024-06-114-36/+23
|
* Add basic LLVM codegenThomas Voss 2024-06-118-152/+306
|
* Get building & linking with LLVM workingThomas Voss 2024-06-115-17/+67
|
* Parse very basic declarationsThomas Voss 2024-06-112-24/+174
|
* Begin work on a basic parserThomas Voss 2024-06-113-71/+151
|
* Lex number literalsThomas Voss 2024-06-112-0/+27
|
* Use alignof() instead of hardcoding 8Thomas Voss 2024-06-111-1/+1
|
* FormattingThomas Voss 2024-06-112-34/+22
|
* Color functions with __attribute__()Thomas Voss 2024-06-112-4/+4
|
* Define GCC-specific macros in make.cThomas Voss 2024-06-112-8/+8
|
* Slightly simplify codeThomas Voss 2024-06-091-10/+8
|
* Use CHAR_BITThomas Voss 2024-06-091-1/+3
|
* Add likely() and unlikely() macrosThomas Voss 2024-06-081-5/+13
|
* Switch to an SOA for lexemesThomas Voss 2024-06-085-67/+190
|
* Switch to C11Thomas Voss 2024-06-081-1/+1
|
* Sort lexeme kindsThomas Voss 2024-06-081-7/+6
|
* Do some lexer workThomas Voss 2024-06-089-30/+2335
|
* Fix some undefined behaviorThomas Voss 2024-06-081-6/+4
|
* Use -march and -mtune on DarwinThomas Voss 2024-06-081-4/+1
|
* Genesis commitThomas Voss 2024-06-0817-0/+1541