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
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
dab2c399f1
Split import/use into separate concepts
2024-06-13 13:17:51 -04:00