02930b84f8
Optionals for threads
2024-09-11 12:56:16 -04:00
908673c9d9
Optional channels (plus fixed some channel bugs)
2024-09-11 12:50:46 -04:00
30d39378c7
Optional C Strings
2024-09-11 12:39:56 -04:00
210179ee67
Optional enums (deprecated custom tag values)
2024-09-11 12:29:48 -04:00
dee3742b48
Optional structs
2024-09-11 12:01:17 -04:00
989dc3f442
Support if x := blah: ...
2024-09-11 01:48:15 -04:00
23209a0aab
Use optional ints in the array find()/first() API
2024-09-11 01:39:19 -04:00
7126755275
Add optional types
2024-09-11 01:31:31 -04:00
cc94afcc56
Test nesting parens and escapes
2024-09-09 15:03:51 -04:00
dad567bfc8
Restore path interpolation
2024-09-09 14:37:13 -04:00
900b456a26
Ensure more rigoroous cleanup and validation of paths
2024-09-09 14:35:00 -04:00
e16792d5eb
Add Text.starts_with() and Text.ends_with()
2024-09-09 05:31:25 -04:00
0b441054b3
Fix up some path logic
2024-09-09 04:49:02 -04:00
4f2de3568f
More tests
2024-09-09 03:52:56 -04:00
a306f94557
Add mktemp functionality
2024-09-09 02:43:15 -04:00
b0d806a1f0
Add unicode name escapes: \U[penguin]
2024-09-07 01:43:36 -04:00
11fa4f548c
Support 'when' statements as expressions
2024-09-06 14:15:55 -04:00
b36d4eaf67
Fix test
2024-09-06 12:17:43 -04:00
c789d25878
Text overhaul
2024-09-06 03:29:07 -04:00
44892df4c5
Add Text.trim()
2024-09-06 00:03:28 -04:00
47e8972427
Update 'use' test to include a '../examples/vectors.tm' import as well
...
as an unnamed import
2024-09-05 15:49:18 -04:00
34d98f067e
For big or arbitrarily big integers not known to be constant, do full
...
Int$plus(a,b) logic so it's definitely correct and doesn't error.
2024-09-05 12:41:13 -04:00
d801681026
Add early outs for (or) and (and) reducers
2024-09-05 11:51:07 -04:00
73df39ff7e
Fix stability of concatenation
2024-09-05 03:47:15 -04:00
3a556296b6
Add Text:repeat()
2024-09-04 21:22:03 -04:00
00543b4e87
Add Text.map(pat, fn)
2024-09-04 21:02:37 -04:00
df844946f7
Add Text:matches() for convenience and performance
2024-09-04 00:34:27 -04:00
b8bb4ada8b
Add recursive mode to text replacement and update docs
2024-09-03 23:16:45 -04:00
850fc8fbe1
Clean up text replacement API to use backrefs instead of match_chain()
2024-09-03 22:56:53 -04:00
c14ed3e3e7
Add Text.replace_all({Pattern:Text}) and tweak API for replacement to
...
support placeholders
2024-09-03 20:48:11 -04:00
91c5dc61c1
Change pattern syntax from [..pat] to {pat}
2024-09-03 14:27:09 -04:00
64143f0a13
Syntax overhaul (comments back to #
, print statments to !!
),
...
using `$/.../` for patterns and using a DSL for patterns
2024-09-03 13:19:41 -04:00
5feecff9d9
Deprecate Where
and change channel API to use a boolean front
value
2024-09-03 03:53:36 -04:00
5f0b099e14
Better behavior for invalid character names
2024-09-03 01:32:00 -04:00
b517f3b287
Fix codepoint names by falling back to block names
2024-09-03 01:30:07 -04:00
e98e77e1d3
Fix for missing codepoint names
2024-09-03 01:20:36 -04:00
5441e6f287
Update docs
2024-09-03 00:54:48 -04:00
6c22999ede
Add text slicing
2024-09-02 23:56:08 -04:00
5aa5a5e99b
Fix some stuff around Text:find() and text indexing
2024-09-02 23:47:16 -04:00
5d6fa135b1
Add Text:find_all()
2024-09-02 23:26:55 -04:00
9d2e9c02fe
Fix splitting an empty string
2024-09-02 23:24:16 -04:00
6e4be93848
Add Text:join() and tests
2024-09-02 23:13:02 -04:00
6d7e09bf18
Add Text:split() and use that with an empty pattern instead of Text:clusters()
2024-09-02 23:07:08 -04:00
9214e621bf
Add Text:lines()
2024-09-02 22:57:49 -04:00
5c093e6a4a
Improve test
2024-09-02 22:42:02 -04:00
708acda54e
WIP fixes for synthetic graphemes and adding some text conversion
...
methods
2024-09-02 22:30:19 -04:00
96f276ec18
Fix test
2024-09-02 21:19:57 -04:00
cac560fdc3
Text fixes
2024-09-02 21:18:15 -04:00
620ebeab8d
Fixing string methods
2024-09-02 20:22:13 -04:00
a4454df4b9
Bugfix int parsing
2024-09-02 19:23:35 -04:00
ad51b208b4
Overhaul of import syntax. Now everything uses use
: use foo
, `use
...
./foo.tm`, `use <foo.h>`, `use libfoo.so`
2024-08-22 14:02:48 -04:00
3c4f477b84
Bugfix some copy-on-write cases for when pointers are automatically
...
derefenced for method calls
2024-08-20 16:20:41 -04:00
934b843b1c
Add .text_content as a field on DSLs instead of a method
2024-08-19 14:29:58 -04:00
4765bb4120
Update test to reflect new numeric precision
2024-08-19 12:40:29 -04:00
70d6a18f59
Add test for importing initialized values
2024-08-19 00:53:28 -04:00
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
a49870f810
Add primality testing and next_prime()/prev_prime()
2024-08-18 15:22:51 -04:00
f4b04a1b8c
Improved syntax for dollar-string literals
2024-08-18 14:44:15 -04:00
04603308af
Tweak test code
2024-08-18 12:52:53 -04:00
bac188ce07
Change division and modulus to use euclidean division, plus fix up a few
...
integer bugs
2024-08-16 14:24:20 -04:00
ce6f312c94
Add binary search test
2024-08-15 14:01:36 -04:00
5a0502bdf5
Fix some edge cases
2024-08-13 14:13:02 -04:00
f4011eb489
Remove test
2024-08-13 02:46:56 -04:00
80af2ea547
Fixes
2024-08-13 02:21:21 -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
c139ba2aae
Fix old syntax
2024-08-12 17:43:01 -04:00
8b564f6dd1
Fix deadlock issue
2024-08-12 17:42:51 -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
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
cb6cebf12e
Add test for iterators
2024-08-10 14:52:53 -04:00
416300287f
Add test for ranges
2024-08-10 14:52:42 -04:00
f78cd6357a
Change table removal function to use values instead of references
2024-08-08 13:20:38 -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
f64aaf5960
Add array:pairs()
2024-07-13 18:05:14 -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
e51e6f840c
Tweak syntax for debug prints
2024-07-05 01:55:02 -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
9d9fe12987
Add !!
statement for printing text
2024-07-04 16:23:05 -04:00
38622ccbec
Change metamethod names
2024-07-04 13:40:09 -04:00
22063462a9
Add __length and __negative metamethods
2024-07-04 13:37:23 -04:00
ba66a51a9e
Add multiline string literal test
2024-07-01 13:09:26 -04:00
7dc8189266
Add test for optionals
2024-07-01 12:30:22 -04:00
37a7beb28f
Add test for metamethods
2024-07-01 12:30:07 -04:00
ed935eb882
Fix array_lvalue
2024-06-18 01:32:44 -04:00
f5dc37c86c
Add test for array member assignment
2024-06-18 01:31:23 -04:00
7e261bea9b
Fix 'use' test to use 'import' instead
2024-06-17 17:33:32 -04:00
bf3cdc3dfa
Refine the parsing of blocks so it's always ':' [inline-block] [indent indented-block]
2024-05-23 13:09:59 -04:00
fba2b99b65
Support 'while when'
2024-05-23 12:40:21 -04:00
5b1960859f
Hook up Text.has(), Text.trimmed(), Text.without()
2024-05-20 15:19:31 -04:00
1924f75647
Support corecursive structs
2024-05-14 13:30:46 -04:00
c2daf6a928
Clean up 'when' syntax
2024-05-01 13:53:51 -04:00
2e27b88c1b
Improved syntax for optionals
2024-04-30 13:18:47 -04:00
3c0a8f0b89
Syntax tweak: use ':' for blocks
2024-04-28 14:58:55 -04:00
6308325252
Add constructor/casting for ints and nums
2024-04-23 13:12:49 -04:00
5fd85d7e0b
Add Num.mix()
2024-04-22 14:49:36 -04:00
3590bf3407
Better imports for types
2024-04-21 14:58:33 -04:00
3b0dce04a0
Add heapify(), heap_push(), and heap_pop()
2024-04-19 13:29:04 -04:00
63e6ba596a
Change table syntax to {key:value} instead of {key=>value}
2024-04-13 13:39:44 -04:00
6c01eef851
Introducing the main() function
2024-04-12 13:09:31 -04:00
0f9c1f4eb4
Add corecursive func test
2024-04-10 11:53:18 -04:00
bec67efb11
Add test for array:sample()
2024-04-02 23:41:26 -04:00
95100469b6
Add array:sorted()
2024-04-02 13:13:33 -04:00
c73e96ff91
Add comparison operator <> and array method to sort by a custom
...
comparison function
2024-04-02 13:08:06 -04:00
d94053ca77
Add array:reversed()
2024-03-26 14:59:52 -04:00
5157988efa
Implement 'extern' functionality
2024-03-24 15:06:59 -04:00
5f3dac786c
Clean up codegen for empty tagged data
2024-03-17 22:17:21 -04:00
6905f759e5
Empty enums use a singleton instead of a constructor
2024-03-17 22:06:55 -04:00
47f627f5dd
Update test
2024-03-17 21:48:53 -04:00
ccba8abf73
Add tests for nested comprehensions
2024-03-17 15:28:46 -04:00
9932841530
Improve comprehensions for both arrays and tables
2024-03-17 14:46:36 -04:00
5c2bb00baf
Add conditional loop comprehension
2024-03-17 12:50:17 -04:00
341087026c
More array tests
2024-03-17 12:49:28 -04:00
8847eaa660
Bugfix for looping
2024-03-14 02:44:37 -04:00
89d7098654
Add test for secret structs
2024-03-09 19:06:09 -05:00
170c0a4197
Add lang tests
2024-03-09 19:03:35 -05:00
2b83ab279d
Add langs to the language
2024-03-09 18:22:12 -05:00
5cfc01ac09
Add function/caching test
2024-03-09 16:46:25 -05:00
00d4e98ba1
Extra lambda test
2024-03-09 16:08:03 -05:00
b04a1b3090
Implement lambdas and closures
2024-03-09 16:03:38 -05:00
a13f642679
Tweaking tests
2024-03-09 14:12:15 -05:00
1627a913a4
Lambda fixes/improvements
2024-03-09 14:09:18 -05:00
dfd38cdb69
Simple lambda test
2024-03-09 14:03:42 -05:00
06549741aa
Tweaking array tests
2024-03-07 12:21:39 -05:00
6583221c0b
More tests
2024-03-07 12:18:01 -05:00
cd1785b5cb
Added test
2024-03-07 12:07:14 -05:00
4e6001fa55
Add num32 test
2024-03-07 12:00:16 -05:00
558c8588ee
Fix default values for structs
2024-03-05 12:55:38 -05:00
0b7ca098ae
Fix some bugs relating to NUL termination of strings
2024-03-04 01:34:12 -05:00
1f6aa4cac7
Add methods for text:clusters(), text:codepoints(), text:bytes()
2024-03-03 19:40:01 -05:00
dc04286e3a
Unicode normalization for equality, hashing, tests, and printing
2024-03-03 19:12:53 -05:00
d8a533cdf0
Rename string test to text
2024-03-03 18:19:56 -05:00
8fab88c56f
Rename Str -> Text
2024-03-03 18:15:45 -05:00
07f0a18136
Fix endptr stuff in parser
2024-03-03 17:52:22 -05:00
0fe255a7c1
Fix up unicode escapes
2024-03-03 17:49:40 -05:00
0c51ca73e0
String tests
2024-03-03 17:30:31 -05:00
94ab8c0ac6
Add some more tests
2024-03-03 17:24:46 -05:00
6a39b0cd3f
Num tests
2024-03-03 17:23:54 -05:00