Bryce Miller
59eb28ef58
Add builtin List.walkWithIndexUntil
2023-12-11 23:04:40 -05:00
Brendan Hansknecht
0e842fd844
update formatting, uitest, and mono_test
2023-12-11 18:22:53 -08:00
Brendan Hansknecht
65ce79c1c5
correct Dict.update to use proper index
2023-12-11 15:35:19 -08:00
Brendan Hansknecht
b39d604745
Dict follow up and addition of releaseExcessCapacity
2023-12-10 00:06:58 -08:00
Brendan Hansknecht
ba28ba7ca3
Remove hashflooding comment
...
I think for now it is not worth considering adding hashflooding mitigation to the Roc Dict.
1. Wyhash is a secure enough has to pass SMHasher.
2. Languages like Go use wyhash in production and have not seen hashflooding issues.
3. We do have a random seed that Dicts use that changes per application linking. (Could monomorphize on Dict type for more randomness)
4. Any sort of fallback checks will lead to worse performance in the normal case.
5. A reasonable http server or app can limit the size of JSON or number of HTTP headers to accept.
2023-12-09 18:11:23 -08:00
Brendan Hansknecht
be06599bb6
bundle compiler-rt through zig
2023-12-09 18:11:22 -08:00
Brendan Hansknecht
51ec4311b5
Swap Dict implementation to ankerl dense unordered
...
ankerl::dense_unordered is a very fast hash map that is built to be an index map.
This enables extra optimizations compared to just wrapping a regular hash map.
As such, I think this map is very well suited for our index map impl in Roc.
I also think this dictionary implementation is simpler overall.
On top of that, this removes the need for SIMD instructions for peak performance.
Benchmarks of the C++ version and other C++ hash maps are here: https://martin.ankerl.com/2022/08/27/hashmap-bench-01/
Though this has clear bias of being written by the author of ankerl::dense_unordered,
the results all look correct and the benchmarks thorough.
2023-12-09 18:11:22 -08:00
Anton-4
e16f2bbc01
Num.maxNat does not exist
...
Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
2023-12-06 18:19:27 +01:00
Brendan Hansknecht
81eff6a23f
Merge pull request #6176 from roc-lang/set-perf
...
Improve perf of Dict and Set
2023-12-06 02:02:01 -08:00
Brendan Hansknecht
86eae30247
Merge pull request #6182 from CrepeGoat/patch-1
...
Update Num.roc - fix docstring typos
2023-12-05 14:28:39 -08:00
Brendan Hansknecht
a2cc17e8e9
write keepShared in a way that doesn't break dev-wasm
2023-12-05 14:12:10 -08:00
Brendan Hansknecht
87b31a581e
roc format
2023-12-05 12:37:12 -08:00
Brendan Hansknecht
3f50f78eba
update tests and Dict.keepShared semantics
2023-12-05 12:37:12 -08:00
Brendan Hansknecht
a0854a10e7
optimize set intersection and union
2023-12-05 12:37:12 -08:00
Brendan Hansknecht
35146d1a0b
remove redundant size attribute
2023-12-05 12:37:11 -08:00
Brendan Hansknecht
b9ef582c26
correct size to avoid rehash
2023-12-05 12:37:11 -08:00
Brendan Hansknecht
7e04c1f58c
use constants to avoid new allocations in Dict.empty
2023-12-05 12:37:11 -08:00
Brendan Hansknecht
f31a4070e4
implement Dict.withCapacity and improve Dict.fromList
2023-12-05 12:37:11 -08:00
Brendan Hansknecht
6692f5b15d
correct counting bits to return a u8
...
Also add an impl to the dev backend
2023-12-05 12:37:10 -08:00
LoipesMas
00839e12b5
Run roc format
2023-12-05 00:24:08 +01:00
LoipesMas
d4a8208069
Add more test cases
2023-12-05 00:04:13 +01:00
LoipesMas
83ac8209ae
Add Dict.keepIf, Dict.dropIf, Set.keepIf, Set.dropIf
2023-12-04 23:38:51 +01:00
Becker A
82ed520b98
Update Num.roc
...
undid bad change
Signed-off-by: Becker A. <awqatty.b@gmail.com>
2023-12-04 10:56:29 -07:00
Becker A
88d9d2d81b
Update Num.roc
...
fixed docstring typos
Signed-off-by: Becker A. <awqatty.b@gmail.com>
2023-12-04 10:55:26 -07:00
Becker A
f420e518d5
Update Num.roc
...
fixed docstring typo
Signed-off-by: Becker A. <awqatty.b@gmail.com>
2023-12-04 10:54:17 -07:00
Becker A
779b948772
Update Num.roc
...
fixed typos
Signed-off-by: Becker A. <awqatty.b@gmail.com>
2023-12-04 10:46:55 -07:00
Brendan Hansknecht
e5a0af5699
make DbgFormatter an unexposed implementation detail
2023-12-03 12:41:04 -08:00
Becker A
14e04d65cf
Update Decode.roc
...
fixed typo
Signed-off-by: Becker A. <awqatty.b@gmail.com>
2023-12-02 18:33:17 -07:00
Richard Feldman
421f8d9c5c
Fix Str.walkUtf8 docs
2023-12-01 20:49:58 -05:00
Brendan Hansknecht
0586f2bac0
more formatting
2023-11-28 16:40:43 -08:00
Brendan Hansknecht
77e55c88bf
update cli logging test
2023-11-28 16:40:43 -08:00
Brendan Hansknecht
759fa9b7a6
roc format
2023-11-28 16:40:42 -08:00
Brendan Hansknecht
9b181e1b3f
add inspect implementation for dict and set
2023-11-28 16:40:42 -08:00
Brendan Hansknecht
79a58843b5
fix mono tests with wrapping custom function
2023-11-28 16:40:42 -08:00
Brendan Hansknecht
f2ab6b54f3
correct Inspect.opaque and Inspect.function to be function calls
2023-11-28 16:40:41 -08:00
Brendan Hansknecht
3434d3154a
Ayaz's fix and first passing inspect test
2023-11-28 16:40:40 -08:00
Brendan Hansknecht
b8e644a1e3
add DbgFormatter to inspect
2023-11-28 16:40:40 -08:00
Ayaz Hafiz
5c805ce80f
Get first inspect for non-Inspect-implementing opaques specialized
2023-11-28 16:40:39 -08:00
Richard Feldman
34148645ae
wip
2023-11-28 16:40:39 -08:00
Richard Feldman
5a872a1bdd
Add Nat to Inspect ability
2023-11-28 16:40:39 -08:00
Brendan Hansknecht
26afbbe8f6
remove redunant list.sublist check
2023-11-20 21:09:11 -08:00
Richard Feldman
9a12175a96
Drop redundant exposed Set
2023-11-18 21:02:33 -05:00
Anton-4
6212820249
use List *
in len, withCapacity, isEmpty...
...
for consistency with Dict and Set
Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
2023-11-08 19:50:21 +01:00
Richard Feldman
9bd10704a3
Update some Num docs
2023-11-06 21:50:20 -05:00
Richard Feldman
e59d4e57c5
Add List.appendIfOk and List.prependIfOk
2023-11-06 18:13:15 +01:00
Isaac Van Doren
139d3c6f89
make dropFirst and dropLast drop n elements
2023-10-29 13:23:33 -05:00
Isaac Van Doren
886b855594
add Str.contains to builtins
2023-10-14 14:56:51 -05:00
Elias Mulhall
b7923ac542
builtin(list): add List.chunksOf
2023-10-07 11:54:34 -04:00
Brendan Hansknecht
5cfab36f75
update perf numbers
2023-09-19 10:50:52 +02:00
Brendan Hansknecht
aec135a269
Merge pull request #5820 from roc-lang/update-dec-docs
...
Update Dec docs some more
2023-09-18 02:56:39 +00:00