Commit Graph

201 Commits

Author SHA1 Message Date
8f346b48aa Fix up some compiler flags around floating point numbers so they work
better with -Ofast and have more standardized behavior
2024-10-03 14:19:23 -04:00
ec0606091b Add datetime literal and tests 2024-09-30 13:55:55 -04:00
076f87361d Support using DateTime() as a constructor 2024-09-29 20:19:46 -04:00
ca93e6f3cb Simplify code by making name := use ... a Use AST instead of a Declare 2024-09-27 14:56:24 -04:00
ed8b8901c0 Add '$' prefix on all user code 2024-09-24 14:54:22 -04:00
800e386105 Rename from_unsafe_text to without_escaping 2024-09-24 13:26:49 -04:00
0609a26f31 Fix type promotion for :divided_by() and :scaled_by() metamethods 2024-09-24 13:17:44 -04:00
62745cda95 Use original folder names more 2024-09-22 15:07:44 -04:00
7f5af625e5 Support useing .c files and .S files (assembly) 2024-09-18 15:39:22 -04:00
7e0b1a3214 Deprecate linker directives 2024-09-18 00:43:13 -04:00
fead0cad82 Remove dead code 2024-09-18 00:30:55 -04:00
ec88848f6b Support explicit discards better by allowing multiple declared "_" vars 2024-09-18 00:30:05 -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
de49bc5bb3 Deprecate :or_else()/:or_fail()/:or_exit() in favor of the or operator 2024-09-16 16:06:19 -04:00
821bde156c Support (optional or skip) 2024-09-16 15:48:06 -04:00
6b5a9d65e3 Overhaul of how libraries are installed 2024-09-15 21:18:42 -04:00
835eb7e896 Add optional:or_exit(...) 2024-09-15 16:42:42 -04:00
fb37b0ee42 Fix up if var := ...: in ternary expressions and optional checking
logic
2024-09-15 16:29:45 -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
d094049f81 Fix bug in logic for detecting constant strings 2024-09-13 02:02:30 -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
327d466b95 Table:get() now uses optional values instead of default or failure modes 2024-09-12 00:55:43 -04:00
fa7e52787f Add postfix ! operator for optionals 2024-09-12 00:13:53 -04:00
c034175ae1 Add optional:or_else(fallback) and optional:or_fail(message) 2024-09-11 23:17:03 -04:00
3443edf760 Use optionals for iterators 2024-09-11 22:28:43 -04:00
f7ff82913f Fix recursive structs with optionals 2024-09-11 15:20:33 -04:00
db0d5a1c20 Change *:from_text() methods to return optional values and set up CLI
parsing to use that approach
2024-09-11 14:53:48 -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
23209a0aab Use optional ints in the array find()/first() API 2024-09-11 01:39:19 -04:00
7126755275 Add optional types 2024-09-11 01:31:31 -04:00
f86cc6549f Bugfixes 2024-09-08 19:33:49 -04:00
aeed1992e9 Fix nearly every GCC warning and add __attribute__((pure/const)) where
appropriate
2024-09-08 17:17:15 -04:00
11fa4f548c Support 'when' statements as expressions 2024-09-06 14:15:55 -04:00
7239ec4083 Bugfixes for lambdas that have a trailing abort statement (and print
statements aren't those)
2024-09-06 12:33:28 -04:00
c075deeab4 Actual fix for incref issue 2024-09-06 04:14:50 -04:00
391c1b6bde Rename table_t -> Table_t 2024-09-05 14:57:31 -04:00
fa5ca582ff Clean up some imports 2024-09-05 02:37:45 -04:00
d1b2e9f598 Disallow 'use' statements that aren't top level 2024-09-04 13:48:26 -04:00
29a87ff325 Support literal Text("blah") for text that is constant ASCII strings 2024-09-03 14:48:54 -04:00
6d7a359f8f Bugfix some text replacement things 2024-09-02 19:49:52 -04:00
61e482f6f3 Initial WIP first past 2024-09-02 18:47:39 -04:00
dceb925573 Bugfix for parsing ints 2024-08-23 11:38:54 -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
2055439be4 Variables can no longer hold function pointers, only closure_t's. This
makes error reporting easier and prevents issues where some functions
could be assigned, but not others. Also change outputs so Void returns
don't show up when displaying types, now just: `func()`
2024-08-21 00:49:22 -04:00
3c4f477b84 Bugfix some copy-on-write cases for when pointers are automatically
derefenced for method calls
2024-08-20 16:20:41 -04:00
3ce239760e Remove TODO 2024-08-19 19:17:01 -04:00
934b843b1c Add .text_content as a field on DSLs instead of a method 2024-08-19 14:29:58 -04:00