Commit graph

3829 commits

Author SHA1 Message Date
Richard Feldman
f20c7db029
Load all packages, not just the platform 2022-12-04 06:31:49 -05:00
Richard Feldman
0d2692f776
Use ..Default::default() 2022-12-04 06:31:49 -05:00
Richard Feldman
71478c297d
Fix some indentation 2022-12-04 06:26:45 -05:00
Richard Feldman
26f77ecffd
Add some more logging to file.rs 2022-12-04 06:26:44 -05:00
Richard Feldman
bee24fcd37
Add parse tests for package header 2022-12-04 06:26:44 -05:00
Richard Feldman
8a5ddaab2f
Drop imports from package header
That doesn't actually make sense!
2022-12-04 06:26:44 -05:00
Richard Feldman
da595a86b0
Parse package module header 2022-12-04 06:26:44 -05:00
Ayaz
c61c42bff7
Merge pull request #4661 from roc-lang/roc-test-dev
`test` has `dev` behavior, and `dev` does not exit if there are warnings
2022-12-03 12:26:00 -06:00
Folkert de Vries
24e4048cb5
Merge pull request #4660 from roc-lang/linux-stub-lib
Linux stub lib
2022-12-03 10:50:12 +01:00
Ayaz
012810d7e8
Merge pull request #4664 from roc-lang/i2551
Ensure that llvm gen_ wrappers account different recursive pointers
2022-12-02 17:39:26 -06:00
Ayaz Hafiz
7562525e96
Bugfix match 2022-12-02 16:31:47 -06:00
Ayaz Hafiz
304b88cdb2
Fix bug in expect test 2022-12-02 16:20:56 -06:00
Ayaz Hafiz
705ce10085
New problem dropped 2022-12-02 14:14:18 -06:00
Ayaz Hafiz
66419e8f29
The yeah yeah yeahs 2022-12-02 14:11:58 -06:00
Ayaz Hafiz
8e2c2e1809
It's an error to expose values that aren't defined 2022-12-02 14:11:58 -06:00
Ayaz Hafiz
845a2f8c75
Report warnings in roc test 2022-12-02 14:11:58 -06:00
Ayaz Hafiz
37c689841a
dev/test don't exit early for warnings 2022-12-02 14:11:58 -06:00
Ayaz Hafiz
c351be3230
Import in test reporting 2022-12-02 14:11:58 -06:00
Ayaz Hafiz
7e512077e7
Fix imports for repl 2022-12-02 14:11:58 -06:00
Ayaz Hafiz
39f89e3d65
Get severity from type problem variants 2022-12-02 14:11:58 -06:00
Ayaz Hafiz
5414b4b60f
Fix imports 2022-12-02 14:11:58 -06:00
Ayaz Hafiz
e438fbf37c
Enumerate severity on problem variants 2022-12-02 14:11:57 -06:00
Ayaz Hafiz
0a4ec1958b
roc test stops if there are type errors 2022-12-02 14:11:57 -06:00
Ayaz
b5a195eaf0
Merge pull request #4650 from roc-lang/detect-reachable-by-recursion-only
Provide warning for defs that are used only in (mutual) recursion
2022-12-02 13:39:52 -06:00
Ayaz Hafiz
3685ad2ed2
Ensure that llvm gen_ wrappers account different recursive pointers
Closes #2551
2022-12-02 13:38:32 -06:00
Ayaz Hafiz
5cfbc49ebf
Remove needless hole translation 2022-12-02 12:21:44 -06:00
Ayaz Hafiz
52c858dc53
Remove aliases in partial procs
This is no longer needed
2022-12-02 12:19:13 -06:00
Ayaz Hafiz
0f6f34983f
Remove stale comment 2022-12-02 11:50:12 -06:00
Ayaz Hafiz
947808bbb3
Checking if a connected component has a bridge needs to look at all edges
With a graph

A -> B

if we visit the order B, A to collect SCCs, we won't see that B has
pre-order edges until we look at A.
2022-12-02 11:50:12 -06:00
Ayaz Hafiz
0a807dc43e
Provide warning for defs that are used only in (mutual) recursion
This patch provides errors for defs that are used only in
possibly-mutual recursion, and are not reachable outside of their
recursive closures. For example:

