Christoffer Lerno
|
9b86b00834
|
Compilation is now done with each module compiled together.
|
2021-05-11 14:58:21 +02:00 |
|
Christoffer Lerno
|
15a65d0c97
|
Allow use of pthreads to parallelize codegen.
|
2021-05-09 19:26:05 +02:00 |
|
Christoffer Lerno
|
f7919edb35
|
Split modules into generic and normal modules on the top level. Prepare for static. Change local -> static as keyword. Add private include. Remove old sub module search.
|
2021-05-09 19:26:05 +02:00 |
|
Christoffer Lerno
|
3bd638bf77
|
Fixes to debug info in function pointer declarations. Incorrect x64 ABI code for structs by val. Change "Compiler" to "GlobalContext" storage of all types inside. Call debug symbol correct.
|
2021-05-02 16:42:28 +02:00 |
|
Christoffer Lerno
|
c6f671a6ca
|
A bit more global...
|
2021-04-29 22:44:00 +02:00 |
|
Christoffer Lerno
|
cd4b0bd803
|
Clearly check min 1 source files.
|
2021-04-29 20:23:10 +02:00 |
|
Christoffer Lerno
|
0e076234ca
|
Set stdlib library for testing and profit. Fix bugs when using void* to step. Make constants private linkage. Compare pointers using unsigned comparison without conversion. Use manual ptrdiff code. Fix issue returning "void!". Unify pointers when doing Foo* - void*. Allow comparing for example void* < Foo*
|
2021-04-29 03:12:25 +02:00 |
|
Christoffer Lerno
|
f028bc274f
|
Use the platform linker by default, which will just be a call to "cc" (the Win solution will be done later)
|
2021-04-14 14:29:03 +02:00 |
|
Christoffer Lerno
|
954a90dae3
|
Fix of arch target. Experimental linker support.
|
2021-04-09 18:47:41 +02:00 |
|
Christoffer Lerno
|
4210f1ccb2
|
Some work on vararray. Fix span on post unary. Updated error recovery. Updated return analysis to handle void functions. "while" now disallows error prone next line statement. Working on auto linking. Failable load optimized. Optimization and corrections for call returns + documentation.
|
2021-04-05 23:34:40 +02:00 |
|
Christoffer Lerno
|
3a24fbfa6d
|
Moved examples around. Updated (and corrected) const initialization. Removed "in" keyword. Added "member" attribute domain. Many fixes in struct padding and alignment and tests. Fixed extern global.
|
2021-01-24 00:55:09 +01:00 |
|
Christoffer Lerno
|
564c93700e
|
Fixed bug that would intermittently arise from multiple contexts having the same pointer (should preferably be fixed in a different way later). Free all the arenas before codegen. Change "next" to "nextcase". Allow missing function parameters. Add "inline" structs.
|
2021-01-03 00:15:51 +01:00 |
|
Christoffer Lerno
|
6a5a0f2b94
|
Moved ABI lowering from codegen to semantic analysis. Fixes for failables in the ABI and the codegen.
|
2020-12-04 19:19:57 +01:00 |
|
Christoffer Lerno
|
29730345b0
|
Moving llvm-emit / debug output separately. Started work on C headers. Started work getting packed unions and structs to work correctly. Also added some unfinished PIC code.
|
2020-11-27 23:43:39 +01:00 |
|
Christoffer Lerno
|
564fc6e106
|
Disable library detection.
|
2020-08-02 00:06:43 +02:00 |
|
Christoffer Lerno
|
21357c4fc1
|
Fix crash when having return value errors. Updated docs. Find and load builtin.c3 locate std lib.
|
2020-07-31 16:29:52 +02:00 |
|
Christoffer Lerno
|
380c1c8ab4
|
Support for $assert. Also change order of checking global declarations from parsing to semantic analysis.
|
2020-07-30 17:44:41 +02:00 |
|
Christoffer Lerno
|
ed01616f1e
|
Changed how structs/unions are parsed so that recovery becomes more robust. Allow for more complex error data. Fixed recursive structs/unions. Corrected prefix precedence rules. Begin work on checking initializer constant-ness. Fixed error on failed arithmetic promotion. Added checks on constant overflow of sub/add/mult. Allow "current_module_name::x" to refer to globals. Added many tests.
|
2020-07-23 18:04:18 +02:00 |
|
Christoffer Lerno
|
f45d6ef84b
|
Fix, separate out the function pass from the decl pass. Diagnose non-visible symbols as not visible rather than missing. Fix crash when module identifier is incorrect. !! operator added. New character literal parsing. Added simple test framework.
|
2020-07-21 23:43:28 +02:00 |
|
Christoffer Lerno
|
b4c661eaad
|
Pre lexing and mmap allocation together with exact exits.
|
2020-07-15 15:42:54 +02:00 |
|
Christoffer Lerno
|
dc86c21210
|
New failable based error handling. Labelled break/continue/next.
|
2020-07-09 13:07:08 +02:00 |
|
Christoffer Lerno
|
6da6b0f571
|
Compound literal works properly.
|
2020-04-18 14:29:17 +02:00 |
|
Christoffer Lerno
|
f53b378b0c
|
Adding trap on debug builds.
|
2020-04-09 13:47:23 +02:00 |
|
Christoffer Lerno
|
f4b4bab947
|
Restructuring the parser & split parser into parts. Parsing more constructs now, like enums with extended syntax. Corrected handling of function block to be an expression. Added expression block codegen.
|
2020-03-29 17:40:42 +02:00 |
|
Christoffer Lerno
|
2e3bbf119c
|
Lexer cleanup
|
2020-03-29 17:40:03 +02:00 |
|
Christoffer Lerno
|
ebbea2ac42
|
Lookahead cleanup. Start work on throws. Fix try expressions. Beginning work on initializer. Some fixes on LLVM types. Moving more target info into C3. Moving alignment into types Introducing a meta type (incomplete). Start work on macros. Splitting '@' from macro name.
|
2020-03-29 17:39:33 +02:00 |
|
Christoffer Lerno
|
7b4ed09517
|
Introduced a Lexer context, comment parsing now actually works properly. Token use in decl/ast/expr is moved to SourceRange instead. And the SourceRange used start/end, which is better than using start + len for many uses.
|
2020-01-25 17:56:17 +01:00 |
|
Christoffer Lerno
|
cdc1bfe267
|
Start using UnaryOp/PostUnaryOp ++/-- now works post/pre and also on pointers. Fix ++/-- on any number. Added examples. c3c now compiles files by default. Extended symbol resolution. Addition of 'extern'. Multi-level paths.
|
2020-01-16 21:28:13 +01:00 |
|
Christoffer Lerno
|
aee3f99ea7
|
Added some codegen & .o generation and (hopefully correct) optimization. Hacked strings in together with i++/i--. Fixed up parsing of strings supporting \u \U \x => UTF8
|
2019-11-27 16:16:44 +01:00 |
|
Christoffer Lerno
|
990918b609
|
LLVM Codegen
|
2019-11-20 17:09:25 +01:00 |
|
Christoffer Lerno
|
a3b90b9500
|
Removed non-null references.
|
2019-09-30 13:29:41 +02:00 |
|
Christoffer Lerno
|
5f00d4c2bc
|
More parsing, start working on packages.
|
2019-09-16 12:34:23 +02:00 |
|
Christoffer Lerno
|
000d1fea4a
|
Global declarations. Starting work on struct initializers, lots of arithmetics now checked correctly. Support 2cc 4cc 8cc
|
2019-09-08 21:32:08 +02:00 |
|
Christoffer Lerno
|
3b2051ea80
|
More casts done, bugs fixed, codegen expanded, correct ordering in codegen, if, label, goto, break, switch, continue, compile time if analysed,
|
2019-09-07 00:58:56 +02:00 |
|
Christoffer Lerno
|
2eb91083a6
|
Refactor type handling, some extremely simple codegen, but mostly work on casts (not finished)
|
2019-09-01 01:58:21 +02:00 |
|
Christoffer Lerno
|
ebce81ad51
|
Parses most of C3.
|
2019-08-25 08:40:07 +02:00 |
|
Christoffer Lerno
|
386ef35f36
|
Started a bit on parsing. Picking pieces from Titanos and trying to do things better.
|
2019-07-31 23:19:45 +02:00 |
|
Christoffer Lerno
|
8f611a400d
|
Lexing up and running.
|
2019-07-27 17:20:31 +02:00 |
|