Commit Graph

604 Commits

Author SHA1 Message Date
f51acef40e Overhaul of Path so it uses root and array of components instead of
stringly typed
2025-03-15 14:22:11 -04:00
1f6e586b2a Support external structs with namespaced methods (also C-strings are now
`const char*` instead of `char*`)
2025-03-11 17:49:04 -04:00
fb2d7b5379 Add extern structs 2025-03-11 17:03:03 -04:00
888a977132 Modify compile_type_info() so it no longer needs an env_t 2025-03-11 15:54:06 -04:00
e7035e6a86 Clean up doctest code a bit 2025-03-11 14:23:41 -04:00
26476a0b41 Remove unnecessary call to initialize() 2025-03-11 13:46:46 -04:00
d0efc4ae5a For enums, switch enum.tag and enum.$Foo so it's now enum.$tag and
`enum.Foo`
2025-03-11 13:32:11 -04:00
294b712e6d Don't use '$' prefix for field names 2025-03-11 13:18:30 -04:00
bdc0b89265 Bugfix for header prefixes 2025-03-11 00:49:24 -04:00
8885d1fdcb Bugfix for constructors not getting appropriate header 2025-03-11 00:40:08 -04:00
7c68fc9585 Fix some scoping issues with type methods and enum returns 2025-03-10 13:33:31 -04:00
eb8b501b95 For langs, do promotion to Text and text interpolation automatically and without adding quoting. 2025-03-10 12:55:01 -04:00
39dd1ca27d Add convert keyword for defining conversions 2025-03-10 12:42:45 -04:00
806e0d0554 Make it a compiler error to have an always-aborting function whose
return type is Void
2025-03-09 18:18:13 -04:00
46f9cebad1 Add _Noreturn hint for Abort functions 2025-03-09 18:11:40 -04:00
94ed28b4d1 Add better typechecking for Abort (and add Abort as a user-reachable
type) and check for unreachable code
2025-03-09 17:52:48 -04:00
73e559fbe4 Support 'when' for literal values with equality checking 2025-03-06 18:37:08 -05:00
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
cb7a20117c Tweak usage so it's a bit more correct for this stuff 2025-03-02 00:49:35 -05:00
5cb66f2ba8 Bugfix for namespaced declarations that initialize and static
definitions
2025-03-01 22:14:32 -05:00
37e96dbda5 Change lang.text_content to lang.text 2025-03-01 16:53:58 -05:00
fab0083129 Support post-hoc definitions of escaping rules for DSLs 2025-03-01 16:04:14 -05:00
90548ebb33 For debugging purposes, show qualified name (Foo.baz()) in function
text
2025-03-01 15:43:24 -05:00
e81b7b998a Fix stringification of function type 2025-02-28 19:30:40 -05:00
a94337bc11 Deprecate autoformatter 2025-02-21 15:19:19 -05:00
7a6abd4f8e Tweak function registration API 2025-02-21 14:59: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
c4479e4bd6 Add Int:onward() iterator 2025-02-13 15:21:00 -05:00
5be9559046 Deprecate Range datatype in favor of using iterator methods 2025-02-13 15:03:22 -05:00
481beaf40e Fix sequencing issue with typedefs for structs/enums 2025-02-10 14:58:40 -05:00
15b9b3fe86 Add file info to headers 2025-02-10 14:13:44 -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
6310f05656 Remove dead code 2025-02-07 20:25:48 -05:00
812b1e4746 Add more source line info 2025-02-04 14:36:41 -05:00
32da3a3226 Add a _ prefix on variables so it's easier to debug in GDB 2025-02-04 14:16:06 -05:00
e06d7180d4 Add in source line information 2025-02-04 14:15:18 -05:00
0d8d109eaf Bugfix for typechecking failure on table indexing, also improved codegen
for updates on tables
2025-01-31 14:36:30 -05:00
b783a218bb Clean up codegen for cached functions (don't publicly define a struct type
for the cache key)
2025-01-30 13:58:49 -05:00
f93dde1449 Overhaul of Text implementation to be more like Cords and have much
better performance for long sequences of repeated concatenation.
2025-01-23 15:33:56 -05:00
b025cf269d Use holding blocks for mutexed data instead of lambdas 2025-01-02 20:29:55 -05:00
be384c0caa Replace threads with generic mutexed datastructures. 2025-01-02 16:24:07 -05:00
8df0cc41c9 Array:heap_pop() now returns an optional value 2024-12-31 15:57:13 -05:00
156d54a73e Add array:pop() 2024-12-31 15:46:53 -05:00
091f43e8ef Bugfix for lvalues that are pointers to tables/arrays 2024-12-26 18:08:30 -05:00
acd3f2d39e Add text indexing 2024-12-26 17:31:33 -05:00
f4b105456a Bugfix for ternary expressions 2024-12-24 14:15:10 -05:00
add1da2a96 Fix for table default values 2024-12-24 13:49:47 -05:00