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
729d856139
Better error reporting
2024-06-14 13:45:01 -04:00
6f11f5cbb4
Replace non-identifier characters with '_' when generating prefixes
2024-06-13 22:56:45 -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
5757a5023c
Support loading shared libraries
2024-06-13 12:59:19 -04:00
39ac885125
Change c/header transpilation order and fix some issues
2024-06-08 14:39:52 -04:00
f834073264
Fix issue with importing modules
2024-06-06 16:36:49 -04:00
fdaadee133
Fix imported symbol prefixes
2024-05-31 20:32:02 -04:00