Commit graph

298 commits

Author SHA1 Message Date
Ayaz Hafiz
8d3d4ed9d8
Move LLVM scope ops to a separate module 2023-06-16 10:30:38 -05:00
Ayaz Hafiz
470ed119c2
Move roc struct operations to a new "struct" module 2023-06-16 10:30:38 -05:00
Ayaz Hafiz
80a98668d5
Fix type errors 2023-06-06 16:07:51 -05:00
Ayaz Hafiz
5274dbcd00
Add a Newtype variant to LayoutWrapper 2023-06-06 16:03:52 -05:00
Ayaz Hafiz
457cdabc5c
Make repr private and accessible only via the interner 2023-06-06 16:01:27 -05:00
J.Teeuwissen
21d4b61fca
DecRef union clear tag id 2023-06-05 14:55:37 +02:00
Ayaz Hafiz
a67c148be7
Convert LayoutRepr::Struct into a tuple variant 2023-05-16 11:58:16 -05:00
J.Teeuwissen
797da23f17
build_is_null resetref 2023-05-15 00:53:12 +02:00
Folkert
a289f37eef
handle NULL pointer in Reset 2023-05-15 00:53:12 +02:00
Ayaz Hafiz
4296d5a349
Drop Layout::struct_no_name_order 2023-05-10 15:58:51 -05:00
Ayaz Hafiz
f100e8753c
Introduce the concept of SemanticRepr 2023-05-10 13:51:04 -05:00
Ayaz Hafiz
c3eeb5e2cc
Wrap layouts in a LayoutRepr constructor
Part 1 of support semantic layout representations.
2023-05-10 13:22:10 -05:00
Folkert
ef60be37af
fix alloca of wrong type 2023-05-06 00:42:48 +02:00
Folkert
1c16617bec
llvm backend: fix how closure value is passed 2023-05-05 16:36:29 +02:00
Anton-4
9748e4a4dc
many clippy fixes 2023-04-24 16:21:46 +02:00
Anton-4
abf2d5760d
clippy auto fix 2023-04-22 18:25:48 +02:00
J.Teeuwissen
ed947b773d
Cleanup 2023-04-05 19:44:17 +02:00
J.Teeuwissen
87abe8df7d
Merge branch 'resetref' into Frame-Limited 2023-04-03 10:02:31 +02:00
Folkert
09779f65ad
add NullPointer to mono::ir::Expr 2023-03-30 20:18:04 +02:00
J.Teeuwissen
9e8b1c0dee
reset ref implementation 2023-03-30 09:30:09 +02:00
Folkert
99a3c08911
bake roc_alloc and friends into the dynamic library for glue 2023-03-29 19:43:59 +02:00
J.Teeuwissen
d4ed6f7778
start resetref 2023-03-29 11:57:13 +02:00
Ayaz Hafiz
3603183817
Apply opaque pointer recasting to all recursive layouts 2023-03-22 08:21:09 -05:00
Ayaz Hafiz
3a960e7809
Properly recast nested recursion pointers to their expanded layouts as needed
When we load a structure with a nested recursive pointer, the pointer
may be loaded opaquely. We need to refine it to the concrete type wanted
by the layout.

This conversion can be removed after we upgrade to LLVM 15.

Closes #5162
2023-03-22 08:21:08 -05:00
Folkert
fba66c03b7
temp fix to get this passing 2023-03-05 17:37:03 +01:00
Folkert
853c0387dc
cleanup 2023-03-05 17:33:48 +01:00
Folkert
769a4c415b
update remaining cli tests 2023-03-05 16:57:51 +01:00
Folkert
fa05c49693
correct the name of the size() exposed function 2023-02-26 14:23:10 +01:00
Folkert
1bf2cc3b8c
cleanup 2023-02-25 16:23:40 +01:00
Folkert
a3e759cc3c
fix generation of C signature when roc returns c_void 2023-02-25 16:05:09 +01:00
Folkert
35980e50b8
fix function getters 2023-02-25 15:47:20 +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
Folkert
68524ef07e
generate callers based on layout traversal 2023-02-20 22:05:35 +01:00
Folkert
edf557e480
fix for when C has to return an empty tag union 2023-02-15 15:34:02 +01:00
Folkert
178e80fa9a
fix for when C has to return an empty tag union 2023-02-15 15:30:26 +01:00
Folkert
b6bae82913
hello world works 2023-02-14 22:11:23 +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
Folkert
0072192897
prepare for llvm 15 2023-01-28 14:51:47 +01:00
Ayaz Hafiz
f451ba49f1
Toss out when-recursive from llvm backend 2023-01-25 12:48:06 -06:00
Ayaz Hafiz
8750127111
Begin support for looping-back recursive pointers to their source layouts 2023-01-23 14:37:48 -06:00
Folkert
bb44063419
Merge remote-tracking branch 'origin/main' into glue-getters-rtfeldman 2023-01-18 20:06:26 +01:00
Folkert de Vries
e3a213c0dc
Merge pull request #4882 from roc-lang/weakening-3
Begin weakening let-bindings to non-function, non-number expressions
2023-01-14 15:32:27 +01:00
Ayaz Hafiz
5eda760f1c
Fix bug in loading host-exposed list pointers 2023-01-12 10:20:11 -06:00
Folkert
6ead631c82
generate the RocFunction struct 2023-01-11 23:05:32 +01:00
Ayaz Hafiz
03ece6e274
Update llvm backend 2023-01-11 14:39:10 -06:00
Folkert
98ba49baf6
WIP 2023-01-08 14:49:13 +01:00
Folkert
1c1112ec35
Merge remote-tracking branch 'origin/main' into glue-getters-rtfeldman 2023-01-04 20:45:01 +01: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
972046445b
Lift Niche from just captures-niche to generic niche 2022-12-29 18:43:26 -06:00