Brian Carroll
34b57cf315
Refactor after creating constant linking data
2021-11-07 11:23:20 +00:00
Brian Carroll
38d9fc5bbd
Add linker data for strings, and deduplicate them
...
For references to addresses of constant strings, we make an entry in
reloc.CODE and configure the relocation type to say it points at a
memory address. (At least I think this is right, I can't test it yet!)
The same info can also be used for de-duplication.
It turns out we don't need reloc.DATA. I had misunderstood it.
The use case for that would be constant nested data structures,
where constant data would contain pointers to other constant data.
I don't think we're doing this in Roc at all, but not sure.
2021-11-07 11:20:32 +00:00
Brian Carroll
7dd5197953
Merge branch 'trunk' into wasm_serialization_refactor
2021-11-07 09:58:57 +00:00
Brendan Hansknecht
74a55f53f3
Switch back to cranelift due to versioning and aarch64 issues
2021-11-06 14:24:58 -07:00
Brendan Hansknecht
40f0271ccf
Fix M1 mac build
...
I changed wasmer to use the llvm backend because it compiles the fastest and supports aarch64.
If we later run into llvm versioning issues of some sort, we should switch this to cranelift.
Also re-adds serde-json which is used on macos.
2021-11-06 14:08:19 -07:00
Brendan Hansknecht
73e2cbcb1e
Make versions numbers consistent and matching the lock files
2021-11-06 13:24:45 -07:00
Anton-4
69f6ffadab
Merge branch 'trunk' into deps
2021-11-06 18:07:34 +01:00
Kevin Sjöberg
f6d055dc62
Correct minor spelling mistakes
2021-11-06 15:29:08 +01:00
Brendan Hansknecht
c595668b37
Remove dependency on cranelift
2021-11-05 19:59:42 -07:00
Brendan Hansknecht
bddc08c977
Remove unused dependencies
2021-11-05 16:58:11 -07:00
Brian Carroll
5f998f3707
Minor refactor in CodeBuilder
2021-11-05 12:26:05 +00:00
Brian Carroll
e5a0738681
Rename CodeSection serializer, since it doesn't actually mutate
2021-11-05 12:25:27 +00:00
Brian Carroll
01b47a2ec7
Add inline directives to ensure unit placeholders are optimised away
2021-11-05 12:11:37 +00:00
Brian Carroll
d220ed7a23
Refactor module section serialization
2021-11-05 12:11:33 +00:00
Brian Carroll
4dcb65cc46
Fix data count section for the case where data section is empty
2021-11-05 08:36:18 +00:00
Brian Carroll
c5d99433f7
Fix build error
...
And slightly improve efficiency by exiting early from an iteration
2021-11-04 23:21:48 +00:00
Brian Carroll
09f2ce327c
Change some comments after self-review
2021-11-04 21:19:23 +00:00
Brian Carroll
0d1946a782
Don't generate a DataSection unless we actually need it!
2021-11-04 20:50:32 +00:00
Brian Carroll
c798c9d444
Implement long string literals
2021-11-04 20:44:29 +00:00
Brian Carroll
414c9e6f86
Move WasmModule initialisation into WasmBackend
...
It helps to coordinate different sections with related values,
based on knowledge of Roc rather than Wasm.
2021-11-04 20:41:23 +00:00
Brian Carroll
1b91fd9533
Get rid of some overcomplicated Data section stuff
...
Currently a Wasm module can only have one memory
The Data Segment spec allows for more in future
But the format is confusing enough already without that!
Let's just get rid of that complexity, we don't need it.
2021-11-04 19:44:10 +00:00
Brian Carroll
c57d99c1ac
Create types for DataSection
2021-11-04 18:58:17 +00:00
Brian Carroll
46c19b59d4
Add support for small string literals
2021-11-04 14:29:46 +00:00
Brian Carroll
2f430fce86
Refactor literals
2021-11-04 13:40:34 +00:00
Brian Carroll
7fdd6cf952
rust-fmt
2021-11-03 11:59:49 +00:00
Brian Carroll
b432d923b1
Create a linking module
2021-11-03 11:46:46 +00:00
Brian Carroll
e10b7d1f2c
Merge branch 'trunk' of github.com:rtfeldman/roc into wasm_module_builder
2021-11-03 11:32:45 +00:00
Brian Carroll
d87db20478
clippy
2021-11-03 11:31:12 +00:00
Brian Carroll
ad9b761fce
Move wasm file format code into a submodule
2021-11-03 11:20:16 +00:00
Brian Carroll
87f6246851
Remove parity-wasm!
2021-11-03 10:36:08 +00:00
Brian Carroll
59757d638a
Migrate the last sections: Type and Function
2021-11-03 10:24:03 +00:00
Richard Feldman
e7c9a5211f
Drop file that was accidentally restored in rebase
2021-11-02 19:39:11 -04:00
Richard Feldman
ac42470c81
Drop unused libc deps
2021-11-02 19:37:38 -04:00
Richard Feldman
ffbf2b4276
Move some things to dev deps
2021-11-02 19:37:05 -04:00
Brian Carroll
6fca1caee5
Merge branch 'trunk' of github.com:rtfeldman/roc into wasm_module_builder
2021-11-02 23:02:00 +00:00
Folkert
b6373c4efb
move files over
2021-11-02 21:39:16 +01:00
Brian Carroll
7a1b5ecc99
Slightly reorganise serialize code
2021-11-02 20:35:29 +00:00
Brian Carroll
b0aeafc066
Refactor code section to get rid of a copy
2021-11-02 20:34:57 +00:00
Folkert
f91443100f
move files
2021-11-02 21:12:50 +01:00
Brian Carroll
d8c1017aec
refactor stack pointer initialisation
2021-11-02 14:00:22 +00:00
Brian Carroll
baf896f6f9
Migrate linking and relocation sections
2021-11-02 13:56:47 +00:00
Brian Carroll
e720873c05
Migrate to own Global and Memory sections
2021-11-02 13:32:54 +00:00
Brian Carroll
edadd4ce13
Temporary setup to gradually migrate sections from parity_wasm to our own module_builder
...
Previously we just had our own code section.
Now we also have export section, and a way of switching them over one by one,
running tests in between.
2021-11-02 12:46:15 +00:00
Brian Carroll
4f464e485a
Export and code sections
2021-11-01 14:13:34 +00:00
Brian Carroll
2a0dbb39fb
Memory and Global sections
2021-11-01 12:30:44 +00:00
Brian Carroll
e05ef73f6c
function section
2021-11-01 09:54:09 +00:00
Brian Carroll
eb9705e2e9
import section
2021-11-01 09:48:29 +00:00
Brian Carroll
d25b12328d
Rename some SerialBuffer methods
2021-11-01 08:42:02 +00:00
Brian Carroll
7ad452d78a
Types section
2021-11-01 08:34:34 +00:00
Brian Carroll
6ab00d164c
Create WasmModule struct
2021-11-01 00:06:25 +00:00