Jakub Doka
18e8a831ab
adding target @target directive
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2025-01-01 22:56:40 +01:00
Jakub Doka
d1bc70892b
fixing release build
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2025-01-01 21:32:14 +01:00
Jakub Doka
8aee4f2890
Properly deduplicating imported functions
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2025-01-01 21:24:03 +01:00
Jakub Doka
da5bd3d36a
making the invalid escape sequence fully explain the sintax
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2025-01-01 19:49:19 +01:00
Jakub Doka
6f94ae2b2a
reducing amound ot needless diagnostics caused transitively
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2025-01-01 19:20:56 +01:00
Jakub Doka
2c53f9ece9
making the generic function names distinct
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2025-01-01 19:09:31 +01:00
Jakub Doka
786e3e6bfd
forgot about pointers
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-30 14:57:03 +01:00
Jakub Doka
95e1e8bcab
fixing missing features in the cranelift backend
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-30 14:46:59 +01:00
Jakub Doka
58479deca1
polishing the compiler cli (cheating with clap)
...
also adding the raylib example
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-30 13:26:38 +01:00
Jakub Doka
d25540dd52
handled all the abi passing, now just test it
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-29 17:37:38 +01:00
Jakub Doka
68186ec0ce
supporting translation of all nodes
...
TODO: handle ABI argument passing
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-29 16:37:24 +01:00
Jakub Doka
ee67ebb017
adding cranelift backend
...
also splitting hbc binary into a separate crate to avoid dependency
cycle, the backand is thus far capable of compiling the simplest program
that returns an custom status code
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-29 13:30:29 +01:00
Jakub Doka
08fc9d6ab6
gc
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-25 21:55:26 +01:00
Jakub Doka
abcb3434f8
removing unwraps that can cause panics when typechecking
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-25 21:54:32 +01:00
Jakub Doka
4ebf1c7996
fixing outdated error message
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-25 21:34:58 +01:00
Jakub Doka
3f11e19a91
properly handling generic method calls
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-25 21:29:30 +01:00
Jakub Doka
51bfbdf7ae
tests are now autogenerated from the readme, this makes test names DRY
...
I want to reduce friction of adding new tests as much as possible
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-25 21:17:03 +01:00
Jakub Doka
5c8f7c9c79
i am not useless after all, the invalid store elimination removed
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-25 20:27:16 +01:00
Jakub Doka
3491814b4f
i am tired
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-22 21:50:03 +01:00
Jakub Doka
ee434e6135
more forgotten stuff
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-22 21:43:53 +01:00
Jakub Doka
9afe191bca
fixed a missing feature
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-22 21:41:28 +01:00
Jakub Doka
8ededb8612
adding standard instruction logging utility
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-22 21:33:15 +01:00
Jakub Doka
9c4b84ce33
fixing the precedence regarding slice ranges
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-22 20:43:49 +01:00
Jakub Doka
5909837015
making sure sliced pointer is loaded
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-22 18:53:52 +01:00
Jakub Doka
9f67b22aa2
maybe now the bug is fixed
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-22 17:01:36 +01:00
Jakub Doka
939d0807fb
fixing slice slicing
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-22 16:18:44 +01:00
Jakub Doka
888b38ad4c
frgot to transition @nameof to slices
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-21 23:55:02 +01:00
Jakub Doka
5275a7e0fd
adding slices
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-21 23:44:33 +01:00
Jakub Doka
418fd0039e
making the pointered arrays work properly
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-21 17:36:42 +01:00
Jakub Doka
d220823d78
fixing the bug in previous commit
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-21 17:14:33 +01:00
Jakub Doka
af19f4e30d
making the identifiers accessible if they are captured
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-21 14:21:58 +01:00
Jakub Doka
1621d93e86
adding more stuff to the blog
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-20 22:54:46 +01:00
Jakub Doka
4b3b6af70e
adding habdler for tuples with known type
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-20 11:59:21 +01:00
Jakub Doka
f59c0c1092
some syntax changes
...
mainly added the explicit type for declarations
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-20 11:32:18 +01:00
Jakub Doka
8ad58ee6b6
changing the array sintax to be distinc from tuple
...
the arrays can be declared in a more natural way
type of the element can aso be inferred form the first element
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-20 10:17:34 +01:00
Jakub Doka
6e8eb059f6
adding tuples
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-19 23:08:36 +01:00
Jakub Doka
969ea57e3f
optimizing the bitset used in register allocation
...
also fixing an enum bug
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-19 19:43:30 +01:00
Jakub Doka
cfd3eac0a8
making the instruction scheduling smarter
...
the instructions that are only depended by phis are pushed to the end of
the block, which usually saves copy instructions
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-19 11:00:19 +01:00
Jakub Doka
a8aba7e7c2
making the Call node less special
...
return value is now a separate node pinned to the call
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-19 10:48:05 +01:00
Jakub Doka
f05c61a99e
adding @ChildOf directive
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-18 00:06:57 +01:00
Jakub Doka
e769fa8dba
removing error for needless @as temporarly
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 22:29:16 +01:00
Jakub Doka
b3f858f64b
adding @error directive
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 21:35:47 +01:00
Jakub Doka
1584ec7563
adding @Any directive
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 21:11:02 +01:00
Jakub Doka
6085177982
fixed the unreachable functions deleting branches
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 20:53:13 +01:00
Jakub Doka
47014c6164
lifting the restriction for inlining to allow normal functions as well
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 19:32:30 +01:00
Jakub Doka
3702a99d03
fixing another incorrect file reporting
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 19:30:42 +01:00
Jakub Doka
248bdf003a
making the else branch have less priority
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 19:10:56 +01:00
Jakub Doka
d3f3fe98e3
propagating unreachable for functions returning never type
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 19:08:53 +01:00
Jakub Doka
14cf5efaa5
handling comptime known match
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 19:01:01 +01:00
Jakub Doka
95496116b0
making @len work on strings
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 18:30:19 +01:00