Brian Carroll
0af4361f2a
repl: continue fleshing out the Wasm repl code. Generate wrapper function.
2022-02-08 11:03:48 +00:00
Brian Carroll
85b418ebdf
wasm: get rid of Result from gen_wasm, rename a function, improve comments
2022-02-08 11:03:48 +00:00
Brian Carroll
c5ccc99e20
repl: rename Wasm32TestResult -> Wasm32Result
2022-02-08 11:03:48 +00:00
Brian Carroll
e9871947d3
repl: move wasm32_test_result to gen_wasm, and extract Wasm32Sized from FromWasm32Memory
2022-02-08 11:03:48 +00:00
Folkert
afd11e1cb1
move target -> roc_target
2022-01-26 23:33:29 +01:00
Folkert
c663a35e16
final phase
2022-01-26 15:44:24 +01: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
992105930b
Merge pull request #2363 from rtfeldman/wasm-refactor-lowlevels
...
Wasm: refactor low-level ops
2022-01-21 07:16:45 +00:00
Anton-4
a6537683a1
Merge pull request #2355 from rtfeldman/fix-lint-error
...
Fix a lint error by simplifying an if/else block
2022-01-17 12:49:57 +01:00
Brian Carroll
f354b4842b
Wasm: Move Eq/NotEq into LowLevelCall
2022-01-17 09:35:08 +00:00
Brian Carroll
f635dd8776
Wasm: Refactor lowlevels to get more flexibility without increasing boilerplate.
2022-01-17 09:33:06 +00:00
Brian Carroll
88b779c3ff
Wasm: Create CodeGenNumber
2022-01-17 09:33:06 +00:00
Brian Carroll
05a6a9c7ce
Wasm: update comments on lowlevels
2022-01-17 09:33:06 +00:00
Jan Van Bruggen
c1dc0226f6
Fix a lint error by simplifying an if/else block
...
From `cargo clippy -- -D warnings`:
```
error: all if blocks contain the same code at the start
--> compiler/gen_wasm/src/wasm_module/sections.rs:478:9
|
478 | / if bytes[*cursor] == 0 {
479 | | u8::skip_bytes(bytes, cursor);
480 | | u32::skip_bytes(bytes, cursor);
| |___________________________________________^
|
= note: `-D clippy::branches-sharing-code` implied by `-D warnings`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#branches_sharing_code
help: consider moving the start statements out like this
|
478 ~ u8::skip_bytes(bytes, cursor);
479 + u32::skip_bytes(bytes, cursor);
480 + if bytes[*cursor] == 0 {
|
error: could not compile `roc_gen_wasm` due to previous error
warning: build failed, waiting for other jobs to finish...
error: build failed
```
2022-01-16 06:14:10 -07:00
Brian Carroll
5e68f298df
Wasm: Reorganise Stmt and Expr methods
2022-01-15 15:53:41 +00:00
Brian Carroll
6bdc27a49e
Wasm: Use Vec instead of MutSet for called preloads
2022-01-15 15:35:42 +00:00
Brian Carroll
94ea50f56a
Wasm: Clarify some more magic numbers
2022-01-15 15:35:42 +00:00
Brian Carroll
9290d3ad5c
Wasm: Clarify where magic constant 5 comes from
2022-01-15 15:35:42 +00:00
Brian Carroll
e37ca971bd
Wasm: Simplify CodeBuilder serialization, based on Richard's suggestion
2022-01-15 15:35:37 +00:00
Brian Carroll
8c4fd93b07
Wasm: Remove old debug code that's never used. We have the HTML debugger now.
2022-01-15 13:27:34 +00:00
Brian Carroll
8d5a1cb661
Wasm: Replace _ todo with RuntimeError todo
2022-01-15 13:27:34 +00:00
Brian Carroll
c38134bdc0
Wasm: remove legacy unused ret_layout
2022-01-15 13:27:34 +00:00
Brian Carroll
bafb6e54d0
Wasm: Change panic for literals todo -> internal_error
2022-01-15 13:27:34 +00:00
Brian Carroll
91a0b21e70
Wasm: Get rid of some Backend compatibility code
2022-01-15 13:27:34 +00:00
Brian Carroll
f4137013cb
Wasm: tweaks from self-review
2022-01-14 18:50:52 +00:00
Brian Carroll
c5134fa015
Wasm: rename DeadCodeMetadata to PreloadsCallGraph
2022-01-14 18:37:52 +00:00
Brian Carroll
4311b5a410
Wasm: Make dead functions unreachable
, and the same for all return types
2022-01-14 18:21:13 +00:00
Brian Carroll
e7dc442af0
Wasm: fix double-counting bug in dead function replacement
2022-01-14 18:20:52 +00:00
Brian Carroll
c7da7ca689
Wasm: Parse the Name section, export init_refcount_test, and don't DCE exports
2022-01-14 18:20:52 +00:00
Brian Carroll
3d00217b53
Wasm: rename build_module_help -> build_module_without_test_wrapper
2022-01-14 18:20:52 +00:00
Brian Carroll
22d7ccfbd7
Wasm: Comment explaining DCE
2022-01-14 18:20:52 +00:00
Brian Carroll
6b204d11a2
Wasm: sort and deduplicate on each round of live function tracing
2022-01-14 18:20:52 +00:00
Brian Carroll
9dabc2db15
Wasm: adjust dead code elimination to account for import function indices
2022-01-14 18:20:52 +00:00
Brian Carroll
ca2597973e
Wasm: store function_count on the ImportSection
2022-01-14 18:20:52 +00:00
Brian Carroll
7a4593170c
Wasm: reuse existing SkipBytes code for opcodes
2022-01-14 18:20:52 +00:00
Brian Carroll
8a01c3f98a
Wasm: implement dead code elimination
2022-01-14 18:20:52 +00:00
Brian Carroll
98400cae1b
Wasm: Move code around
2022-01-14 18:20:52 +00:00
Brian Carroll
61d46be923
Wasm: Parse the Code section to collect metadata for dead function elimination
2022-01-14 18:20:52 +00:00
Brian Carroll
48f14f9a83
Wasm: Implement SkipBytes for OpCode
2022-01-14 18:20:52 +00:00
Brian Carroll
2ade357ea9
Wasm: Specify the format of immediate operands for each opcode
2022-01-14 18:20:52 +00:00
Brian Carroll
dd79a9b35a
Clippy fixes
2022-01-13 05:41:52 +00:00
Brian Carroll
c8181c3a19
Wasm: use parsed data from object file in the backend
2022-01-13 05:41:52 +00:00
Brian Carroll
8a384ffa88
Wasm: parse just enough of the Import section to count functions
2022-01-13 05:41:52 +00:00
Brian Carroll
9f8f31b2b6
Wasm: adjust function indices for preloading
2022-01-13 05:41:52 +00:00
Brian Carroll
9f0e0d5099
Wasm: create a hashmap of exported functions
2022-01-13 05:41:52 +00:00
Brian Carroll
fa46ab95fc
Wasm: rename some constants
2022-01-13 05:41:52 +00:00
Brian Carroll
f9fbe461d1
Wasm: Fix section parsing bug
2022-01-13 05:41:52 +00:00
Brian Carroll
3067358a33
Wasm: test for LEB-128 decoder
2022-01-13 05:41:52 +00:00
Brian Carroll
9c0abcd0da
Wasm: Preload WasmModule from object file bytes
2022-01-13 05:41:52 +00:00
Brian Carroll
d3554b2ac0
Wasm: Create Section trait for common functionality between module sections
2022-01-13 05:41:52 +00:00