Commit Graph

27376 Commits

Author SHA1 Message Date
Bryce Miller
12d1d7386b
modify test to sidestep wasm gen bug 2023-12-18 11:24:11 -05:00
Anton-4
ec8467f6bb
skip flaky failures 2023-12-13 15:43:04 +01:00
Bryce Miller
99e596c4a0
don't run test for gen_wasm 2023-12-12 20:54:27 -05:00
Bryce Miller
fdd6bb6006
Merge branch 'main' into list-walk-with-index-until 2023-12-12 17:57:46 -05:00
Folkert de Vries
d4a1dbc2d6
Merge pull request #6232 from roc-lang/roc-std-slices
expose list/string slices to rust users
2023-12-12 23:24:03 +01:00
Folkert
ee1dd2cd14
disable a glue test that segfaults 2023-12-12 19:35:51 +01:00
Bryce Miller
8dbdd308c7
re-run test-mono 2023-12-12 07:56:30 -05:00
Bryce Miller
2db4cae9d1
Merge branch 'main' into list-walk-with-index-until 2023-12-12 07:54:42 -05:00
Bryce Miller
80dd0b6b93
run test_mono 2023-12-12 07:42:18 -05:00
Brendan Hansknecht
012d93574a
Merge pull request #6256 from roc-lang/dict-update-fix
Correct Dict.update to use proper index
2023-12-12 01:52:35 -08:00
Folkert
f570444901
always slice a big string as a slice (not as a small string) 2023-12-12 10:49:21 +01:00
Folkert
37ef3549c8
rename field name 2023-12-12 10:45:53 +01:00
Folkert
f742d50379
changes after review 2023-12-12 10:45:53 +01:00
Folkert
9865096c24
expose list/string slices to rust users 2023-12-12 10:45:53 +01:00
Bryce Miller
89febf52bc
Merge branch 'main' into list-walk-with-index-until 2023-12-11 23:13:21 -05:00
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
Richard Feldman
95a4bb988c
Merge pull request #6255 from roc-lang/glue-panic-handler
make glue use a setjmp/longjmp panic handler
2023-12-11 16:33:26 -05:00
Folkert de Vries
b9425bfc55
Merge pull request #6254 from roc-lang/testing-for-nightlies
Remove early DCE of bitcode
2023-12-11 21:54:29 +01:00
Richard Feldman
67d7385b9a
Clean up some obsolete asserts 2023-12-11 15:15:59 -05:00
Folkert
d2d87949c8
remove random write to pointer 2023-12-11 21:07:15 +01:00
Richard Feldman
5aab05aede
Change Running program... message in glue 2023-12-11 14:36:37 -05:00
Richard Feldman
e1697a910c
cargo fmt 2023-12-11 14:35:49 -05:00
Folkert
590282b14f
make glue use a setjmp/longjmp panic handler 2023-12-11 20:33:21 +01:00
Brendan Hansknecht
fb049b661a
Remove early DCE of builtins
Early DCE was sometimes cleaning up functions that we actaully still needed.
At some point we can come back to it and try to properly protect all special functions.
Until then, this still enables DCE, but it runs later with the full generated Roc module.
2023-12-11 10:44:57 -08:00
Brendan Hansknecht
3120dee509
Merge pull request #6238 from roc-lang/dict-follow-up
Dict follow up and addition of releaseExcessCapacity
2023-12-11 02:15:44 -08:00
Brendan Hansknecht
ec3b916c8f
Merge pull request #6249 from roc-lang/refcount-ptr-naming-cleanup
Cleanup list and str builtin naming from refcount to allocation
2023-12-11 00:19:35 -08:00
Brendan Hansknecht
49fb5a6e08
Merge pull request #6241 from ptaszor3/dbg_formatter_issue
Fixed format for 'dbg'
2023-12-10 20:47:16 -08:00
Brendan Hansknecht
f262102299
cleanup list and str builtin naming from refcount to allocation 2023-12-10 19:52:28 -08:00
Brendan Hansknecht
156a462f1d
update uitest and mono_test 2023-12-10 11:24:22 -08:00
ptaszor3
0019e9f43d
Merge branch 'main' into dbg_formatter_issue 2023-12-10 20:01:57 +01:00
ptaszor3
58b73ae257
Fixed some formatting 2023-12-10 19:58:23 +01:00
Luke Boswell
648ccd463d
handle TrailingOperator error 2023-12-10 19:58:23 +01:00
Vladimir Zotov
16bc2fd631
Updated to use alignOf consistently
Signed-off-by: Vladimir Zotov <azuresplash@gmail.com>
2023-12-10 19:58:22 +01:00
Brendan Hansknecht
199e84e91e
add some missed symbols that roc needs 2023-12-10 19:58:22 +01:00
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
bd69058659
update ingested windows compiler-rt symbols 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
240606b95f
add license to legal details 2023-12-10 19:58:17 +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