Commit graph

31 commits

Author SHA1 Message Date
Brian Carroll
72fa6217fb Refactor wasm lowlevels to make it easier to add more 128-bit ops 2021-12-01 15:09:23 +00: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
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
079a8311ec Delete HeapMemory variant of WasmLayout, just treat pointers as Primitive
When I created this (at the very beginning of the Wasm backend),
I didn't really have a clear reason for it. I just thought it might end up
making sense treat heap pointers differently from numbers, somehow.

But the semantic differences between pointers and other numbers is not relevant
to WasmLayout. The semantics are clear from where the Symbol appears in the IR.

Also we were storing heap pointers in locals, for no real reason.
And the fact that it's *different* meant a lot of new cases in match expressions,
to do the exact same thing as Primitives but with a pointless difference.

Until now, we haven't really used this variant in any of our tests.
But the refcount pointer needed it... and everything broke!
2021-11-30 09:57:00 +00:00
Brian Carroll
264927fb85 Wasm code gen for new refcount lowlevels 2021-11-30 09:57:00 +00:00
Brian Carroll
6e5acadfea Create new lowlevels for refcounting 2021-11-30 09:57:00 +00:00
Brian Carroll
88bf6bf1b7 Clean up Wasm calling convention code 2021-11-29 00:17:45 +00:00
Folkert
bceebc4f8f first pass at decimal addition in the wasm backend 2021-11-21 23:00:12 +01:00
Michael Downey
d11bb93539
Merge branch 'trunk' into add_list_all 2021-11-18 16:09:24 -05:00
Michael Downey
12f7d4b458 fixing format 2021-11-18 16:04:38 -05:00
Michael Downey
9d587d37b4
Merge branch 'trunk' into add_list_all 2021-11-18 06:41:08 -05:00
Brian Carroll
be55582290 Enable some more gen_wasm string builtins 2021-11-18 09:59:52 +00:00
Brian Carroll
e75a9ec281 Merge branch 'trunk' of github.com:rtfeldman/roc into wasm-str-builtins 2021-11-17 13:51:11 +00:00
Brian Carroll
a3bfee5cd8 Leave other string builtins for later 2021-11-17 13:48:29 +00:00
Michael Downey
51ad326d11 fmt 2021-11-16 17:30:04 -05:00
Michael Downey
d946b84e63 adding initial List.all 2021-11-16 16:34:36 -05:00
Brian Carroll
8ad2f13ba9 Map some Str lowlevels to builtin calls 2021-11-15 19:17:27 +00:00
Folkert de Vries
1a3f2aed4f
Merge branch 'trunk' into refactor-builtin-list-drop 2021-11-15 19:51:17 +01:00
satotake
c253273490 Merge branch 'trunk' into refactor-builtin-list-drop 2021-11-15 11:37:32 +00:00
satotake
8e29daa160 remove low-level List.drop codes 2021-11-15 11:28:38 +00:00
Brian Carroll
79bd9ccf71 Symbol-to-lowlevel mapping for both dev backends 2021-11-15 00:27:04 +00:00
Brian Carroll
b9e97400d7 Inline lowlevel wrapper functions 2021-11-14 21:08:05 +00:00
Theo Felippe
277681fd06 fixed formatting 2021-11-13 18:12:14 +00:00
Theo Felippe
8d7c252fce implemented Str.trimRight 2021-11-13 18:02:58 +00:00
satotake
9ec2bc7946 Remove takeFirst and takeLast from backend 2021-11-13 06:03:18 +00:00
satotake
98d2c57edf move List.sublist to backend 2021-11-13 04:57:28 +00:00
Brian Carroll
86de39e7f8 Add missing lowlevel from match 2021-11-10 20:11:27 +00:00
Brian Carroll
06a6e8545b FIXME for wasm NumRound 2021-11-10 15:32:45 +00:00
Brian Carroll
7c95189e4a Get lots of Num lowlevel ops working 2021-11-10 14:21:32 +00:00
Brian Carroll
6421ff07a5 Use shorter notation for enums in lowlevel module 2021-11-10 10:47:01 +00:00
Brian Carroll
ec03b7b12a Move lowlevel calls to their own module of gen_wasm 2021-11-10 10:44:17 +00:00