Commit Graph

7738 Commits

Author SHA1 Message Date
Luke Boswell
b1ffa5c99b use subs caching on windows 2024-01-21 22:00:17 +11:00
Luke Boswell
ebff47a2aa
fix clippy 2024-01-21 12:24:35 +11:00
Folkert
8b5269a66c
update mono tests 2024-01-20 22:31:54 +01:00
Folkert
f1ffc36efe
add List.clone 2024-01-20 20:29:07 +01:00
Brendan Hansknecht
b6a5e5367c
build structs directly in the alloca 2024-01-20 09:44:46 -08:00
Folkert
351c9215fe
dev backend: f32 abs 2024-01-19 15:16:32 +01:00
Richard Feldman
e7c93bad75
Restore » in docs and allow it in highlighter 2024-01-18 22:23:06 -05:00
Richard Feldman
09c0453fc9
Fix HTML build 2024-01-18 21:51:50 -05:00
Luke Boswell
85fdef8a9b
fix doc comments in Str 2024-01-19 09:56:53 +11:00
Richard Feldman
894860118b
roc format on builtins 2024-01-18 06:34:51 -05:00
William Barbosa
3882262b70 Fix remaining test cases 2024-01-18 08:15:02 +01:00
William Barbosa
f7fac0daba Add a test for trimmed paths 2024-01-18 08:15:02 +01:00
William Barbosa
ad3673bfe9 Improve filename visibility in error messages 2024-01-18 08:15:02 +01:00
Richard Feldman
f2bd5efa41
update mono tests 2024-01-17 22:16:10 -05:00
Richard Feldman
88ea8ffb67
fix typo 2024-01-17 21:51:39 -05:00
Richard Feldman
b48fa0698a
Remove scalars and graphemes from Str 2024-01-17 21:30:34 -05:00
Richard Feldman
65738acb26
Update Str docs 2024-01-17 18:42:32 -05:00
Brendan Hansknecht
260b94b36d
Merge branch 'main' into rust-1-72-upgrade 2024-01-17 14:36:16 -08:00
Brendan Hansknecht
f9c0d54688
Stop using "rlib"
I don't know if this matters at all, but I don't think we should use "rlib".
The [rust docs](https://doc.rust-lang.org/reference/linkage.html) suggest using "lib" by default.
"lib" probably just aliases to "rlib", but it lets the compiler pick what it wants.
I don't think this will fix anything, but I am half hopeful it will somehow fix #6121.
2024-01-16 22:36:10 -08:00
Fabian Schmalzried
946f00e91b
Remove duplicate code in bitcode
Signed-off-by: Fabian Schmalzried <fabhof@posteo.de>
2024-01-16 16:19:39 +01:00
Richard Feldman
ae0e3593a4
Merge pull request #6311 from roc-lang/fix_benchmarks
Fix benchmarks failing silently
2024-01-15 14:00:57 -05:00
Isaac Van Doren
eec6d79248
exit code 2 for warnings 2024-01-14 19:53:55 -06:00
Isaac Van Doren
3d0661db0c
Revert "add ignore-warnings flag to roc build"
This reverts commit 1c85b823c1.
2024-01-14 19:51:58 -06:00
Isaac Van Doren
acb2cfdd40
Revert "add flag to roc check"
This reverts commit 5d74cd61ec.
2024-01-14 19:51:37 -06:00
Isaac Van Doren
5d74cd61ec
add flag to roc check 2024-01-14 16:00:11 -06:00
Isaac Van Doren
1c85b823c1
add ignore-warnings flag to roc build 2024-01-14 15:39:10 -06:00
Richard Feldman
443b3c8851
Fix single-quote dollar parsing 2024-01-13 15:41:35 -05:00
Anton-4
6a6345eb01
Merge branch 'main' of github.com:roc-lang/roc into fix_benchmarks 2024-01-13 19:47:20 +01:00
faldor20
d1f60f9eae fix formatting 2024-01-13 20:32:31 +10:00
Anton-4
79ed84fff3
Merge pull request #6355 from B-Teague/merge-gitignore
Consolidate gitignore
2024-01-12 13:29:32 +01:00
Brian Teague
60c639b60e
Consolidate gitignore
Keep certain files with no file extension

Keep specific files with no file extension

Delete all gitignore files
2024-01-10 22:16:04 -05:00
Luke Boswell
6bdcc4743a
Merge pull request #6363 from roc-lang/windows-llvm-setjmp-longjmp
fix for bugged setjmp/longjmp on windows/llvm
2024-01-09 22:00:15 +11:00
Brendan Hansknecht
3559326996
Set debug info version
We just missed setting it. Set it as specified in the docs: https://thedan64.github.io/inkwell/inkwell/debug_info/index.html#setting-up-the-module-for-holding-debug-info
Not sure why it is 3, but that is the value in the llvm tutorial as well: https://llvm.org/docs/SourceLevelDebugging.html

Fixes #6367
2024-01-08 20:28:42 -08:00
faldor20
7de39df63e Just stopping typechecking in interfaces when we have a package import 2024-01-09 06:21:35 +10:00
Luke Boswell
6b77aa93d5
force windows_setjmp & windows_longjmp 2024-01-08 12:31:09 +11:00
Folkert
b9b19d6054
fix for bugged setjmp/longjmp on windows/llvm 2024-01-07 23:04:11 +01:00
Richard Feldman
ff2704056e
Fix some tests 2024-01-07 00:00:37 -05:00
faldor20
ff7c2cf21b Fixed in interfaces properly 2024-01-07 14:18:32 +10:00
faldor20
1d2ed391c8 formatting, clippy etx 2024-01-07 12:58:35 +10:00
faldor20
d2c3d346ad added test for package 2024-01-07 12:52:31 +10:00
Richard Feldman
af8e9c7292
Parse deprecated interpolation syntax differently 2024-01-06 21:49:00 -05:00
faldor20
e43ef067b9 oops 2024-01-07 12:34:09 +10:00
faldor20
f4d71a5485 Finialised error and tested 2024-01-07 12:32:21 +10:00
faldor20
f36befdd4c made nicer error 2024-01-07 11:28:05 +10:00
faldor20
124abc3620 kill process when would hang 2024-01-07 08:26:22 +10:00
Folkert de Vries
08ab7996a0
Merge pull request #6357 from roc-lang/dollar
Add support for $(...) string interpolation syntax
2024-01-06 22:20:19 +01:00
Richard Feldman
163bde0c41
Update tests to use $(...) interpolation 2024-01-06 15:06:30 -05:00
Richard Feldman
25be487977
Add $(...) string interpolation syntax 2024-01-06 15:04:22 -05:00
Anton-4
da741cf8d8
Merge pull request #6359 from roc-lang/output-extension
stop overwritting manually set file extensions
2024-01-06 19:51:41 +01:00
Brendan Hansknecht
2466e2eb3b
Merge pull request #6356 from roc-lang/box-rc
Fix RC for unions with non-refcounted fields
2024-01-06 10:45:30 -08:00
Folkert de Vries
b5f2ac2b6d
Merge pull request #6358 from roc-lang/float-checked-llvm
32-bit float checked float operations assumed f64
2024-01-06 18:32:34 +01:00
Brendan Hansknecht
607d2d6adc
stop overwritting manually set file extensions 2024-01-06 09:10:23 -08:00
Brendan Hansknecht
a2fcf76164
make sure that union refcounting branches to the decrement block 2024-01-06 08:34:46 -08:00
Brendan Hansknecht
ce6e0bec9f
add memory leak valgrind test for freeing boxes 2024-01-06 08:17:45 -08:00
Folkert de Vries
deb8782b65
Merge pull request #6339 from roc-lang/dev-num-tests
Dev num tests
2024-01-06 17:11:21 +01:00
Folkert
9c94930d6a
32-bit float checked float operations assumed f64 2024-01-06 16:05:01 +01:00
Folkert
f3abb3b466
add instructions to the right block 2024-01-06 15:52:53 +01:00
Brendan Hansknecht
88bac5eba7
ensure unions get freed even if they have no RC fields (hit when using box) 2024-01-05 22:20:58 -08:00
Isaac Van Doren
7d3df10921
format and clippy 2024-01-04 21:18:28 -06:00
Isaac Van Doren
190c88e886
report shadowing error messages last 2024-01-03 22:20:35 -06:00
Richard Feldman
b1f7316fce
Merge pull request #6337 from roc-lang/dev-mul-with-panic
implement panic on overflow for mul in the dev backend
2024-01-02 16:49:58 -05:00
Folkert
05c8521211
clippy 2024-01-02 22:39:59 +01:00
Folkert
33dfd5d27d
cleanup 2024-01-02 22:28:57 +01:00
Folkert
7a365eb88f
enable even more dev-backend num tests 2024-01-02 22:23:47 +01:00
Folkert
b7a41bcb3e
enable many more dev-backend num tests 2024-01-02 21:30:49 +01:00
Folkert
6c521555ea
decimal division in dev backend 2024-01-02 19:53:13 +01:00
Folkert
4bcd195b92
implement NumSub (that panics) in the dev backend 2024-01-02 19:47:17 +01:00
dhzdhd
49c28409e0 Update ProgressReporter to display file size in KB 2024-01-02 19:09:55 +01:00
Folkert
cfdfbe18a4
implement panic on overflow for mul in the dev backend 2024-01-02 15:56:28 +01:00
Anton-4
c85a25e320
clippy fixes 2024-01-01 19:19:44 +01:00
Anton-4
3041da46f3
Merge branch 'main' of github.com:roc-lang/roc into rust-1-72-upgrade 2024-01-01 19:03:17 +01:00
Ayaz
865eff1956
Merge pull request #6331 from roc-lang/clippy-unnecessary-hashes
fix clippy (1.72.1) unnecessary hashes
2024-01-01 11:26:07 -06:00
Anton-4
5f1c383aa0
fmt 2024-01-01 17:11:46 +01:00
Anton-4
1126f85b5a
fix clippy unnecessary hashes 2024-01-01 16:38:36 +01:00
Anton-4
728f36cff8
crate upgrades for ahash issue
cli_run::static_site_gen was hitting 'use of unstable library feature stdsimd' when compiling ahash. ahash was a dependency of hashbrown 0.13.2.
2023-12-30 16:16:22 +01:00
John Murray
eff157333e
re-add mod tests but behind the test cfg 2023-12-27 12:45:16 -05:00
John Murray
07034faa0a
Revert "Revert "Merge pull request #6113 from JRMurr/nix-build-file-sets"" 2023-12-27 12:45:13 -05:00
Anton-4
4569770c82
Merge pull request #6314 from roc-lang/nix-rev-update
update nix revision
2023-12-27 17:50:38 +01:00
Anton-4
2ac6243e72
partial clippy fixes 2023-12-27 17:46:56 +01:00
Anton-4
26f0448a94
rust 1.71.1 -> 1.72.1 2023-12-27 17:27:03 +01:00
Anton-4
861e50a5f4
fmt, test fix 2023-12-27 16:16:09 +01:00
Anton-4
3210e87815
fixed filenames 2023-12-27 15:58:03 +01:00
Anton-4
4dbda48de7
update nix revision 2023-12-26 19:08:40 +01:00
Richard Feldman
7952fa2e73
Delete unused arena-pool crate 2023-12-26 10:59:14 -05:00
Anton-4
0987be4c2d
dbg 2023-12-26 13:26:31 +01:00
Anton-4
a4fd42b8de
rustfmt 2023-12-25 17:19:30 +01:00
Anton-4
cd632fe549
Merge branch 'main' of github.com:roc-lang/roc into clippy-1.74 2023-12-25 17:05:37 +01:00
Anton-4
52133e2d21
keep ingested_file_bytes result the same on import changes 2023-12-23 18:44:36 +01:00
Anton-4
cf96010543
update to basic-cli 0.7.1 2023-12-23 16:54:59 +01:00
JRI98
689a1ff352
Fix list rest bind in when branch tuple destructure 2023-12-21 11:55:29 +00:00
Anton-4
9b7eb05b87
Merge pull request #6283 from roc-lang/roc-ls-docs
Update roc_ls docs
2023-12-19 22:22:57 +01:00
Bryce Miller
a710dd18ac
Merge branch 'main' into list-walk-with-index-until 2023-12-18 17:25:06 +01:00
Bryce Miller
12d1d7386b
modify test to sidestep wasm gen bug 2023-12-18 11:24:11 -05:00
Anton-4
dc677bd86a
Update roc_ls docs
Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
2023-12-15 16:27:37 +01:00
Brendan Hansknecht
2955b00bb5
Merge branch 'main' into luke-windows 2023-12-14 08:59:53 -08:00
Ayaz
4952f5e1d0
Merge pull request #6257 from roc-lang/fix-unknown-dot-roc
Replace UNKNOWN.roc in reports with real filename
2023-12-13 22:02:17 -06:00
Richard Feldman
4b743c8878
Replace UNKNOWN.roc in reports with real filename 2023-12-13 21:20:26 -05:00
Anton-4
24d042f18e
Merge pull request #6275 from roc-lang/better-mono-error
more visible+better mono error
2023-12-13 21:29:39 +01:00
Richard Feldman
22060a2b3f
Merge pull request #6272 from dotslashbit/fix-num-format
Fix: #6261 Removed all the mentions of Num.format
2023-12-13 15:11:36 -05:00
Anton-4
eaa085fa93
more visible+better mono error 2023-12-13 17:38:20 +01:00
Sahil Mahapatra
b2ceeb47d9 removed all the mentions of Num.format 2023-12-13 18:51:01 +05:30
Anton-4
384cf2decf
add __udivti3 to must_keep
Fixes Undefined Symbol in relocation...
2023-12-13 12:09:15 +01:00
Brendan Hansknecht
43cfcaef64
Merge pull request #6263 from roc-lang/fix-nightlies-try-2
Re-enable early DCE with fix for M1 mac
2023-12-13 01:13:07 -08: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
Brendan Hansknecht
ec6d8142e7
Re-enable early DCE with fix for M1 mac
I won't claim to know why `__muloti4` is special, but none of the other compiler-rt functions are,
but seems to work and stop tests from hanging.

It also enables early DCE again which saves a tiny bit of compile time.
2023-12-12 10:43:14 -08: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
Luke Boswell
1051ba6569
cargo fmt 2023-12-12 21:15:17 +11: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
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
Luke Boswell
4d6546f5b0
fixes for Windows gen_num 2023-12-11 22:10:34 +11: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
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
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
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
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