Commit graph

178 commits

Author SHA1 Message Date
4a83c3b9df Update spec 2026-04-03 00:15:02 +03:00
800de413cf Add sizeof & alignof builtins 2026-04-03 00:04:12 +03:00
2a3e2171b0 Implement field access for pointer-to-struct 2026-04-02 22:48:54 +03:00
42defff7d6 Update spec 2026-04-02 21:19:36 +03:00
4545713bab Use ternary if in a few more places in raytracer 2026-04-02 21:04:01 +03:00
8ba5345daf Implement ternary ifs 2026-04-02 20:19:55 +03:00
b3fc435dd6 Fix initializing variable (lmao) 2026-04-02 20:19:39 +03:00
471b3319a2 Fix comparing pointer types 2026-04-02 19:42:09 +03:00
06d509bcab Add break & continue statements 2026-04-02 17:10:42 +03:00
356eea4fb8 Tweak readme 2026-04-01 23:45:54 +03:00
20c84596df Add multi-threading in raytracer example 2026-04-01 23:43:58 +03:00
e0c1db4978 Fix calling functions by pointer in Aarch64 compiler 2026-04-01 23:43:47 +03:00
c83a5be119 Add raytracer example (wip) 2026-04-01 17:04:54 +03:00
07a50e5f7a Update spec 2026-04-01 17:04:06 +03:00
d17f48cf7f Fix some escape character literals & add a few more 2026-04-01 17:03:13 +03:00
7b6f88ea5a Add bounds checks for aarch64 instruction builder immediate arguments 2026-03-31 19:28:00 +03:00
5450fe8077 Fix comparing pointers 2026-03-31 19:27:36 +03:00
e2781fef8f Add ast::type_alignment 2026-03-31 19:27:14 +03:00
d5eab856c8 Change double-precision suffix from l to d 2026-03-31 16:00:34 +03:00
e573081647 Add logical-compound-assigment operators (^=, &=, |=) 2026-03-31 16:00:23 +03:00
3ea319f7bf Fix evaluating array address in IR compiler 2026-03-31 15:59:47 +03:00
6863cdf567 Fix calling function returning large structs from functions returning large structs in Aarch64 compiler 2026-03-31 13:29:37 +03:00
8fd548fb92 Fix casting array to pointer in IR compiler 2026-03-31 13:07:44 +03:00
fefe741b16 Fix address of operator in IR compiler 2026-03-31 13:07:28 +03:00
0784e27a01 Fix jumping in Aarch64 compiler 2026-03-30 20:29:58 +03:00
580ae22a98 Fix printing struct fields 2026-03-30 20:29:39 +03:00
b8658816b4 Fix short-circuiting operators (SQUASH) 2026-03-30 20:29:25 +03:00
ac6eacd80b Add a hacky implememntation of global constants 2026-03-30 20:02:41 +03:00
86216e8cf3 Fix short-circuiting operators 2026-03-30 20:02:13 +03:00
75f1cea3f3 Support casting pointers <-> u64 2026-03-30 20:01:56 +03:00
52a2a00d1f Fix returning large structs from functions in Aarch64 2026-03-30 16:53:02 +03:00
6d69f846f4 Add compound assignment operators 2026-03-30 13:33:16 +03:00
171e07c58d Fix type expression parsing precedence: (t -> t mut *) caused shift/reduce conflict 2026-03-30 13:32:36 +03:00
38fd23b50e Add left/right shift operators 2026-03-30 12:04:34 +03:00
138bddf187 Remove old aarch64 compiler and update plans 2026-03-29 23:22:29 +03:00
e771542773 Implement array-types function arguments & return values in Aarch64 compiler 2026-03-29 22:52:48 +03:00
1404437324 IR & Aarch64 compiler arrays support wip 2026-03-29 19:37:49 +03:00
46c33b2acf Implement proper struct field assigment in IR compiler 2026-03-29 12:20:49 +03:00
79101ff3bd Fix computing struct layouts 2026-03-29 12:20:17 +03:00
041513f33e Support struct return values in aarch64 compiler 2026-03-27 20:25:16 +03:00
7622a882b5 Support struct function arguments + fixes 2026-03-27 20:02:50 +03:00
62fc4c88de Fix floating-point function arguments in Aarch64 compiler v2 2026-03-27 16:17:37 +03:00
0dc740d656 IR & Aarch64 compiler structs support wip: struct constructors, assignment, field access 2026-03-27 14:53:36 +03:00
14cb393076 Support comparison operators for integers of different types 2026-03-26 23:49:28 +03:00
81825aee7f Tweak reporting function call type error 2026-03-26 15:53:06 +03:00
d31758eb4a Support frame pointers 2026-03-25 19:23:12 +03:00
64514d9bf4 Fix storing <8 byte sized objects on stack 2026-03-25 19:22:52 +03:00
5d7968c30b Implement IR + Aarch64 pointers 2026-03-25 16:30:43 +03:00
42e7f7961e New IR -> Aarch64 compiler wip: basic operations done (no pointers, structs, arrays) 2026-03-25 00:22:50 +03:00
c3c5010e04 Store node list via shared_ptr in module_context 2026-03-23 21:53:42 +03:00