Brian Carroll
c510226c15
Reorganise Wasm lowlevels to get pointer equality working correctly
2021-12-19 21:20:06 +00:00
Brian Carroll
ece28f1975
Fix loading code for Zig calling convention
2021-12-19 21:20:06 +00:00
Brian Carroll
e847c924dd
Lowlevels: replace RefCountGetPtr with the more general GetPtrAsInt.
2021-12-19 08:29:17 +00:00
Brian Carroll
a1d883600c
Equality operator for records
2021-12-18 17:25:00 +00:00
rvcas
b9bd75d643
Merge branch 'trunk' into wasm_arrays
2021-12-17 11:54:23 -05:00
rvcas
787900d291
fix(wasm): ListLen does not need to match ret_layout
2021-12-17 11:38:09 -05:00
rvcas
bc94683100
feat(wasm): copy value to memory
2021-12-17 11:37:40 -05:00
Brian Carroll
1b98673704
Separate stack and heap pointers & create Symbols for list literals
2021-12-17 11:45:54 +00:00
rvcas
bed288330f
feat(wasm): try different offsets
2021-12-16 22:27:16 -05:00
rvcas
fc07070617
feat(wasm): trying to add the rest of the elements to the list
2021-12-16 22:14:15 -05:00
rvcas
40da207859
feat(wasm): LowLevel::ListLen
2021-12-16 21:50:12 -05:00
rvcas
b35deacebe
feat(wasm): use allocate with ref count
2021-12-16 21:23:13 -05:00
rvcas
c14b4b81e0
Merge branch 'trunk' into wasm_arrays
2021-12-16 21:07:12 -05:00
Brian Carroll
3eb9e9f7ac
Traverse nested layouts for code gen helpers
2021-12-16 16:56:56 +00:00
Brian Carroll
86d8e2789e
Implement Wasm string equality
2021-12-16 16:56:56 +00:00
Brian Carroll
e1a04c2661
Only check layout is implemented for RC, not other ops
2021-12-16 16:56:56 +00:00
Brian Carroll
3adaacc66e
Add some comments
2021-12-16 16:56:53 +00:00
Brian Carroll
cd91be678f
Setup for specializing equality checks
2021-12-16 16:52:47 +00:00
Brian Carroll
efef2be958
Rename mono IR code gen helpers
2021-12-16 16:52:47 +00:00
Brian Carroll
71de2289ae
Rename helper proc generator struct
2021-12-16 16:52:47 +00:00
Brian Carroll
0547647341
Rename code gen helper file in mono
2021-12-16 16:52:47 +00:00
Brian Carroll
cca4acf728
Remove f128 equality implementation
2021-12-13 22:23:20 +00:00
Brian Carroll
594fe9124d
Wasm support for 128-bit number literals, isFinite, ==, and !=
2021-12-13 09:05:07 +00:00
Brian Carroll
c290bbe7a7
Move layout calculations to layout module
2021-12-12 12:22:10 +00:00
Brian Carroll
2a53e2711d
formatting
2021-12-12 08:41:34 +00:00
Brian Carroll
044a2015bb
Make better use of Layout methods for GetTagId
2021-12-12 08:35:02 +00:00
Brian Carroll
9594b05c96
Add some debug features to gen_wasm
2021-12-11 20:33:54 +00:00
Brian Carroll
9bf1b9aae3
Fix double-offset bug
2021-12-11 20:33:11 +00:00
Brian Carroll
c53b3c3686
Skip refcounting on unimplemented layouts
2021-12-11 20:33:11 +00:00
Brian Carroll
f54f96281f
Fix roc_alloc linking. Test passes for recursive Tag
2021-12-11 20:33:11 +00:00
Brian Carroll
f3ca3be507
Add Wasm support for recursive tags, along with GetTagId and UnionAtIndex
2021-12-11 20:33:11 +00:00
Brian Carroll
0fe8575ba3
Delete libc.a from gen_wasm
2021-12-11 10:15:32 +00:00
rvcas
6ada59d7a1
feat(wasm): the beginnings of a real array
2021-12-10 14:44:19 -05:00
Brian Carroll
bab8a0b8a0
Fix alignment bug
2021-12-10 14:52:59 +00:00
Brian Carroll
7b6ba79eee
Merge branch 'trunk' of github.com:rtfeldman/roc into wasm-tags
2021-12-10 11:48:56 +00:00
Richard Feldman
1ce648ac27
Merge pull request #2116 from rtfeldman/str_to_num
...
Str.toNum
2021-12-09 09:48:38 -05:00
Brian Carroll
3f7b3bef87
Merge branch 'trunk' of github.com:rtfeldman/roc into wasm-tags
2021-12-09 09:28:11 +00:00
Brian Carroll
1dda8859c4
Update gen_wasm's error handling to remove Result and use macros consistently
2021-12-09 00:11:44 +00:00
Brian Carroll
a25101b378
Remove unusable variants from Align enum
...
I discovered today that Wasmer throws an error if you use
"higher than natural" alignment in a store instruction.
So let's take them out of the enum.
2021-12-08 21:55:14 +00:00
Brian Carroll
8a1a164544
Prevent >8 bit alignment specifier in Wasm store instruction, which is not allowed
2021-12-08 21:42:48 +00:00
Brian Carroll
1ba654c5b2
Change round_up_to_alignment to a macro to work on more Rust types
2021-12-08 21:11:10 +00:00
Brian Carroll
6a801ebc7e
gen_wasm: add support for non-recursive Tags
2021-12-08 20:45:49 +00:00
Brian Carroll
f6b6d91c56
More accurate comment for EmptyArray
2021-12-08 20:30:26 +00:00
Brian Carroll
73c9c7089a
Fix gen_wasm Let statement for heap-allocating expressions
...
When we allocate on the heap we'll need to force LocalId storage.
In that case we don't want CodeBuilder to track the Symbol,
even though it has WasmLayout::Primitive.
So basically it was always the wrong condition to check, but we
got away with it when we had no heap allocations.
2021-12-08 20:30:26 +00:00
Brian Carroll
72fa6217fb
Refactor wasm lowlevels to make it easier to add more 128-bit ops
2021-12-01 15:09:23 +00:00
Folkert
69fc1ad7e7
sketch of StrToNum
2021-12-01 15:33:16 +01:00
Brian Carroll
a3827d6636
Merge pull request #2071 from rtfeldman/refcount-mono-ir
...
Start generating refcounting code as mono IR
2021-12-01 12:59:16 +00:00
Brian Carroll
6b30ab79ac
Fix release build of Wasm backend
2021-12-01 00:03:01 +00:00
rvcas
f995a07029
feat: Num.toStr
...
* add type for Num.toStr
* create new lowlevel
* delete types and Symbol for fromInt and fromFloat
* leave LowLevel::{StrFromFloat,StrFromInt}
* match on LowLevel::NumToStr and figure out the layout to decide
which build function to delegate to
2021-11-30 14:52:06 -05:00
Brian Carroll
ea64b6488c
Add some disabled debugging statements
2021-11-30 12:59:03 +00:00