mirror of
https://github.com/mii443/wasmer.git
synced 2025-12-03 03:08:22 +00:00
Simplified the repo docs. Added BUILD and TEST docs
This commit is contained in:
@@ -1 +0,0 @@
|
|||||||
FROM rust:1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Wasmer dev environment",
|
|
||||||
"dockerFile": "Dockerfile",
|
|
||||||
|
|
||||||
// Set *default* container specific settings.json values on container create.
|
|
||||||
"settings": {
|
|
||||||
"terminal.integrated.shell.linux": "/bin/bash",
|
|
||||||
"lldb.executable": "/usr/bin/lldb"
|
|
||||||
},
|
|
||||||
|
|
||||||
// Add the IDs of extensions you want installed when the container is created.
|
|
||||||
"extensions": [
|
|
||||||
"rust-lang.rust-analyzer",
|
|
||||||
"dtsvet.vscode-wasm",
|
|
||||||
"bungcip.better-toml",
|
|
||||||
"vadimcn.vscode-lldb"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
[cranelift_coverage]
|
|
||||||
features = "cranelift,singlepass,llvm,coverage,test-cranelift,test-jit"
|
|
||||||
examples = ["early-exit", "engine-jit", "engine-native", "engine-headless", "cross-compilation", "compiler-cranelift", "exported-function", "wasi"]
|
|
||||||
release = true
|
|
||||||
|
|
||||||
[llvm_coverage]
|
|
||||||
features = "cranelift,singlepass,llvm,coverage,test-llvm,test-jit"
|
|
||||||
examples = ["compiler-llvm"]
|
|
||||||
release = true
|
|
||||||
|
|
||||||
[singlepass_coverage]
|
|
||||||
features = "cranelift,singlepass,llvm,coverage,test-singlepass,test-jit"
|
|
||||||
examples = ["compiler-singlepass"]
|
|
||||||
release = true
|
|
||||||
|
|
||||||
[report]
|
|
||||||
out = ["Xml"]
|
|
||||||
13
.vscode/settings.json
vendored
13
.vscode/settings.json
vendored
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"[toml]": {
|
|
||||||
"editor.formatOnSave": false,
|
|
||||||
"editor.formatOnPaste": false,
|
|
||||||
"editor.formatOnType": false
|
|
||||||
},
|
|
||||||
"[rust]": {
|
|
||||||
"editor.formatOnSave": true,
|
|
||||||
"editor.formatOnPaste": false,
|
|
||||||
"editor.formatOnType": false
|
|
||||||
},
|
|
||||||
"rust-analyzer.showUnlinkedFileNotification": false
|
|
||||||
}
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
# Contributor Covenant Code of Conduct
|
|
||||||
|
|
||||||
## Our Pledge
|
|
||||||
|
|
||||||
In the interest of fostering an open and welcoming environment, we as
|
|
||||||
contributors and maintainers pledge to making participation in our project and
|
|
||||||
our community a harassment-free experience for everyone, regardless of age, body
|
|
||||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
|
||||||
level of experience, education, socio-economic status, nationality, personal
|
|
||||||
appearance, race, religion, or sexual identity and orientation.
|
|
||||||
|
|
||||||
## Our Standards
|
|
||||||
|
|
||||||
Examples of behavior that contributes to creating a positive environment
|
|
||||||
include:
|
|
||||||
|
|
||||||
* Using welcoming and inclusive language
|
|
||||||
* Being respectful of differing viewpoints and experiences
|
|
||||||
* Gracefully accepting constructive criticism
|
|
||||||
* Focusing on what is best for the community
|
|
||||||
* Showing empathy towards other community members
|
|
||||||
|
|
||||||
Examples of unacceptable behavior by participants include:
|
|
||||||
|
|
||||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
|
||||||
advances
|
|
||||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
|
||||||
* Public or private harassment
|
|
||||||
* Publishing others' private information, such as a physical or electronic
|
|
||||||
address, without explicit permission
|
|
||||||
* Other conduct which could reasonably be considered inappropriate in a
|
|
||||||
professional setting
|
|
||||||
|
|
||||||
## Our Responsibilities
|
|
||||||
|
|
||||||
Project maintainers are responsible for clarifying the standards of acceptable
|
|
||||||
behavior and are expected to take appropriate and fair corrective action in
|
|
||||||
response to any instances of unacceptable behavior.
|
|
||||||
|
|
||||||
Project maintainers have the right and responsibility to remove, edit, or
|
|
||||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
|
||||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
|
||||||
permanently any contributor for other behaviors that they deem inappropriate,
|
|
||||||
threatening, offensive, or harmful.
|
|
||||||
|
|
||||||
## Scope
|
|
||||||
|
|
||||||
This Code of Conduct applies both within project spaces and in public spaces
|
|
||||||
when an individual is representing the project or its community. Examples of
|
|
||||||
representing a project or community include using an official project e-mail
|
|
||||||
address, posting via an official social media account, or acting as an appointed
|
|
||||||
representative at an online or offline event. Representation of a project may be
|
|
||||||
further defined and clarified by project maintainers.
|
|
||||||
|
|
||||||
## Enforcement
|
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
||||||
reported by contacting the project team at contact@wasmer.io. All
|
|
||||||
complaints will be reviewed and investigated and will result in a response that
|
|
||||||
is deemed necessary and appropriate to the circumstances. The project team is
|
|
||||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
|
||||||
Further details of specific enforcement policies may be posted separately.
|
|
||||||
|
|
||||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
|
||||||
faith may face temporary or permanent repercussions as determined by other
|
|
||||||
members of the project's leadership.
|
|
||||||
|
|
||||||
## Attribution
|
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
|
||||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
|
||||||
|
|
||||||
[homepage]: https://www.contributor-covenant.org
|
|
||||||
|
|
||||||
For answers to common questions about this code of conduct, see
|
|
||||||
https://www.contributor-covenant.org/faq
|
|
||||||
4
Makefile
4
Makefile
@@ -850,14 +850,14 @@ untar-wasmer:
|
|||||||
|
|
||||||
distribution-gnu: package-capi
|
distribution-gnu: package-capi
|
||||||
cp LICENSE package/LICENSE
|
cp LICENSE package/LICENSE
|
||||||
cp ATTRIBUTIONS.md package/ATTRIBUTIONS
|
cp docs/ATTRIBUTIONS.md package/ATTRIBUTIONS
|
||||||
mkdir -p dist
|
mkdir -p dist
|
||||||
tar -C package -zcvf wasmer.tar.gz lib include winsdk LICENSE ATTRIBUTIONS
|
tar -C package -zcvf wasmer.tar.gz lib include winsdk LICENSE ATTRIBUTIONS
|
||||||
mv wasmer.tar.gz dist/
|
mv wasmer.tar.gz dist/
|
||||||
|
|
||||||
distribution: package
|
distribution: package
|
||||||
cp LICENSE package/LICENSE
|
cp LICENSE package/LICENSE
|
||||||
cp ATTRIBUTIONS.md package/ATTRIBUTIONS
|
cp docs/ATTRIBUTIONS.md package/ATTRIBUTIONS
|
||||||
mkdir -p dist
|
mkdir -p dist
|
||||||
ifeq ($(IS_WINDOWS), 1)
|
ifeq ($(IS_WINDOWS), 1)
|
||||||
iscc scripts/windows-installer/wasmer.iss
|
iscc scripts/windows-installer/wasmer.iss
|
||||||
|
|||||||
@@ -219,6 +219,15 @@ languages** with the Wasmer SDK:
|
|||||||
[OCaml integration]: https://github.com/wasmerio/wasmer-ocaml
|
[OCaml integration]: https://github.com/wasmerio/wasmer-ocaml
|
||||||
[`wasmer` OCaml package]: https://opam.ocaml.org/packages/wasmer/
|
[`wasmer` OCaml package]: https://opam.ocaml.org/packages/wasmer/
|
||||||
|
|
||||||
|
## Develop
|
||||||
|
|
||||||
|
We have different guides to help you develop Wasmer:
|
||||||
|
|
||||||
|
* [Build Wasmer from Source](./docs/BUILD.md)
|
||||||
|
* [Testing](./docs/TEST.md)
|
||||||
|
* [Security advisory](./docs/SECURITY.md)
|
||||||
|
|
||||||
|
|
||||||
## Contribute
|
## Contribute
|
||||||
|
|
||||||
We appreciate your help! 💜
|
We appreciate your help! 💜
|
||||||
|
|||||||
143
docs/BUILD.md
Normal file
143
docs/BUILD.md
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
# Building Wasmer from Source
|
||||||
|
|
||||||
|
## Installing Rustup
|
||||||
|
|
||||||
|
Building Wasmer from source requires [Rust](https://rustup.rs/) **1.67+**.
|
||||||
|
|
||||||
|
The easiest way to install Rust on your system is via Rustup. To get Rustup on Linux and macOS, you can run the following:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl https://sh.rustup.rs -sSf | sh
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> To install Rust on Windows, download and run [rustup-init.exe](https://win.rustup.rs/), then follow the on-screen instructions.
|
||||||
|
|
||||||
|
## Installing Additional Dependencies
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
Windows is fully supported by Wasmer. WASI is also fully supported, but Emscripten support is still experimental.
|
||||||
|
|
||||||
|
1. Install [Visual Studio](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=15)
|
||||||
|
2. Install [Rust for Windows](https://win.rustup.rs/)
|
||||||
|
3. Install [Git for Windows](https://git-scm.com/download/win). Allow it to add `git.exe` to your PATH (default settings for the installer are fine).
|
||||||
|
4. \(optional\) Install [LLVM 11.0](https://prereleases.llvm.org/win-snapshots/LLVM-11.0.0-2663a25f-win64.exe)
|
||||||
|
|
||||||
|
## Building the Wasmer Runtime
|
||||||
|
|
||||||
|
Wasmer is built with [Cargo](https://crates.io/), the Rust package manager.
|
||||||
|
|
||||||
|
First, let's clone Wasmer:
|
||||||
|
|
||||||
|
```text
|
||||||
|
git clone https://github.com/wasmerio/wasmer.git
|
||||||
|
cd wasmer
|
||||||
|
```
|
||||||
|
|
||||||
|
Wasmer supports three different compilers at the moment:
|
||||||
|
|
||||||
|
### Singlepass Compiler
|
||||||
|
|
||||||
|
Build Wasmer:
|
||||||
|
|
||||||
|
```text
|
||||||
|
make build-wasmer
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note**: you should see this `Enabled Compilers: singlepass` in console.
|
||||||
|
|
||||||
|
You may disable Singlepass compiler with `export ENABLE_SINGLEPASS=0`.
|
||||||
|
|
||||||
|
### Cranelift Compiler
|
||||||
|
|
||||||
|
The Cranelift compiler will work if you are on a X86 or ARM machine. It will be detected automatically, so you don't need to do anything to your system to enable it.
|
||||||
|
|
||||||
|
```text
|
||||||
|
make build-wasmer
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note**: should see this as the first line in the console:
|
||||||
|
`Enabled Compilers: cranelift`
|
||||||
|
|
||||||
|
You may disable the Cranelift compiler with `export ENABLE_CRANELIFT=0`.
|
||||||
|
|
||||||
|
### LLVM Compiler
|
||||||
|
|
||||||
|
If you want support for the Wasmer LLVM compiler, then you will also need to ensure:
|
||||||
|
|
||||||
|
* Ensure that LLVM 10.0.x > is installed on your system
|
||||||
|
* You can refer to [LLVM install instructions](https://github.com/wasmerio/wasmer/tree/master/lib/compiler-llvm#requirements)
|
||||||
|
* You can also [download and use a prebuilt LLVM binary](https://releases.llvm.org/download.html)
|
||||||
|
* In case `llvm-config` is not accessible, set the correct environment variable for LLVM to access: For example, the environment variable for LLVM 11.0.x would be: `LLVM_SYS_110_PREFIX=/path/to/unpacked/llvm-11.0`
|
||||||
|
|
||||||
|
And create a Wasmer release
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make build-wasmer
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note**: you should see this in the console:
|
||||||
|
`Enabled Compilers: llvm`
|
||||||
|
|
||||||
|
You may disable the LLVM compiler with `export ENABLE_LLVM=0`.
|
||||||
|
|
||||||
|
### All compilers
|
||||||
|
|
||||||
|
Once you have LLVM and Rust, you can just run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make build-wasmer
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note**: you should see this in the console:
|
||||||
|
`Enabled Compilers: singlepass cranelift llvm`
|
||||||
|
|
||||||
|
## Running your Wasmer binary
|
||||||
|
|
||||||
|
Once you run the `make build-wasmer` command, you will have a new binary ready to be used!
|
||||||
|
|
||||||
|
```text
|
||||||
|
./target/release/wasmer quickjs.wasm
|
||||||
|
```
|
||||||
|
|
||||||
|
## Building Wasmer C-API from source
|
||||||
|
|
||||||
|
Wasmer provides a pre-compiled version for the C-API on its [release page](https://github.com/wasmerio/wasmer/releases).
|
||||||
|
|
||||||
|
However, you can also compile the shared library from source:
|
||||||
|
|
||||||
|
```text
|
||||||
|
make build-capi
|
||||||
|
```
|
||||||
|
|
||||||
|
This will generate the shared library (depending on your system):
|
||||||
|
|
||||||
|
* Windows: `target/release/libwasmer_c_api.dll`
|
||||||
|
* macOS: `target/release/libwasmer_c_api.dylib`
|
||||||
|
* Linux: `target/release/libwasmer_c_api.so`
|
||||||
|
|
||||||
|
If you want to generate the library and headers for using them easily, you can execute:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make package-capi
|
||||||
|
```
|
||||||
|
|
||||||
|
This command will generate a `package` directory, that you can then use easily in the [Wasmer C API examples](./).
|
||||||
|
|
||||||
|
```text
|
||||||
|
package/
|
||||||
|
lib/
|
||||||
|
libwasmer.so
|
||||||
|
headers/
|
||||||
|
wasm.h
|
||||||
|
wasmer.h
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
>
|
||||||
|
> By default, the Wasmer C API shared library will include all the backends available in the system where is built.
|
||||||
|
> Defaulting to `cranelift` if available.
|
||||||
|
>
|
||||||
|
> You can generate the C-API for a specific compiler and engine with:
|
||||||
|
> `make build-capi-{ENGINE}`
|
||||||
22
docs/TEST.md
Normal file
22
docs/TEST.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Testing
|
||||||
|
|
||||||
|
Thanks to [WebAssembly spec tests](https://github.com/wasmerio/wasmer/tree/master/lib/spectests/spectests) we can ensure 100% compatibility with the WebAssembly spec test suite.
|
||||||
|
|
||||||
|
You can run all the tests with:
|
||||||
|
|
||||||
|
```text
|
||||||
|
make test
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!INFO]
|
||||||
|
> `make test` will automatically detect the compilers available on your system.
|
||||||
|
>
|
||||||
|
> Please follow the [Building from Source](./BUILD.md) guide see how you can[ prepare your system with the requirements needed for each of the backends](./#all-backends-default).
|
||||||
|
|
||||||
|
## Testing Compilers
|
||||||
|
|
||||||
|
Each compiler integration can be tested separately:
|
||||||
|
|
||||||
|
* **Singlepass**: `make test-singlepass`
|
||||||
|
* **Cranelift**: `make test-cranelift`
|
||||||
|
* **LLVM**: `make test-llvm`
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
wasmer:
|
|
||||||
language: rust
|
|
||||||
features:
|
|
||||||
- universal
|
|
||||||
- cranelift
|
|
||||||
- singlepass
|
|
||||||
deps:
|
|
||||||
- run: apt update
|
|
||||||
- run: apt install -y zlib1g-dev libffi-dev build-essential
|
|
||||||
@@ -33,4 +33,4 @@ attributions of the project.
|
|||||||
[example]: https://github.com/wasmerio/wasmer/blob/main/examples/compiler_cranelift.rs
|
[example]: https://github.com/wasmerio/wasmer/blob/main/examples/compiler_cranelift.rs
|
||||||
[`wasmer-compiler-llvm`]: https://github.com/wasmerio/wasmer/tree/main/lib/compiler-llvm
|
[`wasmer-compiler-llvm`]: https://github.com/wasmerio/wasmer/tree/main/lib/compiler-llvm
|
||||||
[`cranelift-wasm`]: https://crates.io/crates/cranelift-wasm
|
[`cranelift-wasm`]: https://crates.io/crates/cranelift-wasm
|
||||||
[Wasmer `ATTRIBUTIONS`]: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
[Wasmer `ATTRIBUTIONS`]: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
use cranelift_codegen::Context;
|
use cranelift_codegen::Context;
|
||||||
use cranelift_codegen::MachSrcLoc;
|
use cranelift_codegen::MachSrcLoc;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
use crate::translator::{
|
use crate::translator::{
|
||||||
type_to_irtype, FuncEnvironment as BaseFuncEnvironment, GlobalVariable, TargetEnvironment,
|
type_to_irtype, FuncEnvironment as BaseFuncEnvironment, GlobalVariable, TargetEnvironment,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! A trampoline generator for calling dynamic host functions from Wasm.
|
//! A trampoline generator for calling dynamic host functions from Wasm.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! A trampoline generator for calling Wasm functions easily.
|
//! A trampoline generator for calling Wasm functions easily.
|
||||||
//!
|
//!
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! This module contains the bulk of the interesting code performing the translation between
|
//! This module contains the bulk of the interesting code performing the translation between
|
||||||
//! WebAssembly bytecode and Cranelift IR.
|
//! WebAssembly bytecode and Cranelift IR.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! All the runtime support necessary for the wasm to cranelift translation is formalized by the
|
//! All the runtime support necessary for the wasm to cranelift translation is formalized by the
|
||||||
//! traits `FunctionEnvMutironment`.
|
//! traits `FunctionEnvMutironment`.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! WebAssembly module and function translation state.
|
//! WebAssembly module and function translation state.
|
||||||
//!
|
//!
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Standalone WebAssembly to Cranelift IR translator.
|
//! Standalone WebAssembly to Cranelift IR translator.
|
||||||
//!
|
//!
|
||||||
|
|||||||
@@ -53,4 +53,4 @@ attributions of the project.
|
|||||||
|
|
||||||
|
|
||||||
[`cranelift-wasm`]: https://crates.io/crates/cranelift-wasm
|
[`cranelift-wasm`]: https://crates.io/crates/cranelift-wasm
|
||||||
[Wasmer `ATTRIBUTIONS`]: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
[Wasmer `ATTRIBUTIONS`]: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Memory management for executable code.
|
//! Memory management for executable code.
|
||||||
use super::unwind::UnwindRegistry;
|
use super::unwind::UnwindRegistry;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Module for System V ABI unwind registry.
|
//! Module for System V ABI unwind registry.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Module for Windows x64 ABI unwind registry.
|
//! Module for Windows x64 ABI unwind registry.
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
use super::state::ModuleTranslationState;
|
use super::state::ModuleTranslationState;
|
||||||
use crate::lib::std::string::ToString;
|
use crate::lib::std::string::ToString;
|
||||||
use crate::lib::std::{boxed::Box, string::String, vec::Vec};
|
use crate::lib::std::{boxed::Box, string::String, vec::Vec};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Translation skeleton that traverses the whole WebAssembly module and call helper functions
|
//! Translation skeleton that traverses the whole WebAssembly module and call helper functions
|
||||||
//! to deal with each part of it.
|
//! to deal with each part of it.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Helper functions to gather information for each of the non-function sections of a
|
//! Helper functions to gather information for each of the non-function sections of a
|
||||||
//! WebAssembly module.
|
//! WebAssembly module.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
use std::boxed::Box;
|
use std::boxed::Box;
|
||||||
use wasmer_types::entity::PrimaryMap;
|
use wasmer_types::entity::PrimaryMap;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
io::{self, Read, Write},
|
io::{self, Read, Write},
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//!
|
//!
|
||||||
//! `Memory` is to WebAssembly linear memories what `Table` is to WebAssembly tables.
|
//! `Memory` is to WebAssembly linear memories what `Table` is to WebAssembly tables.
|
||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
use std::{cell::UnsafeCell, convert::TryInto, ptr::NonNull, rc::Rc, sync::RwLock};
|
use std::{cell::UnsafeCell, convert::TryInto, ptr::NonNull, rc::Rc, sync::RwLock};
|
||||||
|
|
||||||
|
|||||||
@@ -25,4 +25,4 @@ Among other things, it defines the following _types_:
|
|||||||
This project borrowed some of the code for the entity structure from [cranelift-entity](https://crates.io/crates/cranelift-entity).
|
This project borrowed some of the code for the entity structure from [cranelift-entity](https://crates.io/crates/cranelift-entity).
|
||||||
We decided to move it here to help on serialization/deserialization.
|
We decided to move it here to help on serialization/deserialization.
|
||||||
|
|
||||||
Please check [Wasmer ATTRIBUTIONS](https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md) to further see licenses and other attributions of the project.
|
Please check [Wasmer ATTRIBUTIONS](https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md) to further see licenses and other attributions of the project.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! A `Compilation` contains the compiled function bodies for a WebAssembly
|
//! A `Compilation` contains the compiled function bodies for a WebAssembly
|
||||||
//! module (`CompiledFunction`).
|
//! module (`CompiledFunction`).
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Boxed slices for `PrimaryMap`.
|
//! Boxed slices for `PrimaryMap`.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! A double-ended iterator over entity references and entities.
|
//! A double-ended iterator over entity references and entities.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! A double-ended iterator over entity references.
|
//! A double-ended iterator over entity references.
|
||||||
//!
|
//!
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
/// A type wrapping a small integer index should implement `EntityRef` so it can be used as the key
|
/// A type wrapping a small integer index should implement `EntityRef` so it can be used as the key
|
||||||
/// of an `SecondaryMap` or `SparseMap`.
|
/// of an `SecondaryMap` or `SparseMap`.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Compact representation of `Option<T>` for types with a reserved value.
|
//! Compact representation of `Option<T>` for types with a reserved value.
|
||||||
//!
|
//!
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Densely numbered entity references as mapping keys.
|
//! Densely numbered entity references as mapping keys.
|
||||||
use crate::entity::boxed_slice::BoxedSlice;
|
use crate::entity::boxed_slice::BoxedSlice;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Densely numbered entity references as mapping keys.
|
//! Densely numbered entity references as mapping keys.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Data structure for representing WebAssembly modules in a
|
//! Data structure for representing WebAssembly modules in a
|
||||||
//! `wasmer::Module`.
|
//! `wasmer::Module`.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Source locations.
|
//! Source locations.
|
||||||
//!
|
//!
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Trap codes describing the reason for a trap.
|
//! Trap codes describing the reason for a trap.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Offsets and sizes of various structs in wasmer-vm's vmcontext
|
//! Offsets and sizes of various structs in wasmer-vm's vmcontext
|
||||||
//! module.
|
//! module.
|
||||||
|
|||||||
@@ -22,4 +22,4 @@ directly. The `wasmer` crate provides types that embed types from
|
|||||||
|
|
||||||
This project borrowed some of the code for the VM structure and trapping from the [wasmtime-runtime](https://crates.io/crates/wasmtime-runtime).
|
This project borrowed some of the code for the VM structure and trapping from the [wasmtime-runtime](https://crates.io/crates/wasmtime-runtime).
|
||||||
|
|
||||||
Please check [Wasmer ATTRIBUTIONS](https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md) to further see licenses and other attributions of the project.
|
Please check [Wasmer ATTRIBUTIONS](https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md) to further see licenses and other attributions of the project.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
use crate::global::VMGlobal;
|
use crate::global::VMGlobal;
|
||||||
use crate::memory::VMMemory;
|
use crate::memory::VMMemory;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
use crate::vmcontext::{VMFunctionImport, VMGlobalImport, VMMemoryImport, VMTableImport};
|
use crate::vmcontext::{VMFunctionImport, VMGlobalImport, VMMemoryImport, VMTableImport};
|
||||||
use wasmer_types::entity::{BoxedSlice, PrimaryMap};
|
use wasmer_types::entity::{BoxedSlice, PrimaryMap};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! An `Instance` contains all the runtime state used by execution of
|
//! An `Instance` contains all the runtime state used by execution of
|
||||||
//! a WebAssembly module (except its callstack and register state). An
|
//! a WebAssembly module (except its callstack and register state). An
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Runtime library calls.
|
//! Runtime library calls.
|
||||||
//!
|
//!
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Memory management for linear memories.
|
//! Memory management for linear memories.
|
||||||
//!
|
//!
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Low-level abstraction for allocating and managing zero-filled pages
|
//! Low-level abstraction for allocating and managing zero-filled pages
|
||||||
//! of memory.
|
//! of memory.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! This section defines the `PROBESTACK` intrinsic which is used in the
|
//! This section defines the `PROBESTACK` intrinsic which is used in the
|
||||||
//! implementation of "stack probes" on certain platforms.
|
//! implementation of "stack probes" on certain platforms.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Implement a registry of function signatures, for fast indirect call
|
//! Implement a registry of function signatures, for fast indirect call
|
||||||
//! signature checking.
|
//! signature checking.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! Memory management for tables.
|
//! Memory management for tables.
|
||||||
//!
|
//!
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! This is the module that facilitates the usage of Traps
|
//! This is the module that facilitates the usage of Traps
|
||||||
//! in Wasmer Runtime
|
//! in Wasmer Runtime
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! WebAssembly trap handling, which is built on top of the lower-level
|
//! WebAssembly trap handling, which is built on top of the lower-level
|
||||||
//! signalhandling mechanisms.
|
//! signalhandling mechanisms.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file contains code from external sources.
|
// This file contains code from external sources.
|
||||||
// Attributions: https://github.com/wasmerio/wasmer/blob/main/ATTRIBUTIONS.md
|
// Attributions: https://github.com/wasmerio/wasmer/blob/main/docs/ATTRIBUTIONS.md
|
||||||
|
|
||||||
//! This file declares `VMContext` and several related structs which contain
|
//! This file declares `VMContext` and several related structs which contain
|
||||||
//! fields that compiled wasm code accesses directly.
|
//! fields that compiled wasm code accesses directly.
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
# Nightly only, sadly.
|
|
||||||
# Need to wait until they are stabilised.
|
|
||||||
# imports_granularity = "Crate"
|
|
||||||
# group_imports = "StdExternalCrate"
|
|
||||||
# reorder_imports = true
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user