Commit graph

5413 commits

Author SHA1 Message Date
Brendan Hansknecht
eeeccfb143
fix dce of compiler-rt 2023-12-10 19:58:22 +01:00
Brendan Hansknecht
75aa84f825
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-10 19:58:21 +01:00
Brendan Hansknecht
279ea48def
tell windows that we use floats? 2023-12-10 19:58:20 +01:00
Brendan Hansknecht
a86cd28d1d
wasm is not friends with compiler-rt 2023-12-10 19:58:20 +01:00
Brendan Hansknecht
5ec5f63a19
libc is a lie, tell bitcode that roc targets a world where libc might not exist 2023-12-10 19:58:20 +01:00
Brendan Hansknecht
27eea90bc3
correct wrong test case 2023-12-10 19:58:19 +01:00
Brendan Hansknecht
2d0ba0a792
remove all compiler-rt and libc code ports from zig bitcode 2023-12-10 19:58:19 +01:00
Brendan Hansknecht
4c76a224b5
bundle compiler-rt through zig 2023-12-10 19:58:19 +01:00
Brendan Hansknecht
8d8e498f11
remove unnecessary call to math.floor in bitcode 2023-12-10 19:58:18 +01:00
Brendan Hansknecht
c902a01c99
update uitest and mono_test 2023-12-10 19:58:18 +01:00
Brendan Hansknecht
e877c22935
fix Dict.listGetUnsafe to map to low level without wrapping 2023-12-10 19:58:17 +01:00
Brendan Hansknecht
3aa9908cb3
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-10 19:58:17 +01:00
JRI98
3a86f5de22
Fix format for the 'as' keyword 2023-12-10 19:58:16 +01:00
ptaszor3
7162fbddd3
Fixed the multiline dbg formatting 2023-12-10 19:58:09 +01:00
ptaszor3
6a6d5cebc0
resolved issue 6188 and added some tests 2023-12-10 19:57:49 +01:00
Anton-4
c4c1e66d1c
Merge pull request #6209 from roc-lang/remove-max-nat-mention
Num.maxNat does not exist
2023-12-06 20:44:49 +01:00
Richard Feldman
6f0857d7da
Merge pull request #6202 from roc-lang/substring-slices
Create seamless slices when getting a substring
2023-12-06 14:31:01 -05:00
Brendan Hansknecht
ca71409a76
add comment on slice construction 2023-12-06 11:26:52 -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
087ca115c9
create seamless slices when getting a substring 2023-12-05 22:46:43 -08:00
Brendan Hansknecht
9889984dd4
Merge pull request #6193 from horriblename/Fix-typos
Fix typos
2023-12-05 15:31:11 -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
64df1c6921
update uitest and mono_test 2023-12-05 14:13:18 -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
37656f4cc0
update uitest and mono_test 2023-12-05 12:45:31 -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
Brendan Hansknecht
e336aa525c
Merge pull request #6062 from JRMurr/div-0-should-crash
Update zig `@panic` calls to `roc_panic` for numeric errors
2023-12-05 12:28:47 -08:00
Ching Pei Yang
8c7bc6455e
Fix typos 2023-12-05 20:03:19 +01:00
Anton-4
a57f29e780
Merge pull request #6184 from roc-lang/debug-info
Fix debug info
2023-12-05 14:03:52 +01:00
LoipesMas
00839e12b5 Run roc format 2023-12-05 00:24:08 +01:00
LoipesMas
a9196a9abb Add more generated files 2023-12-05 00:18:32 +01:00
LoipesMas
4225c9e8c7 Add generated test files 2023-12-05 00:10:02 +01:00
LoipesMas
d4a8208069 Add more test cases 2023-12-05 00:04:13 +01:00
Brendan Hansknecht
749faf4850
a few missed variable renames 2023-12-04 14:57:47 -08:00
LoipesMas
83ac8209ae Add Dict.keepIf, Dict.dropIf, Set.keepIf, Set.dropIf 2023-12-04 23:38:51 +01:00
Brendan Hansknecht
05c1b6c583
more debug info corrections 2023-12-04 14:27:02 -08:00
Brendan Hansknecht
dbcb6ca5da
clippy 2023-12-04 13:53:56 -08:00
Brendan Hansknecht
fc09c3b002
remove debugir 2023-12-04 13:50:53 -08:00
Brendan Hansknecht
034b86973b
keep stripping zig debug info to avoid 250ms cost 2023-12-04 13:38:25 -08:00
Brendan Hansknecht
da301df37b
separate emitting debug info from emitting llvm-ir 2023-12-04 13:13:30 -08:00
Brendan Hansknecht
496cd6710a
fix debug info and add it all to the llvm backend 2023-12-04 12:55:33 -08: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