Commit Graph

263 Commits

Author SHA1 Message Date
469b1e0679 Fixes for opaque external structs 2025-03-16 13:35:58 -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
a3c4e0a82d Rename without_escaping() -> from_text() 2025-03-12 18:12:53 -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
0b2c418048 Bugfix for checking argument validity with promotion (for integer
literals)
2025-03-11 15:14:57 -04:00
e2fd5b49fd Fix some issues with compile error reporting 2025-03-10 16:01:56 -04:00
839abfc294 Be more conservative about disallowing constructors as top-level
initializers
2025-03-10 13:40:58 -04:00
7c68fc9585 Fix some scoping issues with type methods and enum returns 2025-03-10 13:33:31 -04:00
793cda6013 Deprecate old constructor logic 2025-03-10 12:44:23 -04:00
39dd1ca27d Add convert keyword for defining conversions 2025-03-10 12:42:45 -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
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
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
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
acd3f2d39e Add text indexing 2024-12-26 17:31:33 -05:00
df1b36cc27 Fix issue with cross promotion for tables with default values 2024-12-22 16:37:09 -05:00
325b367a13 Support logical binary operators on optionals (promote to booleans) 2024-12-21 15:13:26 -05:00
b0faa5adc2 Add Text:from()/to() and Array:slice() for symmetry 2024-12-19 13:50:35 -05:00
c6c7cc7272 Revert "Deprecate "&" for stack references"
This reverts commit 41c0ea851a.
2024-12-18 14:44:37 -05:00
37f3e91f6c Rename "NONE" to "none" 2024-12-07 16:04:25 -05:00
3a5815d4bd Improvements and fixes for assigning to table keys 2024-12-06 15:18:25 -05:00
5e0f76d17f Fix edge case with nested optional 2024-12-01 13:42:08 -05:00
40c33987fa Bring back table[key] syntax 2024-11-30 15:50:54 -05:00
357c9faa40 Fix for update assignments 2024-11-30 15:33:54 -05:00
e38ecde989 Explicitly forbid nested optional types 2024-11-30 14:59:28 -05:00
e2fa11b7fe Rename :serialize() -> :serialized() 2024-11-29 19:39:17 -05:00
f66f8ad711 Add serialization and deserialization 2024-11-29 18:09:12 -05:00
a38161179b Cleaner None-handling 2024-11-24 16:49:26 -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
0e10313d64 Switch NaN to be identical to the null value 2024-11-24 16:13:23 -05:00
f868d02b08 Add NULL as a syntax for null values. 2024-11-21 13:00:53 -05:00
4231789b71 Rename datetime -> moment 2024-11-17 14:49:03 -05:00
a4d11f51ff Fixes for 'if' blocks with nested 'else if' that declare variables 2024-11-12 00:04:56 -05:00
7a4f2e73ad Rename from_text() to parse() 2024-11-09 15:11:11 -05:00
5d35f28633 Improve reductions so they work better nested and also have bespoke code
optimized for min/max and argmin/argmax.
2024-11-08 14:10:19 -05:00
bd3df66165 Fix up some stuff with boolean operators and reductions 2024-11-07 13:27:09 -05:00
b8d7eabc02 Deprecate bit-width integer/num literals in favor of using type
constructors
2024-11-05 15:18:32 -05:00
2fa26e6af3 Be much more permissive about using integer literals for fixed-size ints
or nums or bytes
2024-11-04 15:24:10 -05:00
b69d14b894 Add some missing functionality for Bytes 2024-11-04 01:12:37 -05:00
3743913ce2 Add unsigned integer shifts 2024-11-03 15:48:13 -05:00