Commit Graph

76 Commits

Author SHA1 Message Date
9ebb039a81 Fix up some GCC compiler flag options for LTO and inlining 2024-10-29 23:14:31 -04:00
41c0ea851a Deprecate "&" for stack references 2024-10-27 20:35:12 -04:00
074cf22ad4 Change function syntax from func(args)->ret to func(args -> ret) 2024-10-09 13:26:28 -04:00
6b9055db7c Deprecate readonly pointers for now 2024-10-04 13:21:56 -04:00
ec0606091b Add datetime literal and tests 2024-09-30 13:55:55 -04:00
ca93e6f3cb Simplify code by making name := use ... a Use AST instead of a Declare 2024-09-27 14:56:24 -04:00
7f5af625e5 Support useing .c files and .S files (assembly) 2024-09-18 15:39:22 -04:00
976e73f4a2 Move Match() to the right place 2024-09-18 01:11:50 -04:00
c00c6d3e02 Move List reversal to the right place 2024-09-18 01:10:34 -04:00
7e0b1a3214 Deprecate linker directives 2024-09-18 00:43:13 -04:00
5a5fc9c031 Remove more dead code 2024-09-18 00:32:31 -04:00
aaa51fc734 Perform topological ordering when compiling typedefs so users don't need
to think about ordering their definitions.
2024-09-17 15:17:13 -04:00
e422079fcc Add a Byte datatype 2024-09-15 15:33:47 -04:00
c455e7b67d Rename builtins/ -> stdlib/ 2024-09-13 20:18:08 -04:00
34c562e88e Move cord helper functions into their own file 2024-09-13 14:23:24 -04:00
46a2aa2ffc Fix up comprehensions so set comprehensions work and everything is a bit
more clean
2024-09-12 14:27:13 -04:00
fa7e52787f Add postfix ! operator for optionals 2024-09-12 00:13:53 -04:00
b0b23acf88 Rename "Nil"->"Null" for consistency 2024-09-11 13:55:41 -04:00
210179ee67 Optional enums (deprecated custom tag values) 2024-09-11 12:29:48 -04:00
7126755275 Add optional types 2024-09-11 01:31:31 -04:00
aeed1992e9 Fix nearly every GCC warning and add __attribute__((pure/const)) where
appropriate
2024-09-08 17:17:15 -04:00
d1b2e9f598 Disallow 'use' statements that aren't top level 2024-09-04 13:48:26 -04:00
ad51b208b4 Overhaul of import syntax. Now everything uses use: use foo, `use
./foo.tm`, `use <foo.h>`, `use libfoo.so`
2024-08-22 14:02:48 -04:00
967b649da2 Deprecate # operator in favor of .length and fix up some issues 2024-08-18 20:39:57 -04:00
752ab8212c Split BigIntType out of IntType and switch to using enums for the size
of ints/nums
2024-08-18 11:49:51 -04:00
d08f795794 Partially working first draft of bigints 2024-08-13 01:30:25 -04:00
d2f4d07585 Support channels with maximum size 2024-08-11 15:04:22 -04:00
2ecb5fe885 Add channels and threads 2024-08-11 14:47:34 -04:00
b37bd70b60 For tables, deprecate support for square bracket indexing and .default
values, replacing them with a `:bump()` function for tables with numeric
values. This means that counters can be implemented easily without the
need to mask complexity.
2024-08-10 16:03:41 -04:00
8d3d591312 Add Sets to the language 2024-08-10 15:15:38 -04:00
b2e752ee32 Replace heap_str with GC_strdup 2024-07-26 13:30:24 -04:00
445f79cb70 Add iterator functions 2024-07-13 17:17:58 -04:00
6a105fbd80 Add 'defer' 2024-07-04 18:00:01 -04:00
9d9fe12987 Add !! statement for printing text 2024-07-04 16:23:05 -04:00
f391c929e5 Add math metamethods (__add, __sub, etc.) 2024-07-01 11:12:00 -04:00
dab2c399f1 Split import/use into separate concepts 2024-06-13 13:17:51 -04:00
5d682df66c Remove unused fields on AST 2024-06-13 13:03:13 -04:00
8c7d530080 Split header compilation into a separate function 2024-06-06 16:28:53 -04:00
1df26851d7 Add syntax for "inline C(...)" 2024-05-18 16:31:34 -04:00
02fe49a764 Deprecate interfaces (RIP) 2024-05-12 20:13:19 -04:00
3481042259 Simplify interfaces by requiring all functions are pointer methods 2024-05-12 15:56:24 -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
fbb25decf0 Support struct literals as constants 2024-04-23 12:50:30 -04:00
e98f6854f5 Use leading underscore for file-local variables and functions instead of
"private" keyword
2024-04-17 13:44:01 -04:00
4f514378ac Fix corecursive functions and global variables 2024-04-10 11:49:43 -04:00
c73e96ff91 Add comparison operator <> and array method to sort by a custom
comparison function
2024-04-02 13:08:06 -04:00
135e23094c Improve codegen for table/array iteration by inlining the iteration
macros
2024-03-26 14:02:48 -04:00
1c9d47c29f Print ASTs as XML instead of janky custom syntax 2024-03-24 19:04:57 -04:00