Commit graph

717 commits

Author SHA1 Message Date
J.Teeuwissen
7759ce6fc4
Merge branch 'main' into Frame-Limited 2023-03-31 20:46:39 +02:00
Richard Feldman
0bb8c60b93
Merge pull request #5238 from roc-lang/glue-towards-ts
Move RustGlue.roc closer to what we have on the ts branch
2023-03-31 10:11:23 -04:00
Folkert
4419e961c8
remove unneeded extern definitions 2023-03-30 21:36:30 +02:00
J.Teeuwissen
9b410694fe
Merge branch 'main' into Frame-Limited 2023-03-30 20:38:05 +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
Folkert
d67617e64b
when roc_panic is setjmp/longjmp, mark its linkage as internal 2023-03-29 15:03:30 +02:00
J.Teeuwissen
d4ed6f7778
start resetref 2023-03-29 11:57:13 +02:00
Folkert
c0f49ce62c
correctly add padding between data and tag id 2023-03-28 19:46:26 +02:00
J.Teeuwissen
4d7a2be1dd
llvm inc list sort with 2023-03-22 17:20:50 +01: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
Anton-4
f1b1aa6a7b
Merge branch 'main' of github.com:roc-lang/roc into glue-getters-rtfeldman 2023-03-17 11:34:29 +01:00
Brendan Hansknecht
48f17a8e2c
add Str.releaseExcessCapacity 2023-03-15 15:24:59 -07:00
Brendan Hansknecht
8d5a182f83
fmt 2023-03-15 13:25:45 -07:00
Brendan Hansknecht
dbead004c5
clippy 2023-03-15 13:25:45 -07:00
Brendan Hansknecht
782411cfcb
correct passing str to sub function 2023-03-15 13:25:44 -07:00
Brendan Hansknecht
3dd16d2114
fix pushing to alloca 2023-03-15 13:25:44 -07:00
Brendan Hansknecht
3978059aa2
add seamless slices for str 2023-03-15 13:23:34 -07:00
Brendan Hansknecht
1319ba4844
add List.releaseExcessCapacity builtin 2023-03-13 17:43:21 -07:00
Folkert
fdf1489df6
Merge remote-tracking branch 'origin/main' into glue-getters-rtfeldman 2023-03-14 01:01:26 +01:00
Brendan Hansknecht
b94a046b0d
make sure to check raw capacity when decrementing refcounts 2023-03-13 14:08:24 -07:00
Brendan Hansknecht
dfb748fb03
misc cleanup + change refcount pointer to avoid branching 2023-03-13 14:08:24 -07:00
Brendan Hansknecht
f9274e575b
update list decref to know about seamless slices 2023-03-13 14:08:23 -07:00
Brendan Hansknecht
146dff5446
add llvm refcounting and fix memory leak 2023-03-13 14:08:23 -07:00
Brendan Hansknecht
4ced1bcfdd
add baseline of seamless slices 2023-03-13 14:08:23 -07:00
Brendan Hansknecht
e6964536b2
add more Num.bytesTo* functions 2023-03-12 08:41:05 -07:00
Brendan Hansknecht
785da377c8
add Num.count*Bits functions 2023-03-12 08:41:04 -07: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
Ayaz Hafiz
94c2c47da4
Handle case where only other tag of nullable unwrapped needs no refcount
It's possible to have a nullable unwrapped code where the only material
payload does not need refcounting operations. In this case the
refcounting function is the trivial one.
2023-02-16 09:38:49 -06: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
Ahmad Sattar
f80edb6ed6
Put list_element_layout! macro into mono 2023-01-28 02:01:02 +01:00
Ayaz Hafiz
673ca9a02f
Clippy 2023-01-25 13:33:32 -06:00
Ayaz Hafiz
ae7c899e51
Lift up more layouts 2023-01-25 13:14:38 -06:00
Ayaz Hafiz
3c8b68d3bb
Lift up insertions of layouts 2023-01-25 13:12:38 -06:00
Ayaz Hafiz
d2e247ed6e
Remove unused var 2023-01-25 13:03:31 -06:00