Commit graph

202 commits

Author SHA1 Message Date
a0dd6f9ca6 Modules wip: huge refactor + support linking several input files into a single executable memory blob 2026-08-05 14:30:38 +03:00
5c3e59eaf5 Modules wip: refactor IR compiler 2026-08-02 22:27:30 +03:00
cb84430883 Modules wip: extract AST preprocessing to a separate 'semantic' library, move fake root AST node for module entry point to IR compiler internals 2026-08-02 22:00:02 +03:00
b16894ebd1 x86_64 backend: tons of fixes + raytracer example works! 2026-08-02 15:24:50 +03:00
4c583c8b3b x86_64 backend: support returning structs & arrays 2026-08-02 15:24:50 +03:00
866af8d21c x86_64 backend: fix handling large struct function arguments 2026-08-02 15:24:50 +03:00
d504a90555 Support structs and arrays as function arguments on x86_64 2026-08-02 15:24:50 +03:00
649574c573 Add software implementation of float16 2026-08-02 15:24:47 +03:00
e56242ca62 Fix macos_aarch64 backend integer casts 2026-07-29 16:28:44 +03:00
f727883f46 x86_64 compiler backend wip 2026-07-28 23:21:45 +03:00
877efa6981 Add jit/helpers.hpp 2026-07-28 23:21:22 +03:00
09f52ab0d2 Support pointers in types::type_size 2026-07-28 23:20:58 +03:00
8aec010bd0 Aarch64 compiler cleanup 2026-07-28 23:20:14 +03:00
2c11ee39de Linux compilation fixes 2026-07-27 17:45:08 +03:00
88b215e5cd Split jit::abi into isa & platform enums, rename arch/aarch64 -> arch/macos_aarch64 backend 2026-07-27 17:36:02 +03:00
893aa5d979 Switch to curly braces for scoping instead of indentation 2026-07-27 16:12:56 +03:00
9337490f5b Implement global variables 2026-05-08 21:38:44 +03:00
393db4b912 Dump AST and IR immediately after handling a file 2026-05-07 22:33:16 +03:00
ec751ec6c2 Fix treating ir::jump_if_nonzero as non-value instruction 2026-05-07 22:32:46 +03:00
ac58713fe1 Fix mandelbrot example 2026-05-07 13:47:27 +03:00
d146ec69fd Allow mutable function arguments 2026-05-07 13:47:15 +03:00
79838a1bb3 Add raytracer example performance timings 2026-04-05 19:14:37 +03:00
bd9425ebec Add fresnel in raytracer example 2026-04-04 16:59:21 +03:00
028895ce7f Update spec 2026-04-03 13:18:45 +03:00
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