Commit Graph

60 Commits

Author SHA1 Message Date
dd4ff777f4 Rename/rework global env functions 2025-03-18 01:48:35 -04:00
f51acef40e Overhaul of Path so it uses root and array of components instead of
stringly typed
2025-03-15 14:22:11 -04:00
7c68fc9585 Fix some scoping issues with type methods and enum returns 2025-03-10 13:33:31 -04:00
39dd1ca27d Add convert keyword for defining conversions 2025-03-10 12:42:45 -04:00
fab0083129 Support post-hoc definitions of escaping rules for DSLs 2025-03-01 16:04:14 -05:00
91f66d80bb Support arbitrary argument constructors 2025-02-20 17:13:50 -05:00
058a028aef Switch to langs using constructors 2025-02-19 18:50:50 -05:00
b89291957a Restructure compile_file() so it moves a bit more towards less usage of
side effects
2025-02-19 16:30:19 -05:00
5be9559046 Deprecate Range datatype in favor of using iterator methods 2025-02-13 15:03:22 -05:00
f4d0f7f6d9 Reorder code corresponding to how it outputs 2025-02-10 14:24:14 -05:00
66eca49d18 Tweak set_binding() API 2025-02-10 13:13:45 -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
898bee1581 Introduce a Match struct to represent pattern matching results, which
improves the usability of a lot of the APIs. Also bugfix some issues
with ranges.
2024-11-09 16:27:54 -05:00
fc9a6f1416 Add RNGs to the language 2024-11-03 22:37:48 -05:00
ed8b8901c0 Add '$' prefix on all user code 2024-09-24 14:54:22 -04:00
708e7b9070 Remove dead code 2024-09-18 01:02:13 -04:00
c455e7b67d Rename builtins/ -> stdlib/ 2024-09-13 20:18:08 -04:00
4380039acc Rename builtins to use plurals when appropriate 2024-09-13 20:08:20 -04:00
da9cc93c46 Make functions print with func name(...)->... [file:line] info 2024-09-12 23:41:32 -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
a4fff5cb49 Bugfix for default arguments not supporting enclosing types 2024-09-08 21:55:15 -04:00
aeed1992e9 Fix nearly every GCC warning and add __attribute__((pure/const)) where
appropriate
2024-09-08 17:17:15 -04:00
391c1b6bde Rename table_t -> Table_t 2024-09-05 14:57:31 -04:00
5feecff9d9 Deprecate Where and change channel API to use a boolean front value 2024-09-03 03:53:36 -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
4e732a718d Restructure things so that DSL constructors do proper escaping 2024-08-19 13:23:02 -04:00
8363d53bd2 Update channel API to take a Where parameter 2024-08-18 23:59:13 -04:00
cbe117a6d3 Allow for top-level or namespace-level variables that are initialized
with non-constant values by the use of an initializer function and
runtime checks for whether the variable is initialized.
2024-08-17 14:41:31 -04:00
2ecb5fe885 Add channels and threads 2024-08-11 14:47:34 -04:00
c045c54309 Add a Range datatype with creation methods like 5:to(10) and
modification methods like `range:by(2)` or `range:reversed()`
2024-08-05 14:40:28 -04:00
d3f14cf53c Support nested lambda closures 2024-07-14 14:13:23 -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
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
f834073264 Fix issue with importing modules 2024-06-06 16:36:49 -04:00
8c7d530080 Split header compilation into a separate function 2024-06-06 16:28:53 -04:00
6c01eef851 Introducing the main() function 2024-04-12 13:09:31 -04:00
838c9963fc Adding a REPL 2024-03-30 12:14:24 -04:00
04d9adc813 Switch naming convention to use '$' in symbols more 2024-03-29 12:54:31 -04:00
f21fc700bb Handle type namespaces in other modules 2024-03-22 01:52:00 -04:00
4592e95fa9 Pull namespaces from the type binding 2024-03-21 13:33:10 -04:00
adbb07fdc2 Module imports 2024-03-19 14:22:03 -04:00
ced54c2919 More file comments 2024-03-18 12:49:38 -04:00
655b677895 Preface symbols with file prefix 2024-03-17 20:40:40 -04:00
a0faef7102 Support nested comprehensions 2024-03-17 15:26:25 -04:00
46decc9232 Skip/stop for 'while' loops 2024-03-15 13:45:25 -04:00
5cdaf3e3fa Fancy skip/stop implementation 2024-03-15 13:35:30 -04:00