|
|
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 |
|
|
|
dd3eb5d14b
|
Implement pointer support in IR via load/store instructions
|
2026-03-23 15:35:28 +03:00 |
|
|
|
0c11b09548
|
Pointers wip
|
2026-03-23 14:41:47 +03:00 |
|
|
|
776c12f6b5
|
Update plans
|
2026-03-23 00:26:58 +03:00 |
|
|
|
b267f09ea4
|
Fix abi.cpp indentation
|
2026-03-23 00:17:26 +03:00 |
|
|
|
e084b48fd3
|
Refactor IR compiler: get rid of useless scoping
|
2026-03-23 00:12:55 +03:00 |
|
|
|
ebc19fad20
|
Refactor type checker: remove useless scoping, resolve type layouts all in one go
|
2026-03-22 23:49:29 +03:00 |
|
|
|
c4d1252462
|
Refactor return AST node: store direct function node reference instead of relative scope level
|
2026-03-22 20:18:39 +03:00 |
|
|
|
5d00f1ddb7
|
Refactor AST: store direct references to AST nodes in indentifiers
|
2026-03-22 20:02:40 +03:00 |
|
|
|
292d6eeabf
|
Refactor: split pre-AST (contains if/else if/else blocks, field definitions, no hierarchy) and the actual AST obtained after resolving scoping & indentation (contains if chains, no field definitions)
|
2026-03-22 14:06:34 +03:00 |
|
|
|
56c63d50ac
|
Struct types refactor v2: store AST node pointer in struct type
|
2026-03-22 13:34:35 +03:00 |
|
|
|
78e6a5c0ee
|
Add readme and tweak spec
|
2026-03-22 13:00:41 +03:00 |
|
|
|
d363be0eef
|
Replace some usages of ostringstream with std::format
|
2026-03-22 12:51:38 +03:00 |
|
|
|
357baa9652
|
Fix printing function types like (a -> b) -> c
|
2026-03-22 12:50:22 +03:00 |
|
|
|
7d5795d9bf
|
Fix compilation to IR, in particular initializing a variable with a copy of another variable
|
2026-03-19 15:05:08 +03:00 |
|
|
|
29c936c19c
|
Rework grammar to support input files without a newline in the end
|
2026-03-18 19:03:31 +03:00 |
|
|
|
ae01f53d15
|
Improve interpreter input handling
|
2026-03-18 18:48:01 +03:00 |
|
|
|
25672d3f05
|
First common arch-independent IR prototype (no structs or arrays yet)
|
2026-03-18 18:35:47 +03:00 |
|
|
|
1a0dd2a48f
|
Aarch64 JIT compiler wip: partial struct support
|
2026-03-17 18:08:23 +03:00 |
|
|
|
53be7b92df
|
Store inferred struct field type in the field node itself
|
2026-03-16 12:44:27 +03:00 |
|
|
|
ab028c9d7a
|
Hard-code size of bool as 1 just in case
|
2026-03-15 20:12:18 +03:00 |
|
|
|
8c0b371fdb
|
Implement computing struct layout (size, alignment, field offsets) in type checking
|
2026-03-15 20:12:01 +03:00 |
|
|
|
0d6b491fd4
|
Fix resolving top scope variables in resolve_identifiers (were considered global, but not anymore)
|
2026-03-15 16:34:14 +03:00 |
|
|
|
bcdcc9e752
|
Fix identifier & literal source locations in parser
|
2026-03-15 16:33:29 +03:00 |
|
|
|
b25400ad65
|
Properly implement inner functions in aarch64 compiler & support module entry point
|
2026-03-15 14:16:33 +03:00 |
|
|
|
4b555c2ad4
|
Fix filename tracking in locations & separate prelude location and full block location for AST nodes containing statement lists
|
2026-03-14 00:48:46 +03:00 |
|
|
|
3981b78b2d
|
Rename parser::finilize -> finalize
|
2026-03-13 17:18:55 +03:00 |
|
|
|
84f193befd
|
Add mandelbrot example
|
2026-03-13 14:26:28 +03:00 |
|
|
|
89b6b09be5
|
Fix scope stack offset cleanup in aarch64 compiler
|
2026-03-13 14:25:05 +03:00 |
|
|
|
51c78169b3
|
Validate functions with no return & automatically add return in the end of a function returning unit
|
2026-03-13 13:40:09 +03:00 |
|
|
|
11656fb296
|
Support printing multiline error context in interpreter
|
2026-03-13 13:39:28 +03:00 |
|
|
|
902d272deb
|
Fix empty location in if chains
|
2026-03-13 13:39:01 +03:00 |
|
|
|
ad46b230d8
|
Fix missing handling of expression statements in aarch64 compiler
|
2026-03-13 12:53:18 +03:00 |
|
|
|
e5ce32d25f
|
Fix handling empty returns in aarch64 compiler
|
2026-03-13 12:53:03 +03:00 |
|
|
|
788e98409a
|
Implement remainder operator in aarch64 compiler
|
2026-03-13 11:24:43 +03:00 |
|
|
|
0541068c2b
|
Improve 'not implemented' error messages
|
2026-03-13 11:09:39 +03:00 |
|
|
|
7f574eabbd
|
Fix extending register after logical not in aarch64 compiler
|
2026-03-13 11:05:20 +03:00 |
|
|
|
c8cd86dd0b
|
Add foreign functions (stub in interpreter, implemented in aarch64 compiler)
|
2026-03-13 11:01:53 +03:00 |
|
|
|
cb433d87bf
|
Fix short-circuit || for small integer types
|
2026-03-12 23:13:42 +03:00 |
|
|
|
13a9ba24f2
|
Refactor: split function definition & declaration in ast
|
2026-03-12 21:45:21 +03:00 |
|