8363d53bd2
Update channel API to take a Where parameter
2024-08-18 23:59:13 -04:00
9e07c6adc7
Add Channel:peek()
2024-08-18 23:31:36 -04:00
2e8c949fdc
Rename push/pop to give/get, since it's not stack-ordered
2024-08-18 23:24:23 -04:00
7472837ee5
Add array:first(predicate:func(x:&T)->Bool)->@%T?
2024-08-18 22:28:04 -04:00
6f3b2c073a
Add enum.tag
as a way to do a boolean test for whether a value has a
...
particular tag or not
2024-08-18 20:58:36 -04:00
967b649da2
Deprecate #
operator in favor of .length and fix up some issues
2024-08-18 20:39:57 -04:00
d804b09b02
Added a .length field to arrays/sets/tables, added a .max_size field to
...
channels, and updated the API
2024-08-18 20:28:39 -04:00
6ef0583868
Fix array indexing
2024-08-18 15:51:19 -04:00
a49870f810
Add primality testing and next_prime()/prev_prime()
2024-08-18 15:22:51 -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
8b94c2c7f1
Fix array ++= item
2024-08-18 02:58:44 -04:00
d0078ab024
Handle demotion of integers when we know what the expected type ought to
...
be and it's just a literal.
2024-08-17 23:43:30 -04:00
09c4ff2e43
Disallow accessing type members that start with underscores unless
...
you're inside the type definition.
2024-08-17 21:03:04 -04:00
20b7793963
Make small integer constants actually constant
2024-08-17 15:17:41 -04:00
2383d73645
Correct the logic to prevent promoting nums to ints automatically
2024-08-17 15:14:45 -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
cbe117a6d3
Allow for top-level or namespace-level variables that are initialized
...
with non-constant values by the use of an initializer function and
runtime checks for whether the variable is initialized.
2024-08-17 14:41:31 -04:00
a6be5c90ca
For cached functions with no arguments, use a static var instead of a
...
cache table
2024-08-16 01:46:05 -04:00
7c18773011
Bugfix for closures
2024-08-15 13:59:01 -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
9c2d7c437d
Fix up type conversions with ints and nums
2024-08-14 14:57:01 -04:00
e0223a4c20
Support ^ exponentiation for integers
2024-08-13 16:32:00 -04:00
5a0502bdf5
Fix some edge cases
2024-08-13 14:13:02 -04:00
1ce826b9c3
Tweak to codegen for range iteration
2024-08-13 11:35:22 -04:00
81ed38616f
Cleanup code gen for Num coercions
2024-08-13 04:24:36 -04:00
eb9e5260a6
Fix channels
2024-08-13 03:27:32 -04:00
9edace28e2
Fix ranges
2024-08-13 03:20:01 -04:00
7365602715
Fixing up more stuff
2024-08-13 03:08:27 -04:00
6f33b93014
Fix min/max
2024-08-13 03:05:56 -04:00
2c4f6536a3
Fix Int->Num promotions
2024-08-13 02:51:10 -04:00
ab7a5e7af6
Proper promotion of ints
2024-08-13 02:45:57 -04:00
aa74180ed1
Fixing up integers
2024-08-13 02:20:48 -04:00
158a1c6ad2
More fixes
2024-08-13 02:09:18 -04:00
d08f795794
Partially working first draft of bigints
2024-08-13 01:30:25 -04:00
c1c889b024
Fix for set.items
2024-08-12 18:00:54 -04:00
ea80fefa05
Bugfix some issues with table keys/values
2024-08-12 17:57:14 -04:00
6aabed4fcc
Fix some COW bugs for arrays/tables/sets
2024-08-12 17:44:05 -04:00
d2f4d07585
Support channels with maximum size
2024-08-11 15:04:22 -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
f0e56acc5b
Bugfix some issues with mod1
2024-08-10 20:40:41 -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
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