|
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 |
|
|
1fadaa60f2
|
Add mutability compatibility check to borrows
|
2025-07-21 10:33:37 +03:00 |
|
|
74ce296a05
|
Refactor a bit
|
2025-07-21 10:29:26 +03:00 |
|
|
b9f6f2ba0f
|
Make param mutable based on type
|
2025-07-21 10:23:30 +03:00 |
|
|
60818842a5
|
Add borrow mutability
|
2025-07-21 10:21:25 +03:00 |
|
|
8da32c25c5
|
Make borrows work as function parameters as well
|
2025-07-21 10:07:56 +03:00 |
|
|
2e829bc8a9
|
Fix linker, add e2e tests
|
2025-07-21 09:59:35 +03:00 |
|
|
09cec9c110
|
Implement borrowing in codegen
|
2025-07-21 09:54:55 +03:00 |
|
|
893eaaa865
|
Clean up and fix some warnings
|
2025-07-20 22:36:38 +03:00 |
|
|
550fec2827
|
Fix typeinference and checking for borrows/derefs
|
2025-07-20 22:33:00 +03:00 |
|
|
47fa5f342f
|
Nearly get typechecking working for deref/borrow
|
2025-07-20 22:15:16 +03:00 |
|
|
62d73b19a2
|
Improve error messages for typerefs a bit
|
2025-07-20 21:51:18 +03:00 |
|
|
c0e375d84c
|
Add typechecking for borrow/deref
|
2025-07-20 21:48:00 +03:00 |
|
|
cf30f79951
|
Add type inference for borrow/deref
|
2025-07-20 21:43:27 +03:00 |
|
|
26818cec96
|
Add AST->MIR for borrow/deref
|
2025-07-20 21:34:47 +03:00 |
|
|
ba8ee770fb
|
Parse deref and borrow
|
2025-07-20 21:25:08 +03:00 |
|
|
d7661cb968
|
Add metadata location to function calls
|
2025-07-20 21:08:15 +03:00 |
|
|
33d5ee03f0
|
Improve LLVM IR SSA names
|
2025-07-20 20:50:32 +03:00 |
|
|
71a01dad69
|
Remove name from alloca
|
2025-07-20 20:24:26 +03:00 |
|
|
848f4118bf
|
Fix params not being pointers
|
2025-07-20 20:13:47 +03:00 |
|
|
158ddc58c8
|
Fix structs loading values prematurely
|
2025-07-20 20:00:34 +03:00 |
|
|
be76331a47
|
Get recursive structs and arrays working too
|
2025-07-20 19:59:03 +03:00 |
|
|
d631e80267
|
At crossroads
|
2025-07-20 19:54:43 +03:00 |
|
|
c723ba7b4a
|
Get inner arrays working
|
2025-07-20 19:30:34 +03:00 |
|
|
a62f9db422
|
Get static arrays actually working alone
|
2025-07-20 19:23:42 +03:00 |
|
|
b185e2ecc6
|
Import typedefs from other modules as well
|
2025-07-20 15:55:47 +03:00 |
|
|
e8e2b4cebd
|
Implement parsing of multiple parameters
|
2025-07-20 15:32:56 +03:00 |
|
|
575abe8172
|
Make passes actually return errors well
|
2025-07-20 15:25:21 +03:00 |
|
|
e4845c4084
|
Get structs in arrays working, but no luck with arrays in structs
|
2025-07-20 14:21:37 +03:00 |
|
|
f952651a66
|
Get structs to work in debug information
|
2025-07-20 13:52:54 +03:00 |
|
|
c0b02f8a45
|
Clean up some prints
|
2025-07-20 05:04:12 +03:00 |
|
|
5f65d3438a
|
Get arrays to work in DI, huzzah
|
2025-07-19 22:08:23 +03:00 |
|
|
c1cc1d28de
|
Implement array and struct debug info
|
2025-07-19 20:51:06 +03:00 |
|
|
a511331be2
|
Fix type-inferrer on arrays
|
2025-07-19 19:23:24 +03:00 |
|
|
f9f9360efc
|
Update error text
|
2025-07-19 19:03:31 +03:00 |
|
|
98169af415
|
Add array and pointer-types to lib
|
2025-07-19 16:18:29 +03:00 |
|
|
d64cf750b1
|
Make codegen return StackValues instead of instructions
|
2025-07-19 15:46:34 +03:00 |
|
|
1ad89de682
|
Add better coverage for debug types
|
2025-07-19 14:33:27 +03:00 |
|
|
f2c38d42b9
|
Add variable debug declarations to all variables
|
2025-07-19 13:56:51 +03:00 |
|
|
59ce454f91
|
Store all variables in pointers
|
2025-07-19 13:54:54 +03:00 |
|
|
94fbd51d35
|
Commit out adding records for now
|
2025-07-19 13:29:05 +03:00 |
|
|
e12d0be08b
|
Start adding debug-records
|
2025-07-19 13:14:53 +03:00 |
|
|
7c8a123945
|
Add variables to debug info
|
2025-07-19 12:15:56 +03:00 |
|
|
e75c38ad85
|
Add debug information to everything (for now)
|
2025-07-19 00:41:29 +03:00 |
|
|
9749a29680
|
Upgrade to LLVM 20.1
|
2025-07-18 23:04:08 +03:00 |
|
|
92f12e90eb
|
Make debug information work
|
2025-07-18 19:38:01 +03:00 |
|
|
b169e67ca4
|
Add debug locations to returns
|
2025-07-18 18:36:04 +03:00 |
|
|
1967cadbc0
|
Get debug info working very preliminarily
|
2025-07-18 17:26:11 +03:00 |
|
|
287ab69d32
|
Remove old useless example
|
2025-07-18 17:01:10 +03:00 |
|
|
990d8cb448
|
Fix around in debug information generation, fix subprogram not being set
|
2025-07-18 16:59:05 +03:00 |
|
|
0c6d9885ec
|
Add debug information compilation for subprograms and their parameters
|
2025-07-18 15:44:12 +03:00 |
|
|
9bb4f97e6b
|
Start adding debug information
|
2025-07-18 00:07:11 +03:00 |
|
|
292688a840
|
Fix some warnings
|
2025-07-17 20:26:01 +03:00 |
|
|
ce2278ce45
|
Fix using custom type-labels for e.g. return type
|
2025-07-17 20:20:07 +03:00 |
|
|
0f782dcb96
|
Fix parse error returning the token after the error
|
2025-07-17 20:16:37 +03:00 |
|
|
6dfd98eba3
|
Use true source for error formatting
|
2025-07-17 19:34:54 +03:00 |
|
|
df4febf1ef
|
Add formatting of the printed lines to errors
|
2025-07-17 18:58:05 +03:00 |
|
|
9d1b18f083
|
Add FullToken array to error raporting
|
2025-07-17 17:44:18 +03:00 |
|
|
ce7c4bfb52
|
Improve error raporting futher significantly
|
2025-07-17 17:15:57 +03:00 |
|
|
f0e47a5d57
|
Attempt to significantly improve error-raporting
|
2025-07-17 16:47:10 +03:00 |
|
|
64e34ecf13
|
Add module_id for modules and metadata
|
2025-07-17 14:56:41 +03:00 |
|
|
e2dc1a3f85
|
Fix some warnings
|
2025-07-17 14:31:40 +03:00 |
|
|
c07e488f48
|
Update state.load a bit to make a better default for it
|
2025-07-17 12:36:17 +03:00 |
|
|
8ffb3baa8d
|
Add Any-mutability for StackValues
|
2025-07-17 00:55:11 +03:00 |
|
|
8abee593f0
|
Fix value transfer in structs and arrays
|
2025-07-17 00:33:23 +03:00 |
|
|
9a4f0dc5d8
|
Allow for cloning inner values
|
2025-07-17 00:05:37 +03:00 |
|
|
965ad5797f
|
Implement rudamentary borrow
|
2025-07-16 23:49:28 +03:00 |
|
|
e4ce897f94
|
Fix expression-indexing
|
2025-07-16 23:29:15 +03:00 |
|
|
d2cf97af66
|
Move should_load to separate State
|
2025-07-16 23:22:06 +03:00 |
|
|
d034754202
|
Possibly fix array_structs
|
2025-07-16 23:09:36 +03:00 |
|
|
c41aab33a9
|
Add optional data to PassState Scope
|
2025-07-16 22:46:52 +03:00 |
|
|
c19384d77b
|
Refactor a bit
|
2025-07-16 22:38:19 +03:00 |
|
|
3870b421a9
|
Refactor indexing/accessing a bit, no mutability
|
2025-07-16 22:04:11 +03:00 |
|
|
79c98a18f7
|
Fix some warnings, remove unused code
|
2025-07-16 21:14:07 +03:00 |
|
|
1eb3e8c095
|
Refactor IndexedVariableReference being a bit smarter
|
2025-07-16 21:13:00 +03:00 |
|
|
dbd048c21c
|
Fix struct indexing when setting a field
|
2025-07-16 20:38:21 +03:00 |
|
|
cd31d7e7cd
|
Nearly fix struct mutability
|
2025-07-16 20:27:01 +03:00 |
|
|
017b474f0c
|
Fix StructValueIndex never constructed
|
2025-07-16 19:02:23 +03:00 |
|
|
f2e4b3eff7
|
Do some cleanup
|
2025-07-16 18:57:42 +03:00 |
|
|
2a879b5ef4
|
Implement codegen for structs
|
2025-07-16 17:08:15 +03:00 |
|
|
d1a37058df
|
Fix warnings
|
2025-07-16 16:16:58 +03:00 |
|
|
31185d921e
|
Properly implement structs in lib
|
2025-07-16 16:11:45 +03:00 |
|
|
97fc468d78
|
Update how struct access is displayed
|
2025-07-16 00:19:49 +03:00 |
|
|
77439ee34a
|
Implement typechecking for structs
|
2025-07-16 00:16:53 +03:00 |
|
|
aafab49f82
|
Fix struct access type inference
|
2025-07-15 23:30:32 +03:00 |
|
|
7075b6f73f
|
Update order of prints
|
2025-07-15 23:18:01 +03:00 |
|
|
1d1e574136
|
Implement type inference for structs
|
2025-07-15 23:16:37 +03:00 |
|
|
e13b6349f0
|
Add ScopeTypes to Pass
|
2025-07-15 22:11:38 +03:00 |
|
|
b012a46e91
|
Process Struct ASTs into MIR
|
2025-07-15 22:03:48 +03:00 |
|
|
f139a5ad6c
|
Add MIR support for struct types
|
2025-07-15 21:48:58 +03:00 |
|
|
d9a1e8456d
|
Add struct indexing parsing
|
2025-07-15 21:28:02 +03:00 |
|
|
c83d53ae53
|
Add struct type and expression parsing
|
2025-07-15 21:19:37 +03:00 |
|
|
5fca72a3f9
|
Add lexing support for structs
|
2025-07-15 20:37:41 +03:00 |
|
|
1acaa29a12
|
Fix module scopes being linked
|
2025-07-15 20:09:33 +03:00 |
|
|
6788ef1690
|
Use AvailableExternally-linkage for externs for imports
|
2025-07-15 20:01:46 +03:00 |
|
|
6f8c02ac04
|
Add compilation time to cli
|
2025-07-15 19:45:03 +03:00 |
|
|
19c883ea33
|
Add e2e tests
|
2025-07-15 02:55:26 +03:00 |
|
|
28d632d51c
|
Add Makefile by @neon, fix array typechecking during typeinference
|
2025-07-15 01:17:00 +03:00 |
|
|
bcad9b57fe
|
Make the compiler produce .o/.asm/.ll according to input file name
|
2025-07-15 00:25:17 +03:00 |
|
|
5b5ec48b8d
|
Put all debug prints behind debug-assertions
|
2025-07-14 23:43:03 +03:00 |
|
|
0e5f12e0e2
|
Update README
|
2025-07-14 22:57:33 +03:00 |
|
|
587aa1d7f2
|
Fix warnings
|
2025-07-14 22:56:31 +03:00 |
|
|
1e759d49c7
|
Fix issue in type-inference pass about function params not registering
|
2025-07-14 22:55:43 +03:00 |
|
|
5acd1624fd
|
Move test to inside-executable, and add tests that test it compiles
|
2025-07-14 22:52:30 +03:00 |
|
|
3f90b46dc8
|
Include stdlib in executable
|
2025-07-14 22:33:04 +03:00 |
|
|
fa4df50a04
|
Fix linking so that non-imported functions don't bother main-module
|
2025-07-14 22:22:55 +03:00 |
|
|
2b47c4efc7
|
Make linking modules together work, fix printing modules
|
2025-07-14 21:10:13 +03:00 |
|
|
848347e4a8
|
Add importer pass, make importer import module properly
|
2025-07-14 20:35:58 +03:00 |
|
|
a71843dfe9
|
Implement import-pass
|
2025-07-14 20:13:30 +03:00 |
|
|
464156b2dc
|
Fix imports in MIR
|
2025-07-14 19:20:38 +03:00 |
|