```
test_report!(
    mutual_recursion_not_reached_nested,
    indoc!(
        r#"
        app "test" provides [main] to "./platform"

        main =
            f = \{} -> if Bool.true then "" else g {}
            g = \{} -> if Bool.true then "" else f {}
            ""
        "#
    ),
@r###"
── DEFINITIONs ONLY USED IN RECURSION ──────────────────── /code/proj/Main.roc ─

These 2 definitions are only used in mutual recursion with themselves:

4│>      f = \{} -> if Bool.true then "" else g {}
5│>      g = \{} -> if Bool.true then "" else f {}

If you don't intend to use or export any of them, they should all be
removed!
"###
);
```
2022-12-02 11:50:12 -06:00
Ayaz Hafiz
34328ddf0c
Unused import 2022-12-02 08:50:04 -06:00
Ayaz Hafiz
078f0147ee
Do not bind accessors in toplevel thunks to their thunks' names
In #3352 an optimization to transform `ra = .field` into

```
ra = \#rcd -[ra]-> #rcd.field
```

rather than

```
__ra1 = \#rcd -[__ra1] -> #rcd.field

ra = LambdaSet { __ra1 }
```

was introduced. However, this optimization is not correct when `ra =
.field` is defined as a toplevel thunk, for in such situations we
indeed want the thunk `ra` to return the lambda set it resolves to,
rather than repointing at itself.

Besides reverting this change, another option would be to convert
accessors into closures before translation of Can to IR. However, this
complicates the translation algorithm more than it already is, and I'd
like to avoid additional special-cases.

Closes #4606
2022-12-02 08:50:03 -06:00
Ayaz Hafiz
22a84c8b21
Add comment for is_function 2022-12-02 08:49:14 -06:00
Folkert
ac1fce1a17
put in more section headers and make sure the .dynamic section is in the right segments 2022-12-02 15:19:15 +01:00
Folkert
2d8ba79034
turns out the symtab/strtab are important 2022-12-02 15:19:15 +01:00
Richard Feldman
0e74cc14cc
Merge pull request #4653 from roc-lang/fix-mv
Fallback to deep copy if `rename` fails when unpacking package tarball
2022-12-02 07:19:57 -05:00
Folkert de Vries
b67ffde678
Merge pull request #4657 from roc-lang/take_examples_fix
fix take examples
2022-12-02 12:46:26 +01:00
Folkert de Vries
0cb26bf50c
Merge pull request #4656 from roc-lang/wasm_interp_test_reorg
Wasm interp test reorg
2022-12-02 11:08:31 +01:00
Folkert de Vries
e1f7dfb3e6
Merge pull request #4649 from roc-lang/wasm_interp_imports
Wasm interp imports
2022-12-02 11:08:23 +01:00
Anton-4
2bf58a5bc3
fix take examples 2022-12-02 10:10:40 +01:00
Brian Carroll
c6e446da8d
wasm_interp: don't expose internal types 2022-12-02 08:02:27 +00:00
Brian Carroll
4714b4599a
wasm_interp: move test_utils into tests/mod.rs 2022-12-02 08:02:23 +00:00
Brian Carroll
ffd35f5884
wasm_interp: move tests inside the crate 2022-12-02 07:54:13 +00:00
Brian Carroll
42a15d07b3
wasm_interp: Just don't support non-function imports! I've never seen them anyway. 2022-12-02 07:47:49 +00:00
Brian Carroll
c38164ce8a
wasm_interp: cache import indices instead of signatures 2022-12-02 07:47:49 +00:00
Richard Feldman
2d8b8678d5
If renaming tmpdir for package fails, deep copy it 2022-12-01 22:39:40 -05:00
Richard Feldman
84eb82b815
Make fs_extra a workspace dependency 2022-12-01 22:33:04 -05:00
Ayaz
0d80e741c2
Merge pull request #4648 from roc-lang/i4636 2022-12-01 18:36:43 -06:00
Ayaz
9b4552608f
Merge pull request #4644 from roc-lang/i4594
Unify ranged numbers with flex able, modulo obligation checking
2022-12-01 16:52:32 -06:00
Ayaz Hafiz
42e8e409d4
Address lint 2022-12-01 15:59:01 -06:00