Commit Graph

354 Commits

Author SHA1 Message Date
4f1dc5e59d Merge branch 'main' into intrinsicts 2025-07-24 11:18:33 +03:00
3404f0fb6e Add static allocator, fix loop_hard 2025-07-24 03:29:02 +03:00
6664b25932 Fix deref expecting a codegenptr and not borrow 2025-07-24 01:51:44 +03:00
87a8eac61b Fix for loops causing issues together 2025-07-24 01:48:25 +03:00
f7500b886a Add two failing examples 2025-07-24 01:42:47 +03:00
4bef1c2379 Start implementing intrinsics 2025-07-24 01:39:49 +03:00
7027ee3645 Fix default for arrays 2025-07-23 23:11:20 +03:00
aeca557b6f Make breaking changes to stdlib 2025-07-23 22:04:34 +03:00
de803e9024 Fix from_str in stdlib, add concat_strings 2025-07-23 22:01:14 +03:00
d96fc51b9c Fix adding to string that was allocated earlier 2025-07-23 21:27:45 +03:00
0d3abe8e42 Fix add_num_to_string not printing 10 2025-07-23 21:18:38 +03:00
14537743ed Fix for-loops 2025-07-23 21:17:16 +03:00
a9abb55287 Merge branch 'loops' 2025-07-23 21:07:42 +03:00
c4017715d2 Codegen for/while loops 2025-07-23 21:07:12 +03:00
a251be2715 Make loops typecheck and type infere 2025-07-23 20:53:11 +03:00
15ff9c5906 Fix warnings 2025-07-23 20:44:58 +03:00
75a7a435d1 Make for-loops syntax sugar instead 2025-07-23 20:44:30 +03:00
1a5e3ef1d9 Add loops ast -> mir 2025-07-23 20:29:13 +03:00
ef4964ed86 Add parsing for for/while loops 2025-07-23 20:14:35 +03:00
c699b67d75 Add clamp and abs to std, credit to @neon 2025-07-23 19:54:20 +03:00
431aae0b0d Add lexing to loops 2025-07-23 19:52:46 +03:00
ccb5741666 Fix add_num_to_str to accept arbitrary length numbers 2025-07-23 19:39:32 +03:00
9fcf19383c Check that tests always return a specific value 2025-07-23 19:33:58 +03:00
59ecaa0d92 Make e2e test execute compiled binaries 2025-07-23 19:18:01 +03:00
bb69ce4968 Fix LD-environment variable 2025-07-23 19:01:24 +03:00
1a65b4085f Add LDRunner 2025-07-23 18:57:56 +03:00
c622d59c93 Fix borrow derefs 2025-07-23 17:52:28 +03:00
fe4e41c435 Fix seeing same type multiple times when importing 2025-07-23 17:21:33 +03:00
8be6ce1549 Fix borrow-example 2025-07-23 16:58:44 +03:00
4de346e3c0 Make tests also codegen correctly 2025-07-23 16:33:12 +03:00
efeefe0bfe Add scaffolding to return some errors from codegen 2025-07-23 16:06:05 +03:00
8b79959288 Fix typedefinition in scope 2025-07-23 15:34:01 +03:00
82758ae333 Only test for typedefinitions in current module 2025-07-23 15:22:58 +03:00
b723ff2d06 Upodate e2e tests 2025-07-23 15:17:23 +03:00
3a68154ae5 Add codegen for div and mod 2025-07-23 15:12:21 +03:00
b9459a19bb Add div/mod parsing 2025-07-23 14:59:51 +03:00
c643bb235f Add production of .llir and .mir -files for LLIR and MIR 2025-07-22 23:49:44 +03:00
b39b829061 Add production of .llir and .mir -files for LLIR and MIR 2025-07-22 23:32:32 +03:00
97f5eebf22 Fix some warnings 2025-07-22 23:25:49 +03:00
9df1593de9 Fix decimal parsing, add u128-support for integer parsing 2025-07-22 23:20:38 +03:00
8954d1a6d0 Add binop_hint 2025-07-22 23:14:38 +03:00
38b7030e98 Fix binary operations 2025-07-22 22:55:44 +03:00
1e86a9a2aa Remove main.rs, remove debug prints 2025-07-22 22:42:29 +03:00
2f56f148cb Fix assert_known 2025-07-22 22:41:20 +03:00
8bbee5eb41 Fix binops not using hint properly 2025-07-22 22:34:07 +03:00
ef427f5e58 Fix checking that parameters and return-type is known 2025-07-22 22:29:00 +03:00
0a90ac4497 Fix inner block generation 2025-07-22 22:15:34 +03:00
f944387847 Merge branch 'main' into if-expr-lhs-rhs 2025-07-22 21:50:43 +03:00
59c8b641ca Move cli to main, update version 2025-07-22 21:39:54 +03:00
04ecc94403 Commit to git 2025-07-22 21:34:59 +03:00
682295b04a Fix casting from the same size of integer 2025-07-22 21:05:52 +03:00
e5f6b37210 Fix std 2025-07-22 21:02:14 +03:00
29d790e583 Start working on if-expression hands being expressions 2025-07-22 20:58:32 +03:00
5c5c9c5f7b Improve error for statement-failure 2025-07-22 20:54:06 +03:00
8f45c8cf92 Fix nested if/else, add add_num_to_str to standard library 2025-07-22 20:47:39 +03:00
32059682ee Make add_char and set_char work 2025-07-22 20:27:29 +03:00
64418635a5 Add from_str to stdlib 2025-07-22 20:07:42 +03:00
28437aecb6 Fix indexing return type and casting to and from a char 2025-07-22 20:03:25 +03:00
bbdfae081d Fix std Strings 2025-07-22 19:50:54 +03:00
3d73c52cb4 Fix casting within setters 2025-07-22 19:31:35 +03:00
81ce1dfc2e Fix a bunch of bugs with debug information and stuff 2025-07-22 19:16:45 +03:00
78a1e9f06b Fix typedef issue with modules 2025-07-22 18:03:15 +03:00
f35f1ef701 Repurpose module map and rename old to ErrorModules 2025-07-22 17:34:01 +03:00
fa6b7bdf87 Add temporary line number for for non-local structs 2025-07-22 16:35:15 +03:00
e9bca63f0d Add module id to CustomType, String to std 2025-07-22 16:16:46 +03:00
1224c612c7 Codegen & compile char, change *str to *char 2025-07-22 15:07:33 +03:00
108cf6efa5 Add FCmp to codegen 2025-07-22 15:01:02 +03:00
9b9398ac26 Add lexing of escaped characters, add parsing of characters 2025-07-22 14:57:09 +03:00
e220900ac3 Start adding chars 2025-07-22 14:44:28 +03:00
9c0d373f9d Fix casting to same type 2025-07-22 14:21:17 +03:00
e27aa4b8ab Fix pointer-casting 2025-07-22 14:19:28 +03:00
c03a5188ea Finish casting codegen 2025-07-22 14:12:31 +03:00
104205ee5d Type-infer and check typecasting 2025-07-22 13:24:53 +03:00
3378f556ec Add AST -> MIR for typecasting 2025-07-21 21:28:39 +03:00
c4ab4ac0b3 Add parsing of casting 2025-07-21 21:23:37 +03:00
471c2eaf87 Fix struct-parsing interfering with if-parsing 2025-07-21 20:52:39 +03:00
fe145ad2ef Fix comparisons not working for integers 2025-07-21 20:25:28 +03:00
836a532d8d Fix UserPointer being completely monkeypatched, found the issue 2025-07-21 20:13:15 +03:00
10d62eb1f7 Allow_identifiers_to_have_underscores 2025-07-21 19:36:44 +03:00
069c277516 Update String to be *str 2025-07-21 19:32:40 +03:00
eb99a4c74e Fix range in literals 2025-07-21 19:18:39 +03:00
3d3a9a34f9 Fix binary operators for floats, make library functions extern 2025-07-21 17:32:20 +03:00
feac7163f2 Add a bunch of operations to lib 2025-07-21 17:03:21 +03:00
f0f828d1eb Fix float type coercion and compilation 2025-07-21 16:54:50 +03:00
ec0c7fa194 Fix float coersion rules 2025-07-21 16:53:29 +03:00
a1507e14ca Add flag to ignore no-main-error 2025-07-21 16:47:51 +03:00
7c7dde03f9 Fix error reporting on No-Main-Function and add fp compilation 2025-07-21 16:44:16 +03:00
bcc93dd60c Add parsing to floats 2025-07-21 16:18:14 +03:00
e370e17ffd Only include STD if it is imported 2025-07-21 15:47:02 +03:00
b23577aa18 Check for trivial expressions that they are >0 when unsigned 2025-07-21 15:44:47 +03:00
d65b0153a1 Implement unary operators as syntax sugar 2025-07-21 15:12:49 +03:00
ed9c8638d5 Get pointers working 2025-07-21 14:43:24 +03:00
9db508bd9c Change user-space pointer to different type 2025-07-21 13:52:37 +03:00
a49105b07a Add typecheck/infer for pointers 2025-07-21 13:29:19 +03:00
3b43689650 Add parsing pointer-type 2025-07-21 13:25:01 +03:00
1ba1ae3213 Try add some display for LLIR 2025-07-21 12:07:42 +03:00
f55040ad00 Update how types are formatted 2025-07-21 11:06:42 +03:00
ce645519ce Fix NamedVarRefrence tokenrange 2025-07-21 10:52:33 +03:00
37386db437 Check for mutability when doing a let 2025-07-21 10:43:24 +03:00
5763df948f Check borrow mutability against variable mutability 2025-07-21 10:39:19 +03:00