7472837ee5
Add array:first(predicate:func(x:&T)->Bool)->@%T?
2024-08-18 22:28:04 -04:00
967b649da2
Deprecate #
operator in favor of .length and fix up some issues
2024-08-18 20:39:57 -04:00
f4b04a1b8c
Improved syntax for dollar-string literals
2024-08-18 14:44:15 -04:00
da4d07c665
Fix up some bigint logic issues
2024-08-18 12:47:29 -04:00
752ab8212c
Split BigIntType out of IntType and switch to using enums for the size
...
of ints/nums
2024-08-18 11:49:51 -04:00
de31398fe4
Add table:get_or_null(key) for tables with non-null pointer values,
...
which lets get() keep the non-null return type
2024-08-17 15:01:01 -04:00
2d3c114435
Check for compile-time constant integers that require heap allocations.
2024-08-16 02:29:07 -04:00
6d24438509
More helpful error message for table indexing
2024-08-15 14:52:41 -04:00
688f883e16
Add array:find()
2024-08-15 03:01:04 -04:00
66ae30ac29
Add method for array:remove_item(item) and rename
...
array:remove(index)->array:remove_at(index) to avoid confusion. Also
hook up array:has()
2024-08-15 02:39:35 -04:00
ed1667cb37
Add array:shuffled() and checks for array insertion
2024-08-15 02:17:53 -04:00
eccc4e4721
Add binary search method to arrays
2024-08-15 01:59:42 -04:00
e0223a4c20
Support ^ exponentiation for integers
2024-08-13 16:32:00 -04:00
d08f795794
Partially working first draft of bigints
2024-08-13 01:30:25 -04:00
ea80fefa05
Bugfix some issues with table keys/values
2024-08-12 17:57:14 -04:00
2ecb5fe885
Add channels and threads
2024-08-11 14:47:34 -04:00
6d3d104363
Overhaul of operator metamethods
2024-08-10 20:50:15 -04:00
948d6b4c22
Add array:counts()
2024-08-10 16:36:50 -04:00
4265728cbb
Add Array:unique() to get a set of unique items
2024-08-10 16:19:36 -04:00
b37bd70b60
For tables, deprecate support for square bracket indexing and .default
...
values, replacing them with a `:bump()` function for tables with numeric
values. This means that counters can be implemented easily without the
need to mask complexity.
2024-08-10 16:03:41 -04:00
8d3d591312
Add Sets to the language
2024-08-10 15:15:38 -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
b2e752ee32
Replace heap_str with GC_strdup
2024-07-26 13:30:24 -04:00
cfe46ee393
Replace heap_strn() with GC_strndup()
2024-07-26 13:28:18 -04:00
fb95bbb1d4
Deprecate array:pairs() and switch iterator functions to use enums
2024-07-20 16:45:13 -04:00
907122a049
Fix for unqualified enum names as return values
2024-07-19 14:16:51 -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
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
a86dc05d36
Cache AST parsings so we don't have to re-parse files
2024-07-05 15:51:23 -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
6a105fbd80
Add 'defer'
2024-07-04 18:00:01 -04:00
9d9fe12987
Add !!
statement for printing text
2024-07-04 16:23:05 -04:00
22063462a9
Add __length and __negative metamethods
2024-07-04 13:37:23 -04:00
f391c929e5
Add math metamethods (__add, __sub, etc.)
2024-07-01 11:12:00 -04:00
8724dcd821
Fix issue with using libraries
2024-06-19 16:09:22 -04:00
5bfc15c975
Fix issue with binding 'foo := use baz'
2024-06-16 19:52:55 -04:00
ae538ba9eb
Properly produce an error for foo := use -lbaz
2024-06-16 18:43:37 -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