Commit Graph

445 Commits

Author SHA1 Message Date
7d1b7c5d68 lang: lex: add new lex token type ids 2025-09-08 16:03:26 +01:00
6e65349d70 lang: ast: fix some source formatting 2025-09-08 16:01:02 +01:00
d95a544ff2 lang: ast: fix parsing of tuple iterator declaration in for-loops 2025-09-08 16:00:42 +01:00
59a85e9c47 lang: ast: fix parsing of unlabelled complex msg args 2025-09-08 16:00:07 +01:00
6dfa0c7e17 lang: ast: add function to signal the end of token input to the parser 2025-09-08 15:58:14 +01:00
3c72527204 lang: ast: fix parsing of inline-if expressions that immediately precede an end keyword 2025-09-08 15:57:04 +01:00
8ab377b3ab lang: ast: implement parsing of true/false/null keyword constants 2025-09-08 15:56:03 +01:00
bf250179da lang: ast: implement parsing of break/continue loop-control statements 2025-09-08 15:55:12 +01:00
84e52b1649 lang: ast: replace var keyword with global
local variables are now created automatically when they are first assigned to.

the global keyword can be used to declare that a name refers to a global variable instead,
at which point, assigning to the name results in the assignment referencing the global variable
instead of allocating a new global variable.
2025-09-08 15:52:29 +01:00
5ea544692b lang: diag: add some new diag codes and messages 2025-09-08 15:48:38 +01:00
ea42f738df asm: implement a mie backend for ivy assembly generation 2025-09-08 15:47:48 +01:00
9f8bdc9365 asm: update references to enum ivy_opcode 2025-09-08 15:47:16 +01:00
4e8b1c15de common: rename instruction opcode enum names to avoid conflict 2025-09-08 15:46:44 +01:00
48fb330f47 common: re-define status codes to be compatible with b_result 2025-09-08 15:43:29 +01:00
eb260fb35c mie: select: add support for target-specific nodes and lowering operations 2025-09-08 15:42:22 +01:00
5ca045fd5b mie: target: add result output to ir lowering callbacks 2025-09-08 15:41:50 +01:00
d6f71b7f4f mie: ir: add helper function to check if a value is a selector 2025-09-08 15:40:33 +01:00
15c7b7470e mie: implement simple type comparison 2025-09-08 15:39:55 +01:00
7bff5c9fca mie: add some more status codes 2025-09-08 15:39:41 +01:00
32a520e210 mie: ir: implement generation and text output of phi instruction 2025-09-08 15:35:35 +01:00
dd0dcc9c0a mie: add null IR value 2025-09-08 15:33:25 +01:00
2ff85a7505 doc: sample: add for and while loop samples 2025-09-08 15:30:44 +01:00
cb63e8d016 doc: sample: remove var keyword 2025-09-08 15:30:24 +01:00
ebfbbd0a1a frontend: compile: create and (optionally) show isel graph for each block 2025-08-29 15:47:42 +01:00
9c1e0958b0 mie: implement instruction selection graph generation for binary ops and load/store 2025-08-29 15:46:52 +01:00
7fdae9f1e0 mie: move mie_type_to_string to type.c 2025-08-29 15:46:12 +01:00
1a37898d48 cmake: update FindBluelib module 2025-08-29 15:44:12 +01:00
d532d9cff3 lang: codegen: fix free of mie_ctx that isn't allocated by ivy_codegen 2025-08-16 21:11:46 +01:00
7583252b72 doc: add/update sample files 2025-08-16 21:02:14 +01:00
1a9debd6fb test: update mie_ctx include path 2025-08-16 21:01:49 +01:00
fe2565dfcd frontend: update mie_ctx include path 2025-08-16 21:01:32 +01:00
adb326c795 lang: codegen: fix instr gen duplicating left operand 2025-08-16 21:00:50 +01:00
bda10b1166 lang: codegen: update mie_ctx include path 2025-08-16 21:00:22 +01:00
9126638045 mie: add a stub instruction selection system 2025-08-16 20:57:43 +01:00
7ef90750db mie: add status codes 2025-08-16 20:56:40 +01:00
311dd60322 mie: name: add a mie_name destructor that removes it from its parent name map 2025-08-16 20:54:05 +01:00
b4fa90ea7f mie: move mie_ctx out of the ir subsystem 2025-08-16 20:53:40 +01:00
2b87068852 test: update mie ir api usage 2025-06-02 11:32:46 +01:00
91a3b7cddc frontend: update mie ir api usage 2025-06-02 11:32:36 +01:00
9f83929600 lang: update mie ir api usage 2025-06-02 11:31:35 +01:00
d01a3b4663 mie: refactor ir api into a separate sub-directory 2025-06-02 11:31:19 +01:00
a3d553019d frontend: disassemble: implement dumping int/uint constpool values 2025-05-16 16:57:14 +01:00
57c352ab88 asm: parse: fix parse_linefeed not writing constpool entries for int/uint values 2025-05-16 16:56:47 +01:00
2b28371cb6 frontend: disassemble: implement dumping the contents of classes 2025-05-15 12:11:11 +01:00
49d21de894 frontend: disassemble: implement dumping ident, atom, and null constpool values 2025-05-15 12:10:58 +01:00
a76525e11f asm: parse: use specified indices when writing constpool values 2025-05-15 12:09:39 +01:00
2845c29c5f asm: assembler: constpool value indices are now used and enforced
constpool values must be defined in ascending sequence, each index must be greater than the last.
any gaps in the sequence will automatically be filled with null values.
2025-05-15 12:08:34 +01:00
95f58615e0 asm: reader: implement reading ident and atom constpool values 2025-05-15 12:06:04 +01:00
9229e90723 frontend: disassemble: adjust section dump output format 2025-05-14 16:29:31 +01:00
8998ef0232 frontend: assemble: assembler requires output file to be open read/write 2025-05-14 16:29:09 +01:00