Commit graph

8277 commits

Author SHA1 Message Date
Folkert
2844be4383
move IdentStore to the bottom 2022-04-27 21:03:18 +02:00
Folkert
d09036bb4f
don't have shadowing overwrite our data 2022-04-27 20:59:40 +02:00
Folkert
1372825ebb
refactor 2022-04-27 20:53:00 +02:00
Folkert
08c8968236
use interner in Scope + fix shadowing being reported incorrectly 2022-04-27 20:40:58 +02:00
Folkert
09fbd4a505
fix typo 2022-04-27 20:22:52 +02:00
Folkert de Vries
d8d3d7b30c
Merge pull request #2966 from rtfeldman/refactor-closure-can
Refactor closure canonicalization
2022-04-27 20:21:47 +02:00
Folkert
7af2bb343c
remove unused Scope functions 2022-04-27 19:53:30 +02:00
Folkert
34d77cffdb
Merge branch 'refactor-closure-can' into scope-smarter-storage 2022-04-27 19:46:02 +02:00
Folkert
622c6f3248
Merge remote-tracking branch 'origin/trunk' into scope-smarter-storage 2022-04-27 19:45:09 +02:00
Folkert
1de3148cf1
fix problem with record guards 2022-04-27 19:18:26 +02:00
Folkert
c487506ab4
reduce allocations further 2022-04-27 19:11:25 +02:00
Folkert
b265663515
reduce allocations in pattern iteration 2022-04-27 18:44:06 +02:00
Folkert
454aa17586
change where scope is cloned 2022-04-27 18:01:22 +02:00
Folkert
2d0a9c8531
stop scope diffing in when canonicalization 2022-04-27 17:57:42 +02:00
Folkert
984ef53e75
shaving off a couple more lines 2022-04-27 17:29:32 +02:00
Folkert
2973af5f79
get rid of env.closure_name_symbol 2022-04-27 17:11:33 +02:00
Folkert
465fad9da1
refactor it all again 2022-04-27 17:01:18 +02:00
Folkert
6783b66db7
stop using env.closures 2022-04-27 16:44:29 +02:00
Folkert
c28a0af932
refactor: special-case the canonicalization of a Closure def 2022-04-27 16:42:04 +02:00
Folkert
41ee2c3e6a
unwrapping of an Opaque does not count as a binding of the opaque name 2022-04-27 16:38:53 +02:00
Folkert
c65f90b8c5
refactor closure canonicalization 2022-04-27 16:22:00 +02:00
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