Commit Graph

229 Commits

Author SHA1 Message Date
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
d143c72b22 WIP, but functional interfaces 2024-05-12 13:50:06 -04:00
c2daf6a928 Clean up 'when' syntax 2024-05-01 13:53:51 -04:00
2e27b88c1b Improved syntax for optionals 2024-04-30 13:18:47 -04:00
061ec4fd8f Support naked 'use' statements 2024-04-24 13:53:37 -04:00
6308325252 Add constructor/casting for ints and nums 2024-04-23 13:12:49 -04:00
3c64616ac1 Bugfix for doctest assignments that promote 2024-04-23 12:54:56 -04:00
fbb25decf0 Support struct literals as constants 2024-04-23 12:50:30 -04:00
3590bf3407 Better imports for types 2024-04-21 14:58:33 -04:00
3f10460a6e Support loading imports as top-level statements 2024-04-21 11:22:11 -04:00
b7881a480f Bugfix for enum num types 2024-04-20 15:18:20 -04:00
a4ffdb1798 Fix no-argument main funcs 2024-04-20 15:00:31 -04:00
ff3e1c1328 Move arg parsing to inline logic in main() function 2024-04-20 14:55:27 -04:00
3b0dce04a0 Add heapify(), heap_push(), and heap_pop() 2024-04-19 13:29:04 -04:00
85a7f9e1c1 Fix arg parsing 2024-04-17 13:52:07 -04:00
e98f6854f5 Use leading underscore for file-local variables and functions instead of
"private" keyword
2024-04-17 13:44:01 -04:00
35339e2aa0 Fix globals issue 2024-04-16 14:02:39 -04:00
f290edbad9 Fix globals 2024-04-16 13:56:11 -04:00
369c601a56 Invert escaping so user symbols get prepended with "$" and builtin
symbols don't
2024-04-16 13:50:07 -04:00
c8e2f0faad Rudimentary stack traces 2024-04-13 15:20:42 -04:00
fab547ebc8 Fix issue with empty command line args 2024-04-13 15:03:37 -04:00
48d272c3fa Support Text arrays as main function arguments 2024-04-12 13:43:23 -04:00
6c01eef851 Introducing the main() function 2024-04-12 13:09:31 -04:00
4f514378ac Fix corecursive functions and global variables 2024-04-10 11:49:43 -04:00
6eb680f1b7 Add array:sample(n, weights) 2024-04-02 23:40:18 -04:00