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
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
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
Folkert
7536a5b8b0
remove some commented code
2022-12-20 16:46:45 +01:00
Folkert
12ec3189c8
and the final one
2022-12-20 16:45:53 +01:00
Folkert
acf22ebf7e
fix 32-bit wasm to num conversion
2022-12-20 16:34:24 +01:00
Folkert
d765cae620
remove get_element_type in some C abi functions
2022-12-20 16:09:59 +01:00
Folkert
bb4ff34aaa
be more precise with zig return types
2022-12-20 15:43:11 +01:00
Folkert
976305bda2
clippy
2022-12-20 00:24:54 +01:00
Folkert
9bf8d65170
upgrade most build_load usages
2022-12-20 00:11:45 +01:00
Folkert
f2d0953e0a
upgrade build_in_bounds_gep
2022-12-19 20:21:27 +01:00
Folkert
bc9c813fec
already do some of the llvm struct_gep conversion work
2022-12-19 19:57:31 +01:00
Folkert
0f46ea83d0
standardize WhenRecursive
2022-12-19 19:05:25 +01:00
Folkert
3720c38e2b
convert to pointer_cast where we can
2022-12-17 23:21:19 +01:00
Folkert
8e36456765
de-duplicate tag extract value code
2022-12-17 22:56:05 +01:00
Folkert
551a0aa6db
subtle lifetime issue on a pointer
2022-12-17 22:49:36 +01:00
Folkert
8eddffeb70
clarify variable name
2022-12-17 22:24:55 +01:00
Folkert
78e0a4ca6b
use load_roc_value
2022-12-17 22:24:41 +01:00
Folkert de Vries
f550f049db
Merge pull request #4768 from roc-lang/expects-store-specialized-variable
...
Support using dbg/expect in polymorphic functions
2022-12-16 00:10:40 +01:00
Ayaz Hafiz
2dc19207a3
Throw away usage of stored variables on receiver side
2022-12-14 17:00:37 -06: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
Ayaz Hafiz
fe90355265
Store specialized variables of expect lookups in expect frames
2022-12-14 17:00:36 -06:00
Ayaz Hafiz
16209ef866
Store specialized lookup variables in expects
2022-12-14 16:59:05 -06:00
Folkert
d287eafa3a
remove F128
2022-12-14 23:28:38 +01:00
Ayaz Hafiz
1962f2045e
Remove layouts from the mono AST for expects
...
This actually isn't needed, because the backends must lookup the layout
from the environment anyway. So it's enough to lookup the symbol and
find its layout, there is no need to additionally store it.
2022-12-14 14:10:02 -06:00
Folkert
a72556b927
refactor entry point
2022-12-09 15:10:25 +01:00
Folkert
95fe9cbccd
pass the pointer to shared memory around, instead of using a global
2022-12-08 23:22:26 +01:00
Richard Feldman
8307a194e1
fix typo
2022-12-08 06:37:00 -05:00
Folkert
c9adafa04b
remove internal use of roc_send_signal
2022-12-08 12:20:55 +01:00
Ayaz Hafiz
3685ad2ed2
Ensure that llvm gen_ wrappers account different recursive pointers
...
Closes #2551
2022-12-02 13:38:32 -06:00