Commit Graph

49 Commits

Author SHA1 Message Date
147e0f0269 Overhaul of constructors, making it more consistent and correct. Also
changed T(), T, T_t, T_s type names to T(), T$$info, T$$type, T$$struct
for unambiguity
2025-03-05 18:20:54 -05:00
be87d8169d Convert the logic for finding closed variables to a more pure functional
style with fewer side effects
2025-02-09 13:57:54 -05:00
2ff7c1aa71 Move REPL code out of binding_t struct 2025-02-06 14:18:52 -05:00
c6c7cc7272 Revert "Deprecate "&" for stack references"
This reverts commit 41c0ea851a.
2024-12-18 14:44:37 -05:00
4b5e4cd1f2 Change how types handle metamethods 2024-11-29 12:55:14 -05:00
d4b10514fb Clean up some more null->none renames and fix the documentation. Also
change the literal syntax to `NONE:T` instead of `!T`
2024-11-24 16:36:27 -05:00
7a4f2e73ad Rename from_text() to parse() 2024-11-09 15:11:11 -05:00
b8d7eabc02 Deprecate bit-width integer/num literals in favor of using type
constructors
2024-11-05 15:18:32 -05:00
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
839c1983a0 Reduce padding needed for optional types and clean up some redundant
type padding
2024-10-08 21:10:36 -04:00
6b9055db7c Deprecate readonly pointers for now 2024-10-04 13:21:56 -04:00
1a6ce0047b Rename TypeInfo -> TypeInfo_t and fix up some typeinfo code 2024-09-30 14:39:30 -04:00
c455e7b67d Rename builtins/ -> stdlib/ 2024-09-13 20:18:08 -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
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
04c8fb0362 Replace $Type with Type$info for builtin TypeInfos 2024-09-05 15:31:54 -04:00
391c1b6bde Rename table_t -> Table_t 2024-09-05 14:57:31 -04:00
abe45a3c25 Rename array_t -> Array_t 2024-09-05 14:56:37 -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
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
9c2d7c437d Fix up type conversions with ints and nums 2024-08-14 14:57:01 -04:00
32a6a5ce37 Support more binops 2024-08-13 14:29:51 -04:00
b608d7fbbb Improvements to repl 2024-08-13 14:28:02 -04:00
d08f795794 Partially working first draft of bigints 2024-08-13 01:30:25 -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
167634eaa4 Change array API to take a padded item size instead of a type info in
most cases
2024-08-03 15:33:50 -04:00
b2e752ee32 Replace heap_str with GC_strdup 2024-07-26 13:30:24 -04:00
39576466a7 Add ReturnType(ret) so we can more accurately track return values for
`if` statements
2024-07-13 18:43:50 -04:00
a86dc05d36 Cache AST parsings so we don't have to re-parse files 2024-07-05 15:51:23 -04:00
9f8be0c502 Support library name as a separate environment field from namespace 2024-06-16 16:08:35 -04:00
1df26851d7 Add syntax for "inline C(...)" 2024-05-18 16:31:34 -04:00
fe28816b50 Fix REPL 2024-05-14 14:25:27 -04:00
2e27b88c1b Improved syntax for optionals 2024-04-30 13:18:47 -04:00
c73e96ff91 Add comparison operator <> and array method to sort by a custom
comparison function
2024-04-02 13:08:06 -04:00
b6534ce347 Implement REPL 'while' 2024-03-31 13:13:08 -04:00
56a44684fa More errors 2024-03-30 13:43:24 -04:00
f1d4f928e4 Use generic cord/compare functions 2024-03-30 13:42:24 -04:00
0ea5fe933a Tweak repl multi-line parsing 2024-03-30 13:35:11 -04:00
e5880b4616 REPL 'if' 2024-03-30 13:24:39 -04:00
42084fda6f Fix indexing errors 2024-03-30 13:18:19 -04:00
7048c827c0 More functionality for repl 2024-03-30 13:16:52 -04:00
1ef1b15fd3 More repl functionality/fixes 2024-03-30 12:47:20 -04:00
4192e123e6 Bugfix for color 2024-03-30 12:17:39 -04:00
838c9963fc Adding a REPL 2024-03-30 12:14:24 -04:00