Christoffer Lerno
|
bfde58b9a5
|
Optimized macro codegen on simpler code.
|
2021-11-18 09:32:10 +01:00 |
|
Christoffer Lerno
|
fb56d380cc
|
Builtins work. Math library exposes some builtins. Volatile store / load.
|
2021-11-13 12:31:45 +01:00 |
|
Christoffer Lerno
|
7bd76c973c
|
Placeholders for builtins. Updated character literal parsing, supporting 1-16 characters. More test cases.
|
2021-11-12 10:13:15 +01:00 |
|
Christoffer Lerno
|
42465039e9
|
Updated character parsing.
|
2021-11-10 21:58:17 +01:00 |
|
Christoffer Lerno
|
4662133893
|
Updates to bitstruct
|
2021-11-08 22:22:01 +01:00 |
|
Christoffer Lerno
|
15f902579b
|
Removed virtual
|
2021-11-08 22:22:01 +01:00 |
|
Christoffer Lerno
|
4e47f0b624
|
Fixes to bitstruct and work on correct behaviour when embedded in structs.
|
2021-11-08 22:22:01 +01:00 |
|
Christoffer Lerno
|
4f09b0c351
|
Bitstruct implementation.
|
2021-11-05 11:59:30 +01:00 |
|
Christoffer Lerno
|
29e7af843a
|
Remove old try-catch. Top down promotion for binary etc. Prevent non-simple widening. Introducing wildcard failable. Move LLVM GEP usage. Regcall test and fix. Optimized slice assign.
|
2021-10-26 18:40:41 +02:00 |
|
Christoffer Lerno
|
9942be54dc
|
More optimized memclear. Added helper function on array gep.
|
2021-10-21 23:37:14 +02:00 |
|
Christoffer Lerno
|
4ca7ba048b
|
Updated to use ?, ?? and !! instead of !!, else and "else $unreachable"
|
2021-10-20 23:27:13 +02:00 |
|
Christoffer Lerno
|
8e93642535
|
LLVM 13 compatibility. Move Ubuntu CI to LLVM 12.
|
2021-10-19 18:32:31 +02:00 |
|
Christoffer Lerno
|
b4df56db54
|
Removed original_type, pure, removed bigint, added i128 type, lots of fixes to $Foo, reassigning ct type, catch/macro, "!", removed type inference.
|
2021-10-19 10:39:02 +02:00 |
|
Christoffer Lerno
|
1b086e06f1
|
Fix of miscompilation
|
2021-10-07 13:53:11 +02:00 |
|
Christoffer Lerno
|
ae371d105d
|
Add vector ++ -- ! ~ - | & ^ ops and allow .c3t to be compiled.
|
2021-09-30 13:54:51 +02:00 |
|
Christoffer Lerno
|
020eba720b
|
Added initial (incomplete) support for vectors.
|
2021-09-28 14:19:28 +02:00 |
|
Christoffer Lerno
|
e4c7dde30b
|
Fix of shadowing bug. Allow pointer and subarrays to be constant initialized. Compile time values may now pass around anything considered compile time constant. It's possible to index into an initializer list at compile time. (Some work still remains on this)
|
2021-09-18 01:13:42 +02:00 |
|
Christoffer Lerno
|
17dcb742c6
|
Fixed codegen for subarray global initializers. Adding fasta example.
|
2021-09-11 00:44:35 +02:00 |
|
Christoffer Lerno
|
bcda6d71c9
|
AST printout removed. Split initializer types. Const list functionality.
|
2021-09-10 15:47:23 +02:00 |
|
Christoffer Lerno
|
63cff727b2
|
Removed use of ?:
|
2021-08-31 22:24:30 +02:00 |
|
Christoffer Lerno
|
bb9e84d329
|
Make errors usable from other units. Order subarray elements correctly. Correct subarray -> pointer cast. Prevent unwrapping of catch in switch.
|
2021-08-31 18:12:30 +02:00 |
|
Christoffer Lerno
|
69d9775876
|
Removed define for declaring ct vars and replaced it with var for declarations. Updated error messages. Added $defined.
|
2021-08-31 12:44:18 +02:00 |
|
Christoffer Lerno
|
6e386538dc
|
Fixed bool->bool casts. Fixed ternary with boolean "legs". Removed some superfluous code.
|
2021-08-28 13:39:15 +02:00 |
|
Christoffer Lerno
|
8731634f4d
|
Unified constants (enum, error types, typeid). Removed EXPR_MEMBER_ACCESS. Added if-catch-switch. switch-case can handle non constant values. Inlining removed on O0. Added subarray comparison allowing string cases.
|
2021-08-27 19:13:32 +02:00 |
|
Christoffer Lerno
|
1751e7ece5
|
Remove old try/catch. Remove incorrect flattening. Basic asm. Start work on if-catch-switch.
|
2021-08-24 12:41:20 +02:00 |
|
Christoffer Lerno
|
7c7ee58b6b
|
Fix in byte output for globals.
|
2021-08-21 22:16:35 +02:00 |
|
Christoffer Lerno
|
64f20da080
|
Better handling of void/void*, unified local/global var analysis. Native base64 / hex data array (needs more checks)
|
2021-08-20 10:29:17 +02:00 |
|
Christoffer Lerno
|
f180a0d44a
|
Change anyerror { i64, i64 } -> i64. Cleaned up platform data and max tls / vector align. Initial work on bitstruct (just parsing). Updated try / catch semantics.
|
2021-08-18 17:31:09 +02:00 |
|
Christoffer Lerno
|
bc4ed2b213
|
Use assert functions on various platforms.
|
2021-08-16 16:43:53 +02:00 |
|
Christoffer Lerno
|
da76777ee4
|
Fixes to aarch64 float struct return. Missing byval and align on calls. This *breaks* try-catch.
|
2021-08-11 19:17:45 +02:00 |
|
Christoffer Lerno
|
c12cba67a8
|
Fix of try(...) { ... } and failable state on function call.
|
2021-08-03 19:57:44 +02:00 |
|
Christoffer Lerno
|
490dd65664
|
Add attributes to call site. @inline, @noinline to calls #250
|
2021-08-03 12:02:36 +02:00 |
|
Christoffer Lerno
|
78425ff5f2
|
Initial work on foreach overloading. Fixes a bug in indirect return values. Unifies call analysis.
|
2021-08-02 22:55:11 +02:00 |
|
Christoffer Lerno
|
ec612eea67
|
Added some explicit casts. Added sret at call site.
|
2021-07-29 16:42:20 +02:00 |
|
Christoffer Lerno
|
efe4f8c745
|
Coerce lowering for the C ABI updated. Updated aarch64 fixes.
|
2021-07-29 03:16:07 +02:00 |
|
Christoffer Lerno
|
ce6e59483f
|
Unified function and macro call analysis.
|
2021-07-28 17:20:19 +02:00 |
|
Christoffer Lerno
|
46e39f883c
|
Assigning to $Type now works.
|
2021-07-20 23:36:53 +02:00 |
|
Christoffer Lerno
|
28a0dec343
|
Fixes: Extname works on global variables. Bug with boolean in ternary in some cases. Global declarations would not parse attributes.
|
2021-07-19 17:10:13 +02:00 |
|
Christoffer Lerno
|
89d831fc18
|
Remove debug printout unless explicitly required. Add compile-only option.
|
2021-07-19 14:10:31 +02:00 |
|
Christoffer Lerno
|
f64c35214e
|
Change error -> anyerr / errtype
|
2021-07-18 14:11:39 +02:00 |
|
Christoffer Lerno
|
67d09cf7c6
|
Pick double / long double depending on availability.
|
2021-07-16 20:20:19 +02:00 |
|
Christoffer Lerno
|
39ec9d9436
|
Pass NAN/INF as string to LLVM.
|
2021-07-16 16:41:47 +02:00 |
|
Christoffer Lerno
|
caecbebd0f
|
Update float conversion into LLVM.
|
2021-07-16 15:21:56 +02:00 |
|
Christoffer Lerno
|
45a3c8ae50
|
Fix alignment on all indirect. Fixed incorrect preferred alignment. Added mingw regression tests.
|
2021-07-16 13:05:56 +02:00 |
|
Christoffer Lerno
|
22fb7b4bcc
|
Fix bug in (x && y && z) codegen.
|
2021-07-16 11:18:33 +02:00 |
|
Christoffer Lerno
|
a5ce7c47ba
|
Adding "require" precondition. Corrects inferred arrays and fixes so that it uses [*] everywhere. Distict type will now allow methods to be added to it. Added $alignof and $sizeof.
|
2021-07-09 23:57:35 +02:00 |
|
Christoffer Lerno
|
4ed2596164
|
Removes "yield"
|
2021-06-28 00:19:46 +02:00 |
|
Christoffer Lerno
|
038ed7f9d5
|
Macro methods added.
|
2021-06-26 17:42:45 +02:00 |
|
Christoffer Lerno
|
5a6cdd25ef
|
Introduced ${...} syntax for constants. Fixed issue where constants were not correctly handled for macros. /* */ comments are nesting. Added LINE, FUNC, FILE defines. Corrected shallow resolution of subarrays. Added int defines. Removed Vararray.
|
2021-06-24 00:59:25 +02:00 |
|
Christoffer Lerno
|
9fd6c06861
|
Remove debug printout.
|
2021-05-31 23:20:01 +02:00 |
|