Richard Feldman
df7df4ccf8
Merge branch 'trunk' into mfonism/rename-num-float-type-to-frac
2022-05-08 20:54:33 -04:00
Folkert de Vries
5d3b83f5a6
Merge pull request #2268 from rtfeldman/update_zig_09
...
Update to Zig 0.9 + LLVM 13
2022-05-08 23:29:45 +02:00
Mfon Eti-mfon
9068c2414e
Rename float functions and vars
2022-05-08 18:42:12 +01:00
jonas schell
532055bf3b
implement NumPowInt
2022-05-08 14:17:11 +02:00
Folkert
81caa96af2
Merge remote-tracking branch 'origin/trunk' into update_zig_09
2022-05-07 19:38:04 +02:00
Folkert
9e80673b1d
implement Num.round in the wasm backend like how the dev backend does it
2022-05-06 20:41:02 +02:00
Folkert
07383e96f0
Merge remote-tracking branch 'origin/trunk' into i/2792
2022-05-06 20:17:53 +02:00
Folkert
64b633bea6
make round return an integer
2022-05-06 20:17:40 +02:00
Folkert
5755475b3a
add ListIsUnique lowlevel operation
2022-05-06 13:56:35 +02:00
Brian Carroll
07b3c74713
Refactor for faster Rust compile times
2022-05-02 04:28:33 -07:00
Jared Cone
c7459e9888
Added support for unsigned gt/lt to wasm.
...
Breaks some other tests, pushing now for sharing
2022-05-02 04:28:33 -07:00
Folkert
b7b86c0cde
Merge remote-tracking branch 'origin/trunk' into update_zig_09
2022-04-30 23:34:48 +02:00
Brian Carroll
f8156ffd53
Merge pull request #2834 from rtfeldman/wasm-list-map-n
...
Wasm List.mapN
2022-04-20 14:47:04 +01:00
Brian Carroll
ae05e870af
wasm: Fix Wasm type mismatch for empty closure data in List.mapN
2022-04-13 22:05:57 +01:00
Brian Carroll
bdad1a5161
wasm: Extract List.mapN logic into a helper function
2022-04-13 21:38:54 +01:00
Brian Carroll
c950f6d834
Merge branch 'trunk' of github.com:rtfeldman/roc into wasm-linking-zig9
2022-04-11 18:34:43 +01:00
Brian Carroll
a7a84019cd
wasm: Get List.map3 working
2022-04-11 14:36:31 +01:00
Brian Carroll
7b96e953ba
wasm: Get List.map2 working
2022-04-11 14:36:31 +01:00
Brian Carroll
249925cb23
wasm: Work around Zig returning small structs as integers
2022-04-11 11:28:40 +01:00
Folkert
1d0f9e9192
Merge remote-tracking branch 'origin/trunk' into builtins-in-roc
2022-04-08 15:47:11 +02:00
ayazhafiz
1efe3e9929
Fix typo
2022-04-07 21:11:19 -04:00
ayazhafiz
134a7bf787
Update wasm implementation
2022-04-07 21:10:22 -04:00
Richard Feldman
cd00a98636
Add toF32/64 and checked versions
2022-04-07 16:13:57 -04:00
Brian Carroll
9116770a00
wasm: Adjust List.map code gen for capacity
2022-04-07 09:29:42 +01:00
Brian Carroll
2b74e55240
Merge branch 'trunk' of github.com:rtfeldman/roc into wasm-higher-order-calls
2022-04-07 09:03:34 +01:00
Richard Feldman
08466380df
Merge pull request #2798 from rtfeldman/wasm-fix-dec-isfinite
...
Wasm: fix Num.isFinite for Dec
2022-04-04 20:58:46 -04:00
Brian Carroll
0910831f59
wasm: fix Num.isFinite for Dec
...
When I wrote this code I thought it was the base10 floating point format,
but in fact it's fixed-point.
2022-04-05 00:02:31 +01:00
Brian Carroll
8620cdf75c
wasm: function pointers for higher order calls
2022-04-05 00:02:05 +01:00
Brian Carroll
5db3ae0227
wasm: code gen for higher order wrapper function
2022-04-05 00:02:05 +01:00
Brian Carroll
51789f38c2
wasm: generate RC inc for higher order builtins
2022-04-05 00:02:05 +01:00
Brian Carroll
05459455ec
wasm: ProcLayout for higher order wrapper fns
2022-04-05 00:02:05 +01:00
Brian Carroll
83cae16a60
wasm: Generate code for List.map call (incomplete)
2022-04-05 00:02:05 +01:00
Brian Carroll
448140d223
wasm: refactor to prepare for HigherOrder calls
2022-04-05 00:01:11 +01:00
Folkert
c73c01aa34
Merge remote-tracking branch 'origin/trunk' into list-str-capacity
2022-03-30 14:07:17 +02:00
Folkert
877b9eab7a
Merge remote-tracking branch 'origin/trunk' into builtins-in-roc
2022-03-23 17:33:58 +01:00
Brian Carroll
24e6cd80e7
wasm: fix argument order for shiftRightBy & disable tests with 8-bit values
2022-03-22 22:28:18 +00:00
Folkert
4e1197165b
Merge remote-tracking branch 'origin/trunk' into builtins-in-roc-delayed-alias
2022-03-18 21:25:52 +01:00
Brian Carroll
456d8ff9cb
Merge branch 'trunk' of github.com:rtfeldman/roc into list-str-capacity
2022-03-11 19:28:13 +00:00
Brian Carroll
20f6330f72
wasm: Fix Str.isEmpty for capacity
2022-03-10 06:59:15 +00:00
Folkert
92f2927046
initial implementation
2022-03-08 19:09:42 +01:00
Folkert
3510bad1d5
add scaffolding
2022-03-07 20:55:40 +01:00
Folkert
adf4ad22a5
Merge remote-tracking branch 'origin/trunk' into builtins-in-roc
2022-03-05 20:55:15 +01:00
Brendan Hansknecht
2e70bb8458
remove list set low level
2022-02-27 15:07:09 -08:00
Folkert
65b1b3fcce
just before Num
2022-02-26 23:11:40 +01:00
Brendan Hansknecht
dddf8ff785
switch from pair to record and change name to ListReplaceUnsafe
2022-02-24 20:41:26 -08:00
Brendan Hansknecht
ba2e8cd32b
Add base piping for list.Replace
2022-02-24 17:58:56 -08:00
ayazhafiz
e52d427ac8
Hash record field name order in generated layouts
...
Closes #2535
See the referenced issue for longer discussion - here's the synopsis.
Consider this program
```
app "test" provides [ nums ] to "./platform"
alpha = { a: 1, b: 2 }
nums : List U8
nums =
[
alpha.a,
alpha.b,
]
```
Here's its IR:
```
procedure : `#UserApp.alpha` {I64, U8}
procedure = `#UserApp.alpha` ():
let `#UserApp.5` : Builtin(Int(I64)) = 1i64;
let `#UserApp.6` : Builtin(Int(U8)) = 2i64;
let `#UserApp.4` : Struct([Builtin(Int(I64)), Builtin(Int(U8))]) = Struct {`#UserApp.5`, `#UserApp.6`};
ret `#UserApp.4`;
procedure : `#UserApp.nums` List U8
procedure = `#UserApp.nums` ():
let `#UserApp.7` : Struct([Builtin(Int(I64)), Builtin(Int(U8))]) = CallByName `#UserApp.alpha`;
let `#UserApp.1` : Builtin(Int(U8)) = StructAtIndex 1 `#UserApp.7`;
let `#UserApp.3` : Struct([Builtin(Int(I64)), Builtin(Int(U8))]) = CallByName `#UserApp.alpha`;
let `#UserApp.2` : Builtin(Int(U8)) = StructAtIndex 1 `#UserApp.3`;
let `#UserApp.0` : Builtin(List(Builtin(Int(U8)))) = Array [`#UserApp.1`, `#UserApp.2`];
ret `#UserApp.0`;
```
What's happening is that we need to specialize `alpha` twice - once for the
type of a narrowed to a U8, another time for the type of b narrowed to a U8.
We do the specialization for alpha.b first - record fields are sorted by
layout, so we generate a record of type {i64, u8}. But then we go to
specialize alpha.a, but this has the same layout - {i64, u8} - so we reuse
the existing one! So (at least for records), we need to include record field
order associated with the sorted layout fields, so that we don't reuse
monomorphizations like this incorrectly!
2022-02-21 14:10:45 -05:00
ayazhafiz
13067f2908
Implement Num.toNNNChecked
...
Closes #2411
2022-02-19 16:20:21 -05:00
Mats Sigge
71f359fbdc
Move macros from roc_reporting to new roc_error_macros module
...
The `internal_error!` and `user_error!´ macros can't be used everywhere
when they live in `roc_reporting` due to circular dependencies.
2022-01-23 18:40:04 +01:00
Brian Carroll
f354b4842b
Wasm: Move Eq/NotEq into LowLevelCall
2022-01-17 09:35:08 +00:00