aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAgeFilesLines
...
* update license copyright yearlemon2026-02-241-1/+1
|
* Update README.mdlemon2026-02-241-0/+1
|
* x86_64/isel: fix regression with cmp instrs edge caselemon2026-02-241-1/+1
|
* cpp: fix __has_builtinlemon2026-02-231-2/+8
|
* add metalang99 testsuite (preprocessor stress testing)lemon2026-02-23119-2/+16971
|
* cpp: add __COUNTER__ macrolemon2026-02-233-131/+196
|
* 0.1.7lemon2026-02-222-3/+3
|
* Update README.mdlsof2026-02-221-2/+2
| | | | typos
* Update READMElemon2026-02-221-0/+1
|
* add sqlite submodule and test runnerlemon2026-02-221-0/+12
|
* driver: recognize shared libraries; & backend: misc fixes for PIC isel edgecaseslemon2026-02-223-10/+15
|
* c: fix using string literal as conditional expression conditionallemon2026-02-223-12/+31
|
* test: fix c-testsuite.sh to build search index if not presentlemon2026-02-221-0/+1
|
* preprocessor: fix an edge case with erroneously recursive macro expansionlemon2026-02-222-26/+54
|
* 0.1.6lemon2026-02-211-2/+2
|
* update README.mdlemon2026-02-211-2/+3
|
* Makefile install rule depend on alllemon2026-02-211-1/+1
|
* cpp: better diagnosticslemon2026-02-213-15/+43
|
* c: fix default argument promotion for function typeslemon2026-02-211-0/+1
|
* project documentationlemon2026-02-216-23/+196
|
* config.mk, make installlemon2026-02-212-8/+35
|
* IR: just use an array for extended constantslemon2026-02-199-66/+54
| | | | | The extra work of using a hashtable to intern them is probably unnecessary.
* 0.1.5lemon2026-02-191-2/+2
|
* cfg: dominator computation should ignore blocks with no predecessorslemon2026-02-191-1/+1
| | | | | | | These didn't show up atp before but with inlining, for example, a noreturn function, they could be introduced. And the pass ordering means they wouldn't have been cleaned up before filldom(). An unreachable block having no dominator makes sense too.
* 0.1.4lemon2026-02-181-2/+2
|
* ir: regalloc & x86-64 isel bugfixeslemon2026-02-182-5/+19
|
* ir/dump: sanity checklemon2026-02-181-0/+1
|
* ir/rpo: sanity checkslemon2026-02-181-4/+7
|
* alloccopy: explicit no-op on zero size.lemon2026-02-181-0/+1
| | | | Allows src/dst to be null for zero size, which memcpy doesn't
* ir: basic inlining pass implementationlemon2026-02-189-15/+364
|
* 0.1.3lemon2026-02-061-2/+2
|
* cpp: add __VA_OPT__ and comma ## __VA_ARGS__ pastinglemon2026-02-062-7/+42
|
* c: support at least parsing C99 _Complex typeslemon2026-01-255-8/+31
|
* c: GNU __attribute__ stubslemon2026-01-254-16/+78
|
* 0.1.2lemon2026-01-131-2/+2
|
* driver: -iquote, -isystem, etclemon2026-01-123-31/+74
| | | | With GCC-like search order
* 0.1.1lemon2026-01-111-2/+2
|
* simpl: fix simplifying known cond brancheslemon2026-01-111-8/+3
|
* io: fix hashtable lookup of builtin include fileslemon2026-01-111-5/+15
| | | | It would break if there were hash collisions.
* target: accept amd64 as x86_64 synonymlemon2026-01-102-1/+3
|
* cpp: prioritize internal headers over system headerslemon2026-01-101-6/+6
|
* main: use time.h for time(), fexecve optionallemon2026-01-101-2/+20
|
* update READMElsof2026-01-091-1/+1
|
* ir/simpl: stub out some code that wasn't properly tested and brokenlemon2026-01-091-0/+2
| | | | I'll figure it out later, but I better not have a broken trunk
* Add version tracking. Starting at 0.1.0lemon2026-01-093-4/+38
|
* c: fix use after freelemon2026-01-091-1/+2
| | | | | A silly one, declsbuf.p can be realloc'd in the call to putdecl, but in this statement that pointer could be fetched before the call.
* cpp: fix pasting ident+keywordlemon2026-01-092-4/+23
|
* update READMElemon2026-01-091-1/+3
|
* x86_64/isel: fix edgecase of fixarg from seljmp derefing nullpointerlemon2026-01-091-1/+1
|
* lexer: multibyte escape seqs in wide character literallemon2026-01-091-4/+13
| | | | (hacky)