Commit graph

3017 commits

Author SHA1 Message Date
Ayaz Hafiz
50826d1a83
Inline interners into the layout interner module
I realized that we'll need to make the layout interner more complicated
to support things like recursive pointers pointing to their parents and
to support lambda set layout caching. Since the layout interner is the
only user of intern crate right now anyway, just inline the whole thing.
2023-01-03 14:19:39 -06:00
Ayaz Hafiz
82e6982196
Requiring sizing layout interner for traits 2023-01-03 13:46:20 -06:00
Ayaz Hafiz
69d5320958
Fix dec reference 2023-01-03 12:22:04 -06:00
Ayaz Hafiz
df6672e460
Support f32, f64, dec, and dispatched interned const layouts 2023-01-03 12:19:42 -06:00
Ayaz Hafiz
fdbc0ebdad
Thread LayoutInterner trait through 2023-01-03 11:48:46 -06:00
Ayaz Hafiz
b1424afefd
Cache many layouts into interner by default 2023-01-03 11:45:48 -06:00
Ayaz Hafiz
b60d5c0251
Push wrapped layout interners through 2023-01-03 10:51:33 -06:00
Ayaz Hafiz
947158b17e
Stub out layout interners into own module 2023-01-03 10:07:12 -06:00
Joshua Warner
07ebc81cba
Be more lenient with indentation in record parsing
... and extract a shared helper with collection_trailing_sep_e, thereby resolving some inconsistencies with normal collection parsing.

... and delete some dead code while I'm at it
2023-01-02 18:53:15 -08:00
Joshua Warner
0da50a612d
Be more lenient with required indentation in collections
... and also remove a bunch of now-dead errors that can't be triggered.
2023-01-01 17:49:51 -08:00
Ayaz
9171799c67
Merge pull request #4841 from roc-lang/parse-pattern-as
Parse pattern as
2022-12-31 13:19:57 -06:00
Folkert
2e27746413
can for list .. as 2022-12-31 16:00:40 +01:00
Folkert
905341d849
can for normal (no-list) as 2022-12-31 15:46:11 +01:00
Richard Feldman
ccbd6ad593
Merge pull request #4838 from roc-lang/more-str-docs
Minor `Str` improvements
2022-12-31 01:58:50 -05:00
Richard Feldman
879b957676
Delete unused branch (it never got hit on CI) 2022-12-30 22:40:45 -05:00
Folkert
06cfdd71cc
formatting 2022-12-30 23:27:06 +01:00
Folkert
c1c8328e25
update tests 2022-12-30 23:21:41 +01:00
Folkert
8305d078a0
add as for list rest patterns 2022-12-30 23:17:29 +01:00
Folkert
aff70bb6bd
refactor PatternAs 2022-12-30 18:22:10 +01:00
Folkert
e9196f3c0b
parse and format pattern as 2022-12-30 17:50:17 +01:00
Richard Feldman
1d2b095814
Verify that all builtin types are exposed 2022-12-29 20:48:55 -05:00
Richard Feldman
8e2eb2b28d
Check if a branch is unreachable 2022-12-29 20:48:45 -05:00
Richard Feldman
d4baf0ab37
Rename a constant 2022-12-29 20:48:30 -05:00
Ayaz Hafiz
68a1589663
Unwrap interned layout 2022-12-29 18:48:00 -06:00
Ayaz Hafiz
1ae3c3b0f8
Fix type error in niche unpacking 2022-12-29 18:45:20 -06:00
Ayaz Hafiz
ec7ee375d3
Fix import in wasm gen 2022-12-29 18:45:01 -06:00
Ayaz Hafiz
bf12e9e928
Lift docs for captures niches 2022-12-29 18:45:00 -06:00
Ayaz Hafiz
6722dc3b84
Hide away the niche representation 2022-12-29 18:44:39 -06:00
Ayaz Hafiz
321ac0b06f
s/CapturesNiche/Captures 2022-12-29 18:43:45 -06:00
Ayaz Hafiz
039bab65f5
Remove unused imports 2022-12-29 18:43:28 -06:00
Ayaz Hafiz
972046445b
Lift Niche from just captures-niche to generic niche 2022-12-29 18:43:26 -06:00
Ayaz
ea53a50447
Merge pull request #4836 from roc-lang/intern-layouts-2
Intern list element layouts and thread mut layout interner through LLVM backend
2022-12-29 18:41:35 -06:00
Ayaz
7076c889a5
Merge pull request #4828 from roc-lang/refactor-build
Refactor build
2022-12-29 18:41:22 -06:00
Ayaz
858670fac7
Merge pull request #4833 from roc-lang/intern-layouts
Intern all the layouts
2022-12-29 18:28:44 -06:00
Ayaz Hafiz
abf248372d
Fix clippy lint 2022-12-29 12:59:01 -06:00
Ayaz Hafiz
d6669aed2e
Don't assume tag id is in the tag arguments in making decision tree 2022-12-29 12:26:13 -06:00
Ayaz Hafiz
a9b02aed5e
Add gen test for nullable wrapped with singleton other tags 2022-12-29 12:22:50 -06:00
Ayaz Hafiz
3aab378bab
Correct pattern matching of nullable wrapped tag unions
The nullable ID always has zero tags. For everything else, we should
just match with the arity of the number of arguments, which doesn't
include the tag ID.
2022-12-29 12:22:05 -06:00
Ayaz Hafiz
d59b137f45
Implement printing of nullable wrapped IR layouts 2022-12-29 12:17:46 -06:00
Ayaz Hafiz
58930cc96c
Correct ircheck of nullable-wrapped unions 2022-12-29 12:10:23 -06:00
Ayaz Hafiz
14ea3518dc
Unnecessary reference 2022-12-29 11:42:51 -06:00
Ayaz Hafiz
0011636ba9
Allow all the arguments 2022-12-29 11:42:24 -06:00
Folkert
0eb41ad97f
another conditional compilation fix 2022-12-29 18:42:06 +01:00
Ayaz Hafiz
759f8d86af
Fix lifetime errors due to interner
In the llvm backend, there are the lifetimes `'a` (lifetime of the
global arena) and `'ctx` (lifetime of constructed LLVM values). `'a`
lives longer than `'ctx`, but the compiler didn't enforce this until
the layout interner was introduced, for some reason. We have to make
sure that containers of lifetime `'a` have no `'ctx` references.
2022-12-29 11:38:34 -06:00
Folkert
2606917d57
fix wasm executable extension 2022-12-29 17:05:46 +01:00
Ayaz Hafiz
512a1721ae
Push mutable layout interner through llvm backend 2022-12-29 10:04:43 -06:00
Folkert
6e2e5600df
conditional compilation fix 2022-12-29 16:50:22 +01:00
Folkert
aca8d98ad9
fix dev test compilation 2022-12-29 16:50:22 +01:00
Folkert
23b52894cc
fix test 2022-12-29 16:50:21 +01:00
Folkert
479caaf0a9
clean up path usage 2022-12-29 16:50:21 +01:00