Commit Graph

296 Commits

Author SHA1 Message Date
671f81137e Make Num32/Num64 literals explicitly typed to aid in macros using
__typeof
2024-08-10 16:03:00 -04:00
8d3d591312 Add Sets to the language 2024-08-10 15:15:38 -04:00
f78cd6357a Change table removal function to use values instead of references 2024-08-08 13:20:38 -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
7300049867 Switch to TABLE_INCREF 2024-08-04 17:31:33 -04:00
7fd74553f8 More refcount fixes 2024-08-04 17:27:43 -04:00
d7e3d399d6 Fix up some edge cases with refcounting 2024-08-04 17:25:54 -04:00
43501f7bec Minor fix for array refcounting 2024-08-04 17:23:42 -04:00
ff4ea60daf Tweaks to array implementation, including changing how the bits are
allocated, making more explicit checks for refcounts and max values,
optimizations for certain methods, and adding compile-time errors for
arrays that hold items that are too large.
2024-08-04 14:22:58 -04:00
adccc56880 Switch around some of the logic for array:random() and array:shuffle()
to use Int$random() and return values
2024-08-04 13:03:55 -04:00
09204f4ce8 Revert "Fix array:random() to return a random item using correct RNG logic,"
This reverts commit 68b34cf00b.
2024-08-03 17:44:22 -04:00
8357d02992 Make default table removal behavior deterministic, but have caches
explicitly use random eviction.
2024-08-03 17:42:45 -04:00
68b34cf00b Fix array:random() to return a random item using correct RNG logic,
rather than a reference.
2024-08-03 17:33:18 -04:00
99b00530ce Change structs/enums so they allow for field/tag names that are C
keywords
2024-08-03 16:39:04 -04:00
17be975d3a Fix integer random functions so they correctly handle all representable
ranges
2024-08-03 16:23:28 -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
16c2e3f590 Incrementally moving towards passing array entry sizes explicitly 2024-08-03 15:06:59 -04:00
2b9bec18a4 Fix for stride overflows in arrays 2024-08-03 14:40:56 -04:00
87785555ec Fix for order of operations issues with enum and function typedef code 2024-07-23 19:46:42 -04:00
7911df8294 Make sure array slicing doesn't require a pointer and disallow automatic
stackifying of values
2024-07-22 13:54:03 -04:00
5b0a841db6 Fix edge case with iterating over array:from(-999) 2024-07-20 17:20:50 -04:00
279cd23143 Micro optimization for iterating over array ranges 2024-07-20 17:13:15 -04:00
fb95bbb1d4 Deprecate array:pairs() and switch iterator functions to use enums 2024-07-20 16:45:13 -04:00
d3f14cf53c Support nested lambda closures 2024-07-14 14:13:23 -04:00
4e6d8162bf Fix issue with bindings inside closures 2024-07-14 13:22:42 -04:00
9fec3a6adb Fix for reductions over iterators like (+) range(5, 10) 2024-07-13 19:58:21 -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
2e2f68e582 Allow lambdas to have a return statement as the last statement 2024-07-13 18:26:41 -04:00
f64aaf5960 Add array:pairs() 2024-07-13 18:05:14 -04:00
445f79cb70 Add iterator functions 2024-07-13 17:17:58 -04:00
3db57b4d2e Bugfix for unchecked array access 2024-07-10 13:47:15 -04:00
068d0e8563 Add array:to() to split out functionality of array:from() 2024-07-10 13:42:58 -04:00
10e86153a2 Replace array:slice() with array:from(first, last) and array:by(step) 2024-07-10 13:34:45 -04:00
f4dee58f03 Check for functions that don't return when they need to, as well as a
fix for 'when' statement typing
2024-07-04 18:27:08 -04:00
2c89f3385f Fixes for defer statements in lambdas 2024-07-04 18:09:33 -04:00
6a105fbd80 Add 'defer' 2024-07-04 18:00:01 -04:00
dfb7bb1984 !! printing should quote strings by default 2024-07-04 16:25:06 -04:00
9d9fe12987 Add !! statement for printing text 2024-07-04 16:23:05 -04:00
d073c10137 Fix issue with text interpolation for Langs 2024-07-04 16:22:52 -04:00
22063462a9 Add __length and __negative metamethods 2024-07-04 13:37:23 -04:00
0c15c74352 Clean up some type checking with math operations and metamethods 2024-07-01 11:43:18 -04:00
855a7d2ec1 Show test output for update assignments 2024-07-01 11:31:50 -04:00
6290eb2719 Improvements for update assignments that use metamethods 2024-07-01 11:29:28 -04:00
c1fbbb7de8 Support math metamethods for update assignments 2024-07-01 11:20:41 -04:00
f391c929e5 Add math metamethods (__add, __sub, etc.) 2024-07-01 11:12:00 -04:00
1621968fc8 Fix issue with bitfields 2024-06-17 17:31:50 -04:00
eb2a9027b0 Fix issue with 'when' statements 2024-06-17 17:23:39 -04:00
28de9aeb84 Deprecate '-l' as a command line flag but instead support 'use -lblah' 2024-06-16 18:40:34 -04:00
32e82fdbe3 Remove some dead code and support -l as a tomo flag 2024-06-16 18:09:54 -04:00
9f8be0c502 Support library name as a separate environment field from namespace 2024-06-16 16:08:35 -04:00