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
Ayaz Hafiz
f451ba49f1
Toss out when-recursive from llvm backend
2023-01-25 12:48:06 -06:00
Ayaz Hafiz
37d9307fbf
Call insert_recursive for union layouts
2023-01-23 15:40:40 -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
Ayaz
616d699e59
Merge pull request #4894 from roc-lang/list-reserve-zst
...
handle zero-sized types in list decrement
2023-01-14 19:44:31 -06:00
Folkert de Vries
9a86e7e080
Merge pull request #4896 from roc-lang/expect-crash
...
reproduce crash in `expect` with Lists of different length
2023-01-14 16:53:52 +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
Folkert
dca1c665ae
fix list elementes being cloned to the wrong place
2023-01-14 14:25:23 +01:00
Folkert
437498b7ac
list decrement must use capacity, not length
2023-01-14 13:14:37 +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
f321369f4d
Fixing comparing runtime representations of layouts
2023-01-11 14:39:11 -06:00
Ayaz Hafiz
03ece6e274
Update llvm backend
2023-01-11 14:39:10 -06:00
Richard Feldman
94ccb0fd8d
Merge pull request #4849 from roc-lang/intern-layouts-5-lambda-set-layout-cache
...
Reduce layout intern allocations
2023-01-10 20:35:09 -05:00
Ayaz Hafiz
066bc7d953
Make sure to bump index of nullable-wrapped tag indices after null variants
...
Fixes a bug in ref-counting.
2023-01-10 10:01:50 -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
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
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
d4baf0ab37
Rename a constant
2022-12-29 20:48:30 -05:00
Ayaz Hafiz
972046445b
Lift Niche from just captures-niche to generic niche
2022-12-29 18:43:26 -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
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
512a1721ae
Push mutable layout interner through llvm backend
2022-12-29 10:04:43 -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