forked from OSchip/llvm-project
[WebAssembly] Update README. NFC.
This is just a cleanup of the very high level stuff. I'm sure there is more to update here but I'll leave that to others and/or a followup. Differential Revision: https://reviews.llvm.org/D100888
This commit is contained in:
parent
7208bd4b32
commit
103956170b
|
@ -1,19 +1,23 @@
|
|||
//===-- README.txt - Notes for WebAssembly code gen -----------------------===//
|
||||
|
||||
This WebAssembly backend is presently under development.
|
||||
The object format emitted by the WebAssembly backed is documented in:
|
||||
|
||||
The most notable feature which is not yet stable is the ".o" file format.
|
||||
".o" file support is needed for many common ways of using LLVM, such as
|
||||
using it through "clang -c", so this backend is not yet considered widely
|
||||
usable. However, this backend is usable within some language toolchain
|
||||
packages:
|
||||
* https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md
|
||||
|
||||
Emscripten provides a C/C++ compilation environment that includes standard
|
||||
libraries, tools, and packaging for producing WebAssembly applications that
|
||||
can run in browsers and other environments. For more information, see the
|
||||
Emscripten documentation in general, and this page in particular:
|
||||
The C ABI is described in:
|
||||
|
||||
* https://github.com/kripken/emscripten/wiki/New-WebAssembly-Backend
|
||||
* https://github.com/WebAssembly/tool-conventions/blob/master/BasicCABI.md
|
||||
|
||||
For more information on WebAssembly itself, see the home page:
|
||||
|
||||
* https://webassembly.github.io/
|
||||
|
||||
Emscripten provides a C/C++ compilation environment based on clang which
|
||||
includes standard libraries, tools, and packaging for producing WebAssembly
|
||||
applications that can run in browsers and other environments.
|
||||
|
||||
wasi-sdk provides a more minimal C/C++ SDK based on clang, llvm and a libc based
|
||||
on musl, for producing WebAssemmbly applictions that use the WASI ABI.
|
||||
|
||||
Rust provides WebAssembly support integrated into Cargo. There are two
|
||||
main options:
|
||||
|
@ -25,38 +29,11 @@ main options:
|
|||
For more information, see:
|
||||
* https://www.hellorust.com/
|
||||
|
||||
|
||||
This backend does not yet support debug info. Full DWARF support needs a
|
||||
design for how DWARF should be represented in WebAssembly. Sourcemap support
|
||||
has an existing design and some corresponding browser implementations, so it
|
||||
just needs implementing in LLVM.
|
||||
|
||||
Work-in-progress documentation for the ".o" file format is here:
|
||||
|
||||
* https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md
|
||||
|
||||
A corresponding linker implementation is also under development:
|
||||
|
||||
* https://lld.llvm.org/WebAssembly.html
|
||||
|
||||
For more information on WebAssembly itself, see the home page:
|
||||
* https://webassembly.github.io/
|
||||
|
||||
The following documents contain some information on the semantics and binary
|
||||
encoding of WebAssembly itself:
|
||||
* https://github.com/WebAssembly/design/blob/master/Semantics.md
|
||||
* https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md
|
||||
|
||||
The backend is built, tested and archived on the following waterfall:
|
||||
https://wasm-stat.us
|
||||
|
||||
The backend's bringup is done in part by using the GCC torture test suite, since
|
||||
it doesn't require C library support. Current known failures are in
|
||||
known_gcc_test_failures.txt, all other tests should pass. The waterfall will
|
||||
turn red if not. Once most of these pass, further testing will use LLVM's own
|
||||
test suite. The tests can be run locally using:
|
||||
https://github.com/WebAssembly/waterfall/blob/master/src/compile_torture_tests.py
|
||||
|
||||
Some notes on ways that the generated code could be improved follow:
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
|
Loading…
Reference in New Issue