Ayaz Hafiz
6859c2e15c
Update dev backend
2023-01-11 14:38:42 -06:00
Ayaz Hafiz
ce717dca8b
Do not require allocating Layouts in arena before interning
...
This should reduce memory spend, the interner has its own effective
arena anyway
2023-01-10 09:47:13 -06:00
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
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 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
Ayaz Hafiz
e4b5252e51
List takes interned element
2022-12-29 08:52:37 -06:00
Ayaz Hafiz
7ab7fdfa7b
Push interned layouts as mut throughout the backend, and intern box layouts
2022-12-28 18:51:26 -06:00
Folkert
4ef541395a
remove dbg lowlevel
2022-12-22 02:45:09 +01:00
Folkert
f76df8a356
make dbg transparent to refcounting
2022-12-22 01:03:03 +01:00
Ayaz Hafiz
a96225e92e
Store specialized variable for use in dbg as fake symbol in lowlevel call
2022-12-14 17:00:37 -06:00
Folkert
0260182fb4
clippy
2022-12-09 16:03:12 +01:00
Folkert
30ce1ad4bb
cleanup
2022-12-09 15:57:50 +01:00
Folkert
19aa3ade45
fix morphic spec for expect runs in --optimize mode
2022-12-09 15:53:53 +01:00
Folkert
a72556b927
refactor entry point
2022-12-09 15:10:25 +01:00
Ayaz Hafiz
803d7e30e3
Eliminate Stmt::RuntimeError in favor of crash
2022-11-24 14:46:53 -06:00
Ayaz Hafiz
c7ef1668d4
Implement mono of crash
2022-11-24 14:46:51 -06:00
Folkert
5aa29c4e8b
morphic + reset/reuse
2022-11-15 22:06:09 +01:00
Folkert
98b88fef16
fix a weird merge conflict
2022-11-15 19:46:36 +01:00
Ayaz Hafiz
3723071c15
Collect deeply nested type names in alias analysis
...
Previously we only collected type names that appeared on the surface of
a type during alias analysis, but certain types that need to be named
(i.e. recursive types) may be observed only when we actually convert the IR
to the morphic IR. Make sure we collect those appropriately.
This is a cherry pick of the relevant changes in #4121 .
2022-11-15 09:23:28 -06:00
Folkert
78b89cb894
handle RC along with lets in alias analysis to limit recursion depth
2022-11-12 13:42:10 +01:00
Luke Boswell
a3f901427a
correct formatting and removed duplicate image
2022-11-03 20:02:10 +11:00
Luke Boswell
f3bdb5f321
updating rust package documentation
2022-11-03 20:00:06 +11:00
Luca Cervello
c39103d6d0
chore: replace panic! with internal_error!
2022-10-11 11:52:08 +02:00
Ayaz Hafiz
1e49622b61
Clippy
2022-08-31 14:36:44 -05:00
Ayaz Hafiz
3b4b1838b8
Push layout interner further through Layout
2022-08-31 14:33:52 -05:00
Folkert
10b6f33ed2
boilerplate
2022-08-12 13:34:36 +02:00
Richard Feldman
26ee1a01bc
Merge pull request #3691 from rtfeldman/cargo_verson_change
...
changed Cargo versions from 0.1.0 to 0.0.1
2022-08-05 09:13:04 -04:00
Richard Feldman
d260d1e593
Make entry points optional in code gen
2022-08-03 19:50:24 -04:00
Anton-4
6a15a7b41b
changed Cargo versions from 0.1.0 to 0.0.1
2022-08-03 11:41:19 +02:00
Folkert
f4726db63d
flip order of record when layout demands it
2022-07-24 11:49:29 +02:00
Folkert de Vries
ca38ec4eb5
Merge pull request #3541 from rtfeldman/rocasync
...
Changes to get roc-async working
2022-07-18 19:22:07 +02:00
Ayaz Hafiz
20c2c308fa
Include ZATs in host exposed aliases
2022-07-14 12:26:11 -04:00
Folkert
4d55b756bb
remove dict/set layout
2022-07-13 11:41:19 +02:00
Folkert
8e21fdcb04
remove dict/set lowlevels
2022-07-13 11:24:07 +02:00
Folkert
e8530eaca5
improve lowlevel unwrapping
2022-07-08 22:13:13 +02:00
Folkert
27094bf6eb
morphic implementations for new list functions
2022-07-07 23:20:06 +02:00
Folkert
56c9787e8f
List.appendUnsafe and List.reserve
2022-07-07 22:40:28 +02:00
Brian Carroll
a5a85d7d73
mono: delete HigherOrder variant ListMapWithIndex
2022-07-04 15:10:31 +01:00
Ayaz Hafiz
2726a3506f
Remove tag_name from Expr::Tag
2022-07-03 16:48:51 -04:00
Ayaz Hafiz
2d169bf518
Remove tag_name from ResetReuse
2022-07-03 16:47:01 -04:00
Ayaz Hafiz
8855f269ba
Make captures niche more private
2022-07-03 10:37:36 -04:00
Ayaz Hafiz
019ebd93f7
Put the capture niche in the lambda name instead of generating new names
2022-07-03 10:37:29 -04:00
Ayaz Hafiz
51978e08ed
First pass at supporting multimorphic lambdas in lambda sets
2022-07-03 10:37:26 -04:00
Brian Carroll
94181111be
Merge branch 'trunk' of github.com:rtfeldman/roc into pure-roc-list-walk
2022-07-02 21:44:42 +01:00
Folkert
e29a89d33c
remove zig implementation of keepIf/keepErrs/keepOks
2022-07-02 19:38:38 +02:00
Brian Carroll
219e6d11cf
Merge branch 'trunk' of github.com:rtfeldman/roc into pure-roc-list-walk
2022-07-02 18:08:43 +01:00
Anton-4
b74fc3554b
Merge branch 'trunk' of github.com:rtfeldman/roc into crates-folder
2022-07-02 12:35:19 +02:00
Anton-4
eee85fa45d
moved all crates into seperate folder + related path fixes
2022-07-01 17:37:43 +02:00