Commit graph

8409 commits

Author SHA1 Message Date
Folkert
7a53534d41
rework how we filter captured symbols, and check for unused symbols 2022-04-27 16:14:15 +02:00
Ayaz
98a3523702
Merge pull request #2961 from rtfeldman/improved-identids
Improved identids
2022-04-27 10:11:06 -04:00
Folkert de Vries
1649e13cf0
add additional assert
Co-authored-by: Ayaz <20735482+ayazhafiz@users.noreply.github.com>
2022-04-27 15:31:43 +02:00
Folkert
61d4d66f80
move to u16 again for lengths 2022-04-27 14:26:20 +02:00
Folkert
b2f3ff0c3b
fix bug with updating strings giving incorrect results 2022-04-27 11:37:57 +02:00
Ayaz
b8ad2aedb4
Update build.rs 2022-04-26 22:43:04 -04:00
Ayaz
bb180db30f
Fix a typo from AArch64-related bugfix 2022-04-26 22:42:17 -04:00
Folkert
d18c46550f
fix test building 2022-04-27 01:28:31 +02:00
Folkert de Vries
0c6185ed28
Merge pull request #2962 from rtfeldman/fix-arm
Fix cli_run test on AArch64 (M1)
2022-04-27 01:22:33 +02:00
Ayaz Hafiz
fae4a8c9f8
Never really liked paperclips 2022-04-26 17:43:17 -04:00
Ayaz Hafiz
6d9598a179
Mark return-by-pointer parameters as sret in LLVM
We need to do this so that LLVM picks up the correct calling convention
- in particular, on AArch64, return-by-pointer parameters need to go in
x8 for the C callconv!

This ends up fixing all `cli_run` tests!

```
running 35 tests
WARNING: skipping testing example form.roc because the test is broken right now!
test cli_run::cli ... ok
test cli_run::exposed_not_defined ... ok
test cli_run::format_check_folders ... ok
test cli_run::format_check_good ... ok
test cli_run::format_check_reformatting_needed ... ok
test cli_run::effects ... ok
test cli_run::fib ... ok
test cli_run::helloC ... ok
test cli_run::closure ... ok
WARNING: skipping testing example helloWeb.roc because the test is broken right now!
test cli_run::helloWeb ... ok
test cli_run::cfold ... ok
test cli_run::base64 ... ok
test cli_run::helloWorld ... ok
test cli_run::known_type_error ... ok
test cli_run::helloRust ... ok
test cli_run::helloZig ... ok
WARNING: skipping testing benchmark QuicksortApp.roc because the test is broken right now!
test cli_run::quicksort_app ... ok
test cli_run::astar ... ok
test cli_run::quicksort ... ok
test cli_run::issue2279 ... ok
test cli_run::helloSwift ... ok
test cli_run::run_multi_dep_str_optimized ... ok
test cli_run::nqueens ... ok
test cli_run::false_interpreter ... ok
test cli_run::rbtree_ck ... ok
test cli_run::unknown_generates_with ... ok
test cli_run::rbtree_insert ... ok
test cli_run::unused_import ... ok
test cli_run::run_multi_dep_str_unoptimized ... ok
test cli_run::tui ... ok
test cli_run::run_multi_dep_thunk_optimized ... ok
test cli_run::run_multi_dep_thunk_unoptimized ... ok
test cli_run::deriv ... ok
test cli_run::breakout ... ok
test cli_run::gui ... ok

test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.09s
```
2022-04-26 17:36:45 -04:00
Ayaz Hafiz
0f863bdd85
Explicitly use large code models in AArch64 code gen
This appears to be necessary to compile our programs on AArch64 boxes.
My guess is special-cased code due to PIEs for large code models in
LLVM's codebase but I really have no idea.
2022-04-26 16:42:55 -04:00
Folkert
fc9067805b
move SmallStringInterner to its own file 2022-04-26 22:22:10 +02:00
Folkert
7b7da3ffce
refactor out a SmallStringInterner 2022-04-26 21:54:45 +02:00
Folkert
a0c8d4413b
using features that are too fancy 2022-04-26 21:32:34 +02:00
Folkert
e5e27dff1c
style 2022-04-26 20:40:47 +02:00
Folkert
9cfca53b0d
update guess 2022-04-26 20:32:11 +02:00
Folkert
d690d3f325
clippy 2022-04-26 20:26:13 +02:00
Folkert
e87cb5555b
use u8 as length type 2022-04-26 20:18:17 +02:00
Folkert
c31b796938
more types! 2022-04-26 20:10:29 +02:00
Folkert
d3ef35d935
rename 2022-04-26 11:33:26 +02:00
Folkert
25561ff757
Merge branch 'improved-identids' of github.com:rtfeldman/roc into improved-identids 2022-04-26 09:23:28 +02:00
Folkert
b761890f47
use std::io::Write to write bytes 2022-04-26 09:17:09 +02:00
Folkert
3e0b598bc7
switch to Vec<u8> 2022-04-26 09:15:51 +02:00
Folkert
b6e8509e89
more inline 2022-04-26 09:14:44 +02:00
Folkert
4164dcc3da
more debug info 2022-04-26 09:14:29 +02:00
Jared Cone
ab2333b0fc
Replaced a few more references to "global tag" with "tag" 2022-04-25 21:52:54 -07:00
Richard Feldman
6da39aa296
Merge pull request #2917 from rtfeldman/move-exhaustiveness-checking
Moves exhaustiveness checking to type solving phase
2022-04-25 20:55:05 -04:00
Ayaz Hafiz
909331c1b1
Bugfix compile error 2022-04-25 19:07:57 -04:00
Ayaz Hafiz
19233e08c2
Consolidate IsOpen solve 2022-04-25 19:04:10 -04:00
Ayaz Hafiz
07e69c7860
Style fixes 2022-04-25 19:04:10 -04:00
Ayaz Hafiz
752b3ee042
Bugfix merge conflicts 2022-04-25 19:04:10 -04:00
Ayaz Hafiz
1ff18af8f6
Nothing is static in this world 2022-04-25 19:04:10 -04:00
Ayaz Hafiz
03deec23c3
Constants 2022-04-25 19:04:10 -04:00
Ayaz Hafiz
1de67fe19a
Nested Eq constraint in Exhaustive behind SoA 2022-04-25 19:04:09 -04:00
Ayaz Hafiz
17e7b10267
Fought against clippy and lost 2022-04-25 19:04:09 -04:00
Ayaz Hafiz
7d908dc99c
Remove unused line 2022-04-25 19:04:09 -04:00
Ayaz Hafiz
372b12bec9
Typo 2022-04-25 19:04:09 -04:00
Ayaz Hafiz
85e3373d8b
Move exhaustiveness checking to type checking 2022-04-25 19:04:09 -04:00
Ayaz Hafiz
f7e04490c0
Remove stale comment 2022-04-25 19:04:09 -04:00
Ayaz Hafiz
356616d834
Move exhaustiveness checking to type solving phase with solve tests 2022-04-25 19:04:08 -04:00
Ayaz Hafiz
43bff0b59d
Turn repl test back on 2022-04-25 19:03:25 -04:00
Ayaz Hafiz
e73ebfba3e
Add a way to view solved types of arbitrary expressions/patterns in a program 2022-04-25 19:03:25 -04:00
Folkert
af6c3231f3
Improved IdentIds 2022-04-25 23:15:57 +02:00
Folkert
ae04887cb1
make IdentIds expose an iterator of &str 2022-04-25 23:15:56 +02:00
Folkert
724fdb666d
Improved IdentIds 2022-04-25 23:09:18 +02:00
Richard Feldman
893bd4f7ab
Improve error message in test_parse 2022-04-25 17:04:34 -04:00
Richard Feldman
85e7969c2d
Replace references to "global tag" with "tag" 2022-04-25 17:04:34 -04:00
Ayaz
e736adaa24
Merge pull request #2952 from rtfeldman/ability-unused-method-reporting
Ability unused method reporting
2022-04-25 15:53:06 -04:00
Folkert
5a5324f27e
make IdentIds expose an iterator of &str 2022-04-25 21:44:44 +02:00