J.Teeuwissen
0070d3708e
Shuffled variable_usage_expr
2023-03-01 10:52:10 +01:00
J.Teeuwissen
046de72eac
only process ByName for now
2023-02-26 12:21:05 +01:00
J.Teeuwissen
73e36b826b
join point fixed point
2023-02-26 10:18:31 +01:00
J.Teeuwissen
756d4d6485
body_env
2023-02-25 17:55:12 +01:00
Folkert
1bf2cc3b8c
cleanup
2023-02-25 16:23:40 +01:00
Folkert
35980e50b8
fix function getters
2023-02-25 15:47:20 +01:00
J.Teeuwissen
336c821284
Temp fix for recursive joint points
2023-02-24 17:52:02 +01:00
J.Teeuwissen
0afe94e6db
Start new free var inference and joint points
2023-02-23 16:12:25 +01:00
Folkert
033618f3f4
fixes to get rocLovesRust to work
2023-02-22 21:17:50 +01:00
Folkert
0d4135c57a
Merge remote-tracking branch 'origin/main' into glue-getters-rtfeldman
2023-02-22 21:11:39 +01:00
J.Teeuwissen
9c73b5041a
stash
2023-02-22 17:43:43 +01:00
Folkert de Vries
bd6623dab4
Merge pull request #5055 from roc-lang/abilities-bug-generic
...
Lambda set compaction must preserve unique specializations of concrete types
2023-02-21 15:24:23 +01:00
Folkert de Vries
088bd5211f
Merge pull request #5054 from roc-lang/glue-generate-lambda-set-callers
...
Glue generate lambda set callers
2023-02-21 02:19:53 +01:00
Ayaz Hafiz
f7aa7e734d
Pass interner through to debug proc layouts misisng in param map
2023-02-20 18:49:29 -06:00
Ayaz Hafiz
e5c3376e90
Debug ProcLayouts
2023-02-20 18:49:18 -06:00
Ayaz
2f251310c0
Merge pull request #5010 from roc-lang/tuple-record-unify
...
Unify IR generation for tuples and records
2023-02-20 18:40:52 -06:00
Folkert
958d44a21c
cleanup
2023-02-20 22:25:48 +01:00
Folkert
68524ef07e
generate callers based on layout traversal
2023-02-20 22:05:35 +01:00
J.Teeuwissen
7df9e17be0
Stash comment
2023-02-20 11:53:22 +01:00
Folkert
90c45a197b
use extracted functions
2023-02-18 17:57:50 +01:00
Folkert
784ebde24b
helper functions
2023-02-18 17:34:41 +01:00
Folkert
edd10a079c
create hook for future glue proc codegen
2023-02-18 17:34:23 +01:00
J.Teeuwissen
09809b9bd6
Comments and cleanup
2023-02-18 14:35:24 +01:00
Folkert
b6bae82913
hello world works
2023-02-14 22:11:23 +01:00
Ayaz
b0d3d8fc7c
Merge pull request #5029 from roc-lang/lambda-set-cleanup
2023-02-14 08:51:35 -06:00
Ayaz Hafiz
b11cf19658
Remove unreachable lambda set layout branches
...
Lambda sets can only appear under function types, so we don't need to
handle them independently in layout gen.
2023-02-13 17:50:24 -06:00
Ayaz Hafiz
a3de22c88a
Do not fixup recursion pointers in non-recursive lambda sets
...
If a lambda set is non-recursive, but contains naked recursion pointers,
we should not fill those naked pointers in with the slot of the lambda
set during interning. Such naked pointers must belong to an encompassing
lambda set that is in fact recursive, and will be filled in later.
For example, `LambdaSet([Foo, LambdaSet(Bar, [<rec>])] as <rec>)` should
not have the inner lambda set's capture be filled in with itself.
Also, during reification of recursion pointers, we do not need to
traverse re-inserted lambda sets again, since they were just fixed-up.
Closes #5026
2023-02-13 17:14:04 -06:00
Ayaz Hafiz
2903ec4ac2
Remove obsolete comments
2023-02-13 10:54:05 -06:00
J.Teeuwissen
8721ae73e8
switch logic
2023-02-11 16:17:13 +01:00
Folkert
587c5c18d7
mono refcount: use box instaed of non-nullable unwrapped
2023-02-10 20:19:49 +01:00
J.Teeuwissen
20af312818
VarRcType
2023-02-10 15:32:59 +01:00
J.Teeuwissen
26a9b919d9
simplified insert_refcount_stmt
2023-02-10 13:12:10 +01:00
Folkert
6c15284a8f
more wip; now we just need to generate the exposed procs at the right time
2023-02-08 22:56:38 +01:00
Ayaz Hafiz
a22dcb5784
Unify record and tuple access
2023-02-08 11:13:36 -05:00
Ayaz Hafiz
1ee5f9d02b
Unify logic for building record and tuple IR
2023-02-08 11:03:02 -05:00
J.Teeuwissen
ae499137e4
start right to left evaluation with environment
2023-02-08 15:01:35 +01:00
J.Teeuwissen
1fa96257ed
clear work tree
2023-02-08 12:38:06 +01:00
Joshua Warner
5a6be05ead
implement mono / lowering for tuples
2023-02-07 18:54:50 -08:00
Ayaz Hafiz
0af5929411
Add comments for debug reprs
2023-01-30 17:22:16 -06:00
Ayaz Hafiz
4a59e24081
Address lints
2023-01-30 16:48:46 -06:00
Ayaz Hafiz
8c68044c54
Prime the cache with a default layer
2023-01-30 16:48:01 -06:00
Ayaz Hafiz
c3064dad73
Add method to get index of interned layout
2023-01-30 15:53:37 -06:00
Ayaz Hafiz
c1a937e393
Add method to debug whole nested structure of interned layout
2023-01-30 15:53:13 -06:00
Ayaz Hafiz
a16ea95a04
Always start off with an empty cache
...
Adding a cache layer can only be done with a snapshot and rollback.
This is necessary to prevent extra variables just lying around on the
toplevel of the layout cache.
2023-01-30 13:08:21 -06:00
Ayaz Hafiz
1e22a2bbcd
Layout-cache variable invalidation must compare by root keys
...
After unification, variable roots can change. So, when we invalidate
entries in the layout cache, we must compare for variable equivalence
relative to the current state of subs.
2023-01-30 13:06:44 -06:00
Ahmad Sattar
f80edb6ed6
Put list_element_layout!
macro into mono
2023-01-28 02:01:02 +01:00
Ayaz
0672879fff
Merge pull request #4965 from roc-lang/recursive-layouts-rec-by-default
...
Support equivalence for finding lambda sets
2023-01-26 15:20:59 -06:00
Brian Carroll
e0b5247f3e
mono code_gen_help: decref should use element alignment, not List alignment
2023-01-26 20:05:16 +01:00
Brian Carroll
7228502965
mono: delete is_rc_implemented_yet, because everything is implemented!
2023-01-26 20:05:16 +01:00
J.Teeuwissen
957f44966c
start perceus reference count
2023-01-26 17:13:29 +01:00