Commit Graph

253 Commits

Author SHA1 Message Date
c1fbbb7de8 Support math metamethods for update assignments 2024-07-01 11:20:41 -04:00
f391c929e5 Add math metamethods (__add, __sub, etc.) 2024-07-01 11:12:00 -04:00
1621968fc8 Fix issue with bitfields 2024-06-17 17:31:50 -04:00
eb2a9027b0 Fix issue with 'when' statements 2024-06-17 17:23:39 -04:00
28de9aeb84 Deprecate '-l' as a command line flag but instead support 'use -lblah' 2024-06-16 18:40:34 -04:00
32e82fdbe3 Remove some dead code and support -l as a tomo flag 2024-06-16 18:09:54 -04:00
9f8be0c502 Support library name as a separate environment field from namespace 2024-06-16 16:08:35 -04:00
7a53e10826 Fix issue with type namespaces not getting properly prefixed by library
namespace
2024-06-16 15:12:00 -04:00
81d55cacb7 Do dynamic library symbol prefixing using 'patchelf' 2024-06-13 21:20:50 -04:00
dab2c399f1 Split import/use into separate concepts 2024-06-13 13:17:51 -04:00
5757a5023c Support loading shared libraries 2024-06-13 12:59:19 -04:00
8c7d530080 Split header compilation into a separate function 2024-06-06 16:28:53 -04:00
31c8d0af15 Fix float literals for integer floats 2024-06-06 16:20:36 -04:00
b4dc858794 Change how floats are serialized 2024-06-01 11:25:14 -04:00
9536487df8 Fix "extern" issue for real 2024-05-31 13:55:34 -04:00
010089fceb Change where 'extern' keyword goes in codegen for variable declarations 2024-05-31 13:49:48 -04:00
5badc29496 Top-level inline C code goes in C file, not header 2024-05-28 19:02:00 -04:00
cb634f61f7 Remove unused code 2024-05-27 18:02:40 -04:00
c9889582a7 Fix up some import and -fPIC stuff 2024-05-27 17:45:22 -04:00
f11b46d660 Add file prefix to lambda types 2024-05-27 16:35:15 -04:00
4930c22aca Don't capture modules in closures (they're not real values) 2024-05-27 16:33:51 -04:00
937a559e7f Bugfix for void thunks 2024-05-27 16:33:14 -04:00
670c90cef4 Bugfix for doctest assignments not doing promotion checks 2024-05-24 00:09:39 -04:00
308946e794 Switch optional detection to use 'when .. is @..' instead of 'if .. :=
..'; also fixed a bug with stack memory in doctests
2024-05-24 00:03:46 -04:00
fba2b99b65 Support 'while when' 2024-05-23 12:40:21 -04:00
7a741e65e6 Deprecate enum field access 2024-05-22 13:45:13 -04:00
8c3d1e4066 Fix for matching with enums defined in another file 2024-05-22 13:37:15 -04:00
723f3e141c Temporary fix for issue with stack references leaking memory and
breaking memory safety
2024-05-21 21:55:52 -04:00
7e275af628 Get rid of struct constructor 2024-05-21 20:54:09 -04:00
b1db4fd0f6 Improve codegen for enums and structs (change $tag$Foo$Baz to
Foo$tag$Baz)
2024-05-21 20:14:57 -04:00
b0d1daa0f3 Fix up some binding order issues and also some inline C issues with
heap_pop()
2024-05-19 01:46:30 -04:00
e4e3186959 Minor fixes 2024-05-18 20:53:03 -04:00
1df26851d7 Add syntax for "inline C(...)" 2024-05-18 16:31:34 -04:00
a1d18fd422 Add C string type 2024-05-18 14:38:41 -04:00
c1e4730f35 Fix for bare enums in multi-assigns 2024-05-15 13:42:45 -04:00
214a8e18aa Rename func 2024-05-15 13:40:27 -04:00
8809435867 Bugfix for assignment not properly promoting (and checking) values, plus
adding support for unqualified enums in assignment
2024-05-15 13:39:35 -04:00
af0c285d96 Allow specifying function arg enums without qualifiers 2024-05-15 13:24:43 -04:00
ae9cb9e7e3 Allow returning enums without qualifiers 2024-05-15 13:19:00 -04:00
1924f75647 Support corecursive structs 2024-05-14 13:30:46 -04:00
8bafe71f17 Add nested indentation for doctests that recursively invoke other
doctests while evaluating
2024-05-14 00:30:57 -04:00
02fe49a764 Deprecate interfaces (RIP) 2024-05-12 20:13:19 -04:00
934fd8a173 Revert "Deprecate stack macro"
This reverts commit 00ec635718.
2024-05-12 20:12:00 -04:00
00ec635718 Deprecate stack macro 2024-05-12 19:47:34 -04:00
79556883b4 Bugfixes 2024-05-12 19:45:49 -04:00
e171d4a98c Fix up some promotion logic for closures 2024-05-12 19:21:44 -04:00
3c50c182a8 Typecheck method promotion for interfaces 2024-05-12 16:09:24 -04:00
3481042259 Simplify interfaces by requiring all functions are pointer methods 2024-05-12 15:56:24 -04:00
f6f89265b7 Guard against calling interfaces with values 2024-05-12 15:48:52 -04:00
4dbe046866 Add interface fields 2024-05-12 15:18:46 -04:00