Commit Graph

  • abebdb595a frontend: add IR generation to compile command Max Wash 2025-04-15 11:00:48 +01:00
  • 8d462799dd mie: add selector as a mie_value const type Max Wash 2025-04-15 11:00:10 +01:00
  • 4587416ac9 frontend: repl: generate ir from input Max Wash 2025-04-14 20:15:41 +01:00
  • 670b7c5a33 lang: codegen: redesign codegen to use a stack-based state machine Max Wash 2025-04-14 20:15:05 +01:00
  • 5630132a69 mie: add some convenience functions for func, block, and builder Max Wash 2025-04-14 20:14:44 +01:00
  • d4e0df0bda mie: implement sub/mul/div instruction generation Max Wash 2025-04-14 20:14:28 +01:00
  • 1c8f1447e7 mie: fix a nullptr deref in mie_ctx cleanup Max Wash 2025-04-14 20:13:13 +01:00
  • bcc0daa2d5 frontend: update ast iterator api usage Max Wash 2025-04-14 12:25:49 +01:00
  • f123902215 frontend: add parameters to print_ast_node iterator function Max Wash 2025-04-14 12:24:56 +01:00
  • 80e001cdc1 lang: add user args to ast iterator; combine pre/post-order traversal modes Max Wash 2025-04-14 12:24:42 +01:00
  • 7a9fc1b11c doc: remove class definition from Expressions sample Max Wash 2025-04-14 09:53:27 +01:00
  • 2cd78a64b0 lang: start implementing code generation (ast to ir) facility Max Wash 2025-04-14 09:48:16 +01:00
  • c682cbb15a frontend: update ast traversal api usage Max Wash 2025-04-14 09:46:36 +01:00
  • fd91bb71c0 ast: implement postorder ast traversal Max Wash 2025-04-14 09:44:37 +01:00
  • ae5e438207 common: add some more status codes Max Wash 2025-04-14 09:43:31 +01:00
  • e1d7bebe9f test: mie-ir: cleanup after ir generation Max Wash 2025-04-13 19:25:41 +01:00
  • a7233a6cf6 mie: implement value cleanup Max Wash 2025-04-13 19:25:23 +01:00
  • 44aec9a121 doc: mie ir block labels are no longer prefixed with % Max Wash 2025-04-13 18:35:06 +01:00
  • 80110ec95e mie: add ir builder test Max Wash 2025-04-13 18:34:41 +01:00
  • edf5b18b32 mie: start implementing ir memory->text conversion Max Wash 2025-04-13 18:34:28 +01:00
  • deb1232bf9 mie: implement more ir building functionality Max Wash 2025-04-13 18:34:02 +01:00
  • 7f0d8b87c5 mie: name_map can now generate unique names when given no hints Max Wash 2025-04-11 14:12:53 +01:00
  • e379afb035 doc: add sample Mie IR for Person.im Max Wash 2025-04-11 13:42:27 +01:00
  • db5843b66f mie.vim: replace sym type name with atom Max Wash 2025-04-11 13:42:10 +01:00
  • 2b603c0d75 meta: add support for simple unit test Max Wash 2025-04-11 13:41:33 +01:00
  • 377444ef59 mie: implement value type initialiser functions Max Wash 2025-04-11 13:40:54 +01:00
  • 98d82de47a mie: add name_map to generate unique value names Max Wash 2025-04-11 13:40:37 +01:00
  • 8dd67501bd doc: update property/atom samples Max Wash 2025-04-10 13:04:43 +01:00
  • 4dec09352d ivy.vim: update highlighting for properties and atoms Max Wash 2025-04-10 13:04:29 +01:00
  • 2235f9c0a9 lang: change symbols for properties and atoms to -> and $ respectively Max Wash 2025-04-10 13:04:12 +01:00
  • 8045872dc3 mie.vim: add highlighting for new instructions and keywords Max Wash 2025-04-10 12:19:13 +01:00
  • 5cd3eff2ed mie: add lots more mie_value sub-types Max Wash 2025-04-10 12:18:07 +01:00
  • ecc886c95a doc: add sample of directly calling a block rvalue Max Wash 2025-04-03 10:53:27 +01:00
  • e7f6d54fa2 mie: add value type hierarchy definitions Max Wash 2025-04-03 10:50:35 +01:00
  • df8d9689d1 lang: add null pointer check to arith_parse_left_paren Max Wash 2025-04-03 10:48:41 +01:00
  • 6f9f299182 build: add mie to build system Max Wash 2025-04-03 10:48:16 +01:00
  • 962c1ae9d4 doc: update IR samples to new mie sub-directory and file extension Max Wash 2025-04-03 10:47:24 +01:00
  • 944ffcaea2 vim: pull IR syntax highlighting into separate vim plugin Max Wash 2025-04-03 10:42:46 +01:00
  • 0fee53f194 meta: add stub folder for mie ir builder/optimiser Max Wash 2025-03-26 22:28:06 +00:00
  • ba1db96be3 doc: add lambda and call-operator sample code Max Wash 2025-03-26 22:27:24 +00:00
  • b6bfdd0fd1 doc: adjust package messages; add more sample code Max Wash 2025-03-26 22:27:06 +00:00
  • 78b2eb23c3 lang: ast: implement () operator parsing Max Wash 2025-03-26 21:10:12 +00:00
  • 0c500dc19b lang: lex: add function for creating fake ident tokens Max Wash 2025-03-26 21:09:07 +00:00
  • 02ebb5c32b vim: add syntax highlighting support for intermediate language Max Wash 2025-01-27 19:19:29 +00:00
  • b4fd6a999b doc: add intermediate representation language Max Wash 2025-01-27 19:19:11 +00:00
  • 251ed8c144 frontend: add coloured output for try-catch-finally AST nodes Max Wash 2025-01-16 13:18:19 +00:00
  • 5017e2e736 doc: add try-catch-finally example file Max Wash 2025-01-16 13:17:46 +00:00
  • 46d244a28d lang: ast: implement parsing of try-catch-finally statements Max Wash 2025-01-16 13:15:48 +00:00
  • 143d61e329 lang: ast: add support for multiple block termination tokens Max Wash 2025-01-16 13:15:18 +00:00
  • fa33336ed7 lang: lex: add finally keyword Max Wash 2025-01-16 13:13:08 +00:00
  • 22694f2d98 doc: replace . as self-index operator with :: Max Wash 2025-01-15 21:11:58 +00:00
  • f5eaac1a4c lang: fix underscopre not being treated as an expression start token Max Wash 2025-01-15 21:11:19 +00:00
  • bbe1e49e55 vim: add in keyword Max Wash 2025-01-15 17:40:29 +00:00
  • d50417c4b7 frontend: add command to disassemble object files Max Wash 2025-01-15 17:40:01 +00:00
  • ada0ff8c85 asm: fix parts of encoded instructions being overwritten Max Wash 2025-01-15 17:39:15 +00:00
  • 4561208db5 Merge branch 'main' of https://github.com/washh/ivy Max Wash 2024-12-16 21:02:03 +00:00
  • bc8bfcea9d meta: add missing exe resource files Max Wash 2024-12-16 20:57:30 +00:00
  • b2047d9907 vim: add new vm instructions Max Wash 2024-12-15 22:37:19 +00:00
  • 3c05b362d7 doc: update with new vm instructions Max Wash 2024-12-15 22:37:05 +00:00
  • b67b861ecf asm: implement instruction assembly and emission Max Wash 2024-12-15 22:36:50 +00:00
  • 3ad355e58c common: add additional opcodes Max Wash 2024-12-15 22:36:14 +00:00
  • 08f08df6e4 common: replace reference to b_strv_builder with b_stringstream Max Wash 2024-12-15 22:35:54 +00:00
  • 10c03c4b74 asm: add instruction opcode/operand definition table Max Wash 2024-12-15 19:30:34 +00:00
  • 9e75e1f16f asm: implement stub instruction emitter Max Wash 2024-12-15 19:30:14 +00:00
  • 8889e58cf2 doc: replace @msg assembly items with @block Max Wash 2024-12-14 21:57:55 +00:00
  • 7f5cc3426d asm: implement parsing of classes, dot-mnemonics Max Wash 2024-12-14 21:57:29 +00:00
  • 83a021a862 vim: add missing assembly keywords Max Wash 2024-12-14 21:56:44 +00:00
  • 5a00f271d8 doc: reformat standard library documentation Max Wash 2024-12-14 21:07:20 +00:00
  • a167dd2af5 asm: fix compiler warnings Max Wash 2024-12-14 21:03:44 +00:00
  • 462f67c6aa asm: implement import and instruction parsing Max Wash 2024-12-14 20:26:04 +00:00
  • 724f40f19f frontend: add stub disassemble command Max Wash 2024-12-13 18:08:53 +00:00
  • fa40086f0a build: treat warnings as errors Max Wash 2024-12-13 17:21:25 +00:00
  • 9c125fe905 common: fix all compiler warnings Max Wash 2024-12-13 17:21:14 +00:00
  • 9af971c074 asm: fix all compiler warnings Max Wash 2024-12-13 17:20:58 +00:00
  • b3a9943fe5 frontend: fix all compiler warnings Max Wash 2024-12-13 17:20:45 +00:00
  • 97aaffd166 doc: update assembly language syntax Max Wash 2024-12-13 12:26:53 +00:00
  • 3bb94aa36e frontend: assemble: convert input file to output assembly Max Wash 2024-12-13 12:26:32 +00:00
  • 5fe1a21978 asm: implement an asm parser and emitter Max Wash 2024-12-13 12:26:01 +00:00
  • 0a8d913fdd common: implement ident and selector manipulation Max Wash 2024-12-13 12:25:40 +00:00
  • 24d443b818 frontend: assemble: add assembler test Max Wash 2024-12-10 22:27:34 +00:00
  • 9da6a5807a asm: implement assembler output file writing Max Wash 2024-12-10 22:27:26 +00:00
  • 06e12e4545 asm: improve alignment of on-disk structures Max Wash 2024-12-10 13:19:21 +00:00
  • 99cbcbaeb4 doc: explicitly store all identifiers/selector in an assembly source file in the const pool Max Wash 2024-12-09 20:38:36 +00:00
  • 26ed9fee04 asm: define on-disk data structures for assembly files Max Wash 2024-12-09 20:38:01 +00:00
  • 51fe7a0a71 asm: add different assembler scope types Max Wash 2024-12-09 20:37:42 +00:00
  • 8f3a035636 vim: add some missing instruction mnemonics to syntax highlighter Max Wash 2024-12-09 13:30:08 +00:00
  • 7845afcf38 asm: add interfaces for a low-level bytecode assembler Max Wash 2024-12-09 13:29:44 +00:00
  • 52f11023c8 common: add instruction and opcode definitions; interface for manipulating selectors Max Wash 2024-12-09 13:28:58 +00:00
  • 89bc63727f doc: remove outdated documentation from sample file Max Wash 2024-12-08 19:37:50 +00:00
  • 3060bb1206 doc: add subscript, pkg-access, and tuple expressions to sample file Max Wash 2024-12-08 19:37:33 +00:00
  • 8b8a97c9a6 lang: ast: implement parsing of subscript operator Max Wash 2024-12-08 17:08:29 +00:00
  • 753afd7d87 lang: ast: implement parsing of tuples Max Wash 2024-12-08 12:28:47 +00:00
  • c6f1439835 doc: add dynamic package with keyword-message filter to sample file Max Wash 2024-12-07 21:47:21 +00:00
  • 1c3bb98714 lang: ast: rename IVY_AST_STATIC_PKG_ITEM to IVY_AST_PKG_ITEM Max Wash 2024-12-07 21:46:24 +00:00
  • e8c30b65b5 lang: ast: implement support for multiple expression terminator tokens Max Wash 2024-12-07 21:28:25 +00:00
  • 7e3322e2ad doc: add package initialiser expressions to sample file Max Wash 2024-12-07 20:57:08 +00:00
  • 209c47da68 lang: ast: implement parsing of static and dynamic package initialisers Max Wash 2024-12-07 20:56:57 +00:00
  • b87d152f07 meta: add metadata to win32 exe/dll files Max Wash 2024-12-07 19:32:35 +00:00
  • 77885036c1 doc: add lambdas to sample file Max Wash 2024-12-07 11:17:01 +00:00
  • d404e21b33 lang: ast: implement parsing of unnamed parameters Max Wash 2024-12-07 10:07:20 +00:00