From d93d878aa4f9d9863072f0383589613099ccbe6d Mon Sep 17 00:00:00 2001
From: Syrus
Date: Wed, 19 Feb 2020 18:53:03 -0800
Subject: [PATCH 01/22] Fixed runtime doc links
---
lib/runtime-c-api/Cargo.toml | 1 +
lib/runtime/Cargo.toml | 1 -
2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/runtime-c-api/Cargo.toml b/lib/runtime-c-api/Cargo.toml
index ee6b3c6cb..0fc3710b3 100644
--- a/lib/runtime-c-api/Cargo.toml
+++ b/lib/runtime-c-api/Cargo.toml
@@ -2,6 +2,7 @@
name = "wasmer-runtime-c-api"
version = "0.13.1"
description = "Wasmer C API library"
+documentation = "https://wasmerio.github.io/wasmer/c/runtime-c-api/"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
repository = "https://github.com/wasmerio/wasmer"
diff --git a/lib/runtime/Cargo.toml b/lib/runtime/Cargo.toml
index a8dd63dbc..432f2b5a9 100644
--- a/lib/runtime/Cargo.toml
+++ b/lib/runtime/Cargo.toml
@@ -2,7 +2,6 @@
name = "wasmer-runtime"
version = "0.13.1"
description = "Wasmer runtime library"
-documentation = "https://wasmerio.github.io/wasmer/c/runtime-c-api/"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
repository = "https://github.com/wasmerio/wasmer"
From 40fb54c58fdf8a5621157a68e31d05d00bf70110 Mon Sep 17 00:00:00 2001
From: Syrus
Date: Wed, 19 Feb 2020 18:54:32 -0800
Subject: [PATCH 02/22] Improved Wasmer C API artifacts
---
Makefile | 27 ++++++++++++++
azure-pipelines.yml | 17 +++------
lib/runtime-c-api/distribution/README.md | 25 +++++++++++++
scripts/capi-name.sh | 46 ++++++++++++++++++++++++
4 files changed, 102 insertions(+), 13 deletions(-)
create mode 100644 lib/runtime-c-api/distribution/README.md
create mode 100755 scripts/capi-name.sh
diff --git a/Makefile b/Makefile
index 6e34078af..c5a1dce0b 100644
--- a/Makefile
+++ b/Makefile
@@ -294,6 +294,33 @@ build-install:
cp ./target/release/wasmer ./install/bin/
tar -C ./install -zcvf wasmer.tar.gz bin/wapm bin/wasmer
+UNAME_S := $(shell uname -s)
+
+build-capi:
+ mkdir -p ./capi/
+ mkdir -p ./capi/include
+ mkdir -p ./capi/lib
+
+ifeq ($(OS), Windows_NT)
+ cp target/release/libwasmer_runtime_c_api.dll ./capi/lib/wasmer.dll
+ cp target/release/libwasmer_runtime_c_api.lib ./capi/lib/wasmer.lib
+else
+ifeq ($(UNAME_S), Darwin)
+ cp target/release/libwasmer_runtime_c_api.dylib ./capi/lib/libwasmer.dylib
+ cp target/release/libwasmer_runtime_c_api.dylib ./capi/lib/libwasmer.a
+ # Fix the rpath for the dylib
+ install_name_tool -id "@rpath/libwasmer.dylib" ./capi/lib/libwasmer.dylib
+else
+ cp target/release/libwasmer_runtime_c_api.so ./capi/lib/libwasmer.so
+ cp target/release/libwasmer_runtime_c_api.a ./capi/lib/libwasmer.a
+endif
+endif
+
+ find target/release/build -name 'wasmer.h*' -exec cp {} ./capi/include ';'
+ cp LICENSE ./capi/LICENSE
+ cp lib/runtime-c-api/distribution/* ./capi/
+ tar -C ./capi -zcvf wasmer-c-api.tar.gz lib include README.md LICENSE
+
# For installing the contents locally
do-install:
tar -C ~/.wasmer -zxvf wasmer.tar.gz
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 9e42676cf..b202ca5b8 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -213,21 +213,12 @@ jobs:
condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT')))
- bash: |
make capi
- cp target/release/libwasmer_runtime_c_api.so ./artifacts
- find target/release/build -name 'wasmer.h*' -exec cp {} ./artifacts ';'
- displayName: Build c-api (Linux)
+ displayName: Build c-api
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))
- bash: |
- make capi
- install_name_tool -id "@rpath/libwasmer_runtime_c_api.dylib" target/release/libwasmer_runtime_c_api.dylib
- cp target/release/libwasmer_runtime_c_api.dylib ./artifacts
- displayName: Build c-api (Darwin)
- condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'))
- - bash: |
- make capi
- cp target/release/wasmer_runtime_c_api.dll ./artifacts
- displayName: Build c-api (Windows)
- condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
+ make build-capi
+ cp ./wasmer-c-api.tar.gz ./artifacts/$(./scripts/capi-name.sh)
+ displayName: Build c-api artifacts
- publish: $(System.DefaultWorkingDirectory)/artifacts
artifact: library-$(Agent.OS)
diff --git a/lib/runtime-c-api/distribution/README.md b/lib/runtime-c-api/distribution/README.md
new file mode 100644
index 000000000..1751be531
--- /dev/null
+++ b/lib/runtime-c-api/distribution/README.md
@@ -0,0 +1,25 @@
+# Wasmer C API
+
+This is the [Wasmer WebAssembly Runtime](https://wasmer.io) shared library.
+You can use it in any C/C++ projects.
+
+This directory is structured like the following:
+* `lib` is where the Wasmer shared library lives.
+* `include` is where the Wasmer headers live
+
+## Using it
+
+If you want to compile a `c` file using Wasmer, you can do:
+
+```bash
+clang YOUR_FILE -Iinclude -lwasmer -Llib
+```
+
+> Note: append ` -rpath lib` if you are in macOS.
+
+## Examples
+
+You can check examples of how to use the Wasmer C API here:
+
+https://docs.wasmer.io/integrations/c/examples
+
diff --git a/scripts/capi-name.sh b/scripts/capi-name.sh
new file mode 100755
index 000000000..08b508e46
--- /dev/null
+++ b/scripts/capi-name.sh
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+initArch() {
+ ARCH=$(uname -m)
+ if [ -n "$WASMER_ARCH" ]; then
+ ARCH="$WASMER_ARCH"
+ fi
+ # If you modify this list, please also modify install.sh
+ case $ARCH in
+ amd64) ARCH="amd64";;
+ x86_64) ARCH="amd64";;
+ aarch64) ARCH="arm64";;
+ i386) ARCH="386";;
+ *) echo "Architecture ${ARCH} is not supported by this installation script"; exit 1;;
+ esac
+}
+
+initOS() {
+ OS=$(uname | tr '[:upper:]' '[:lower:]')
+ if [ -n "$WASMER_OS" ]; then
+ echo "Using WASMER_OS"
+ OS="$WASMER_OS"
+ fi
+ case "$OS" in
+ darwin) OS='darwin';;
+ linux) OS='linux';;
+ freebsd) OS='freebsd';;
+ # mingw*) OS='windows';;
+ # msys*) OS='windows';;
+ *) echo "OS ${OS} is not supported by this installation script"; exit 1;;
+ esac
+}
+
+# identify platform based on uname output
+initArch
+initOS
+
+# determine install directory if required
+BINARY="wasmer-c-api-${OS}-${ARCH}.tar.gz"
+
+# add .exe if on windows
+# if [ "$OS" = "windows" ]; then
+# BINARY="$BINARY.exe"
+# fi
+
+echo "${BINARY}"
From 0b5064694f3c06f1689bc201285d3cd02f9c5fa9 Mon Sep 17 00:00:00 2001
From: Syrus
Date: Wed, 19 Feb 2020 18:55:18 -0800
Subject: [PATCH 03/22] Ignore the capi folder
---
.gitignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.gitignore b/.gitignore
index 21ab53e28..1dfea1e5e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,5 +5,6 @@
.idea
**/.vscode
install/
+capi/
api-docs/
api-docs-repo/
From edeabd419bc459c276a6ec4eca58fda0cf2bd033 Mon Sep 17 00:00:00 2001
From: Syrus
Date: Wed, 19 Feb 2020 18:58:22 -0800
Subject: [PATCH 04/22] Add links for API Docs
---
lib/runtime-c-api/distribution/README.md | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/lib/runtime-c-api/distribution/README.md b/lib/runtime-c-api/distribution/README.md
index 1751be531..bb1689ee0 100644
--- a/lib/runtime-c-api/distribution/README.md
+++ b/lib/runtime-c-api/distribution/README.md
@@ -7,7 +7,14 @@ This directory is structured like the following:
* `lib` is where the Wasmer shared library lives.
* `include` is where the Wasmer headers live
-## Using it
+## Documentation
+
+The API documentation for the Wasmer Runtime C API can be found here:
+
+https://wasmerio.github.io/wasmer/c/runtime-c-api/
+
+
+## Usage
If you want to compile a `c` file using Wasmer, you can do:
From 6d0efd274aef0e6a7699c181be2f733e9cee79e0 Mon Sep 17 00:00:00 2001
From: Syrus
Date: Wed, 19 Feb 2020 19:03:22 -0800
Subject: [PATCH 05/22] Updated changelog
---
CHANGELOG.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fb7cce41a..16b7e90ef 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
## **[Unreleased]**
+- [#1233](https://github.com/wasmerio/wasmer/pull/1233) Improved Wasmer C API release artifacts.
- [#787](https://github.com/wasmerio/wasmer/pull/787) New crate `wasmer-interface-types` to implement WebAssembly Interface Types.
- [#1213](https://github.com/wasmerio/wasmer/pull/1213) Fixed WASI `fdstat` to detect `isatty` properly.
- [#1192](https://github.com/wasmerio/wasmer/pull/1192) Use `ExceptionCode` for error representation.
From b31d8d73d89b1fce91339ff05052d744323bf76c Mon Sep 17 00:00:00 2001
From: Syrus
Date: Wed, 19 Feb 2020 21:39:10 -0800
Subject: [PATCH 06/22] Fixed windows library
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index c5a1dce0b..a8df5cd28 100644
--- a/Makefile
+++ b/Makefile
@@ -302,8 +302,8 @@ build-capi:
mkdir -p ./capi/lib
ifeq ($(OS), Windows_NT)
- cp target/release/libwasmer_runtime_c_api.dll ./capi/lib/wasmer.dll
- cp target/release/libwasmer_runtime_c_api.lib ./capi/lib/wasmer.lib
+ cp target/release/wasmer_runtime_c_api.dll ./capi/lib/wasmer.dll
+ cp target/release/wasmer_runtime_c_api.lib ./capi/lib/wasmer.lib
else
ifeq ($(UNAME_S), Darwin)
cp target/release/libwasmer_runtime_c_api.dylib ./capi/lib/libwasmer.dylib
From f0abcb0a7a34d6480ee1bbcd9f9a565f40606baa Mon Sep 17 00:00:00 2001
From: Syrus
Date: Wed, 19 Feb 2020 21:49:47 -0800
Subject: [PATCH 07/22] Fixing C api creation only for Linux
---
azure-pipelines.yml | 1 -
1 file changed, 1 deletion(-)
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index b202ca5b8..112d2da8e 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -214,7 +214,6 @@ jobs:
- bash: |
make capi
displayName: Build c-api
- condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))
- bash: |
make build-capi
cp ./wasmer-c-api.tar.gz ./artifacts/$(./scripts/capi-name.sh)
From 1d9741b856d5985a1d69764aa5058f025b4d3772 Mon Sep 17 00:00:00 2001
From: Syrus
Date: Wed, 19 Feb 2020 23:14:10 -0800
Subject: [PATCH 08/22] Fixed make capi script in windows
---
azure-pipelines.yml | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 112d2da8e..f94f5ec31 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -217,7 +217,21 @@ jobs:
- bash: |
make build-capi
cp ./wasmer-c-api.tar.gz ./artifacts/$(./scripts/capi-name.sh)
- displayName: Build c-api artifacts
+ displayName: Build c-api artifacts (Unix)
+ condition: |
+ and(
+ succeeded(),
+ not(eq(variables['Agent.OS'], 'Windows_NT'))
+ )
+ - bash: |
+ make build-capi
+ cp ./wasmer-c-api.tar.gz ./artifacts/wasmer-c-api-windows.tar.gz
+ displayName: Build c-api artifacts (Windows)
+ condition: |
+ and(
+ succeeded(),
+ eq(variables['Agent.OS'], 'Windows_NT')
+ )
- publish: $(System.DefaultWorkingDirectory)/artifacts
artifact: library-$(Agent.OS)
From aa0f33203ce4c44b980f5c7c1d92eb651fde25a0 Mon Sep 17 00:00:00 2001
From: Syrus
Date: Thu, 20 Feb 2020 11:24:54 -0800
Subject: [PATCH 09/22] Reuse doc file for capi docs
---
Makefile | 8 +++--
lib/runtime-c-api/distribution/README.md | 32 -----------------
lib/runtime-c-api/doc/index.md | 45 ++++++++----------------
3 files changed, 19 insertions(+), 66 deletions(-)
delete mode 100644 lib/runtime-c-api/distribution/README.md
diff --git a/Makefile b/Makefile
index a8df5cd28..9692c4178 100644
--- a/Makefile
+++ b/Makefile
@@ -318,7 +318,7 @@ endif
find target/release/build -name 'wasmer.h*' -exec cp {} ./capi/include ';'
cp LICENSE ./capi/LICENSE
- cp lib/runtime-c-api/distribution/* ./capi/
+ cp lib/runtime-c-api/doc/index.md ./capi/README.md
tar -C ./capi -zcvf wasmer-c-api.tar.gz lib include README.md LICENSE
# For installing the contents locally
@@ -333,9 +333,11 @@ publish-release:
dep-graph:
cargo deps --optional-deps --filter wasmer-wasi wasmer-wasi-tests wasmer-kernel-loader wasmer-dev-utils wasmer-llvm-backend wasmer-emscripten wasmer-emscripten-tests wasmer-runtime-core wasmer-runtime wasmer-middleware-common wasmer-middleware-common-tests wasmer-singlepass-backend wasmer-clif-backend wasmer --manifest-path Cargo.toml | dot -Tpng > wasmer_depgraph.png
-docs:
- cargo doc --features=backend-singlepass,backend-cranelift,backend-llvm,docs,wasi,managed --workspace --document-private-items --no-deps
+docs-capi:
cd lib/runtime-c-api/ && doxygen doxyfile && cd ..
+
+docs: docs-capi
+ cargo doc --features=backend-singlepass,backend-cranelift,backend-llvm,docs,wasi,managed --workspace --document-private-items --no-deps
mkdir -p api-docs
mkdir -p api-docs/c
cp -R target/doc api-docs/crates
diff --git a/lib/runtime-c-api/distribution/README.md b/lib/runtime-c-api/distribution/README.md
deleted file mode 100644
index bb1689ee0..000000000
--- a/lib/runtime-c-api/distribution/README.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# Wasmer C API
-
-This is the [Wasmer WebAssembly Runtime](https://wasmer.io) shared library.
-You can use it in any C/C++ projects.
-
-This directory is structured like the following:
-* `lib` is where the Wasmer shared library lives.
-* `include` is where the Wasmer headers live
-
-## Documentation
-
-The API documentation for the Wasmer Runtime C API can be found here:
-
-https://wasmerio.github.io/wasmer/c/runtime-c-api/
-
-
-## Usage
-
-If you want to compile a `c` file using Wasmer, you can do:
-
-```bash
-clang YOUR_FILE -Iinclude -lwasmer -Llib
-```
-
-> Note: append ` -rpath lib` if you are in macOS.
-
-## Examples
-
-You can check examples of how to use the Wasmer C API here:
-
-https://docs.wasmer.io/integrations/c/examples
-
diff --git a/lib/runtime-c-api/doc/index.md b/lib/runtime-c-api/doc/index.md
index 84b08e56a..ebd5dadb7 100644
--- a/lib/runtime-c-api/doc/index.md
+++ b/lib/runtime-c-api/doc/index.md
@@ -1,12 +1,9 @@
# Wasmer Runtime C API
-[Wasmer] is a standalone [WebAssembly] runtime, aiming to be fully
-compatible with WASI, Emscripten, Rust and Go. [Learn
-more](https://github.com/wasmerio/wasmer).
+[Wasmer] is a standalone WebAssembly runtime for running WebAssembly [outside of the browser](https://webassembly.org/docs/non-web/), supporting [WASI](https://github.com/WebAssembly/WASI) and [Emscripten](https://emscripten.org/).
-The `wasmer-runtime-c-api` crate exposes a C and a C++ API to interact
-with the Wasmer runtime. This document is the index of its
-auto-generated documentation.
+The Wasmer Runtime C API exposes a C and a C++ API to interact
+with the Wasmer Runtime, so you can use WebAssembly anywhere.
[Wasmer]: https://github.com/wasmerio/wasmer
[WebAssembly]: https://webassembly.org/
@@ -15,21 +12,22 @@ auto-generated documentation.
Since the Wasmer runtime is written in Rust, the C and C++ API are
designed to work hand-in-hand with its shared library. The C and C++
-header files, namely [`wasmer.h`] and `wasmer.hh` are documented
-here. Their source code can be found in the source tree of this
-crate. They are automatically generated, and always up-to-date in this
-repository. The C and C++ header files along with the runtime shared
+header files, namely [`wasmer.h`][wasmer_h] and `wasmer.hh` are documented
+in the docs.
+
+Their source code can be found in the source tree of the [wasmer-runtime-c-api](https://github.com/wasmerio/wasmer/tree/master/lib/runtime-c-api)
+crate.
+The C and C++ header files along with the runtime shared
libraries (`.so`, `.dylib`, `.dll`) can also be downloaded in the
Wasmer [release page].
-[`wasmer.h`]: ./wasmer_8h.html
[release page]: https://github.com/wasmerio/wasmer/releases
Here is a simple example to use the C API:
```c
#include
-#include "../wasmer.h"
+#include "wasmer.h"
#include
#include
@@ -90,26 +88,12 @@ int main()
}
```
-# Testing
+# Examples
-Tests are run using the release build of the library. If you make
-changes or compile with non-default features, please ensure you
-rebuild in release mode for the tests to see the changes.
+You can check more examples of how to use the Wasmer C API here:
-The tests can be run via `cargo test`, such as:
+https://docs.wasmer.io/integrations/c/examples
-```sh
-$ cargo test --release -- --nocapture
-```
-
-To run tests manually, enter the `lib/runtime-c-api/tests` directory
-and run the following commands:
-
-```sh
-$ cmake .
-$ make
-$ make test
-```
# License
@@ -118,7 +102,6 @@ Wasmer is primarily distributed under the terms of the [MIT
license][mit-license] ([LICENSE][license]).
-[wasmer_h]: ./wasmer.h
-[wasmer_hh]: ./wasmer.hh
+[wasmer_h]: https://wasmerio.github.io/wasmer/c/runtime-c-api/wasmer_8h.html
[mit-license]: http://opensource.org/licenses/MIT
[license]: https://github.com/wasmerio/wasmer/blob/master/LICENSE
From c8df4fb5da671756455a8f0248a0586810c432df Mon Sep 17 00:00:00 2001
From: Syrus
Date: Thu, 20 Feb 2020 11:25:46 -0800
Subject: [PATCH 10/22] Removed empty lines
---
Makefile | 2 --
1 file changed, 2 deletions(-)
diff --git a/Makefile b/Makefile
index 9692c4178..071f42440 100644
--- a/Makefile
+++ b/Makefile
@@ -300,7 +300,6 @@ build-capi:
mkdir -p ./capi/
mkdir -p ./capi/include
mkdir -p ./capi/lib
-
ifeq ($(OS), Windows_NT)
cp target/release/wasmer_runtime_c_api.dll ./capi/lib/wasmer.dll
cp target/release/wasmer_runtime_c_api.lib ./capi/lib/wasmer.lib
@@ -315,7 +314,6 @@ else
cp target/release/libwasmer_runtime_c_api.a ./capi/lib/libwasmer.a
endif
endif
-
find target/release/build -name 'wasmer.h*' -exec cp {} ./capi/include ';'
cp LICENSE ./capi/LICENSE
cp lib/runtime-c-api/doc/index.md ./capi/README.md
From 38830ed8e5f4ddc59ad7f2ff6900c8c89a9f9a38 Mon Sep 17 00:00:00 2001
From: Syrus
Date: Thu, 20 Feb 2020 11:56:47 -0800
Subject: [PATCH 11/22] Fixed unused cd
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 071f42440..2bb5cb4f1 100644
--- a/Makefile
+++ b/Makefile
@@ -332,7 +332,7 @@ dep-graph:
cargo deps --optional-deps --filter wasmer-wasi wasmer-wasi-tests wasmer-kernel-loader wasmer-dev-utils wasmer-llvm-backend wasmer-emscripten wasmer-emscripten-tests wasmer-runtime-core wasmer-runtime wasmer-middleware-common wasmer-middleware-common-tests wasmer-singlepass-backend wasmer-clif-backend wasmer --manifest-path Cargo.toml | dot -Tpng > wasmer_depgraph.png
docs-capi:
- cd lib/runtime-c-api/ && doxygen doxyfile && cd ..
+ cd lib/runtime-c-api/ && doxygen doxyfile
docs: docs-capi
cargo doc --features=backend-singlepass,backend-cranelift,backend-llvm,docs,wasi,managed --workspace --document-private-items --no-deps
From 69d88ced5357b3c111a1bd4503923b2495d36057 Mon Sep 17 00:00:00 2001
From: Syrus
Date: Thu, 20 Feb 2020 11:59:44 -0800
Subject: [PATCH 12/22] Make commands more clear
---
.travis.yml | 2 +-
Makefile | 7 ++++---
azure-pipelines.yml | 6 +++---
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 425607a02..75c7d7f9a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -29,7 +29,7 @@ before_deploy:
# Release
- make release-singlepass
- make wapm
- - make build-install
+ - make build-install-package
- mkdir -p artifacts
- cp ./wasmer.tar.gz ./artifacts/$(./scripts/binary-name.sh)
diff --git a/Makefile b/Makefile
index 2bb5cb4f1..a7b1039e9 100644
--- a/Makefile
+++ b/Makefile
@@ -287,8 +287,8 @@ bench-llvm:
cargo bench --all --no-default-features --features "backend-llvm" \
--exclude wasmer-singlepass-backend --exclude wasmer-clif-backend --exclude wasmer-kernel-loader
-# Build utils
-build-install:
+build-install-package:
+ # This command doesn't build the binary, just packages it
mkdir -p ./install/bin
cp ./wapm-cli/target/release/wapm ./install/bin/
cp ./target/release/wasmer ./install/bin/
@@ -296,7 +296,8 @@ build-install:
UNAME_S := $(shell uname -s)
-build-capi:
+build-capi-package:
+ # This command doesn't build the C-API, just packages it
mkdir -p ./capi/
mkdir -p ./capi/include
mkdir -p ./capi/lib
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index f94f5ec31..24aa07d58 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -153,7 +153,7 @@ jobs:
condition: |
startsWith(variables['Build.SourceBranch'], 'refs/tags')
- bash: |
- make build-install
+ make build-install-package
cp ./wasmer.tar.gz ./artifacts/$(./scripts/binary-name.sh)
displayName: Build Distribution (*nix)
condition: |
@@ -215,7 +215,7 @@ jobs:
make capi
displayName: Build c-api
- bash: |
- make build-capi
+ make build-capi-package
cp ./wasmer-c-api.tar.gz ./artifacts/$(./scripts/capi-name.sh)
displayName: Build c-api artifacts (Unix)
condition: |
@@ -224,7 +224,7 @@ jobs:
not(eq(variables['Agent.OS'], 'Windows_NT'))
)
- bash: |
- make build-capi
+ make build-capi-package
cp ./wasmer-c-api.tar.gz ./artifacts/wasmer-c-api-windows.tar.gz
displayName: Build c-api artifacts (Windows)
condition: |
From 1374bf080643a503b2509d7f5d037e6f849cdab4 Mon Sep 17 00:00:00 2001
From: Mark McCaskey
Date: Thu, 20 Feb 2020 13:15:29 -0800
Subject: [PATCH 13/22] Prepare for 0.14.0 release
---
CHANGELOG.md | 2 ++
Cargo.lock | 38 ++++++++++-----------
Cargo.toml | 2 +-
lib/clif-backend/Cargo.toml | 6 ++--
lib/dev-utils/Cargo.toml | 2 +-
lib/emscripten-tests/Cargo.toml | 14 ++++----
lib/emscripten/Cargo.toml | 4 +--
lib/interface-types/Cargo.toml | 4 +--
lib/llvm-backend-tests/Cargo.toml | 6 ++--
lib/llvm-backend/Cargo.toml | 4 +--
lib/middleware-common-tests/Cargo.toml | 12 +++----
lib/middleware-common/Cargo.toml | 4 +--
lib/runtime-c-api/Cargo.toml | 10 +++---
lib/runtime-core-tests/Cargo.toml | 10 +++---
lib/runtime-core/Cargo.toml | 2 +-
lib/runtime/Cargo.toml | 8 ++---
lib/singlepass-backend/Cargo.toml | 4 +--
lib/spectests/Cargo.toml | 10 +++---
lib/wasi-experimental-io-devices/Cargo.toml | 6 ++--
lib/wasi-tests/Cargo.toml | 14 ++++----
lib/wasi/Cargo.toml | 4 +--
lib/win-exception-handler/Cargo.toml | 4 +--
scripts/update_version_numbers.sh | 4 +--
src/installer/wasmer.iss | 2 +-
24 files changed, 89 insertions(+), 87 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7aba05ee4..544c008b7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,8 @@
## **[Unreleased]**
+## 0.14.0 - 2020-02-20
+
- [#1233](https://github.com/wasmerio/wasmer/pull/1233) Improved Wasmer C API release artifacts.
- [#1216](https://github.com/wasmerio/wasmer/pull/1216) `wasmer-interface-types` receives a binary encoder.
- [#1228](https://github.com/wasmerio/wasmer/pull/1228) Singlepass cleanup: Resolve several FIXMEs and remove protect_unix.
diff --git a/Cargo.lock b/Cargo.lock
index bc33f9a47..eb69230f1 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1706,7 +1706,7 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
[[package]]
name = "wasmer"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"atty",
"byteorder",
@@ -1737,7 +1737,7 @@ dependencies = [
[[package]]
name = "wasmer-clif-backend"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"byteorder",
"cranelift-codegen",
@@ -1787,14 +1787,14 @@ dependencies = [
[[package]]
name = "wasmer-dev-utils"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"libc",
]
[[package]]
name = "wasmer-emscripten"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"byteorder",
"getrandom",
@@ -1807,7 +1807,7 @@ dependencies = [
[[package]]
name = "wasmer-emscripten-tests"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"glob 0.3.0",
"wabt",
@@ -1821,7 +1821,7 @@ dependencies = [
[[package]]
name = "wasmer-interface-types"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"nom",
]
@@ -1836,7 +1836,7 @@ dependencies = [
[[package]]
name = "wasmer-llvm-backend"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"byteorder",
"cc",
@@ -1867,14 +1867,14 @@ dependencies = [
[[package]]
name = "wasmer-middleware-common"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"wasmer-runtime-core",
]
[[package]]
name = "wasmer-middleware-common-tests"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"criterion",
"wabt",
@@ -1887,7 +1887,7 @@ dependencies = [
[[package]]
name = "wasmer-runtime"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"criterion",
"lazy_static",
@@ -1904,7 +1904,7 @@ dependencies = [
[[package]]
name = "wasmer-runtime-c-api"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"cbindgen",
"libc",
@@ -1916,7 +1916,7 @@ dependencies = [
[[package]]
name = "wasmer-runtime-core"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"bincode",
"blake3",
@@ -1942,7 +1942,7 @@ dependencies = [
[[package]]
name = "wasmer-runtime-core-tests"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"wabt",
"wasmer-clif-backend",
@@ -1953,7 +1953,7 @@ dependencies = [
[[package]]
name = "wasmer-singlepass-backend"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"bincode",
"byteorder",
@@ -1970,7 +1970,7 @@ dependencies = [
[[package]]
name = "wasmer-spectests"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"glob 0.3.0",
"wabt",
@@ -1982,7 +1982,7 @@ dependencies = [
[[package]]
name = "wasmer-wasi"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"bincode",
"byteorder",
@@ -1999,7 +1999,7 @@ dependencies = [
[[package]]
name = "wasmer-wasi-experimental-io-devices"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"log",
"minifb",
@@ -2012,7 +2012,7 @@ dependencies = [
[[package]]
name = "wasmer-wasi-tests"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"glob 0.3.0",
"wasmer-clif-backend",
@@ -2025,7 +2025,7 @@ dependencies = [
[[package]]
name = "wasmer-win-exception-handler"
-version = "0.13.1"
+version = "0.14.0"
dependencies = [
"cmake",
"libc",
diff --git a/Cargo.toml b/Cargo.toml
index 25dc8d322..fb135aba7 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer"
-version = "0.13.1"
+version = "0.14.0"
authors = ["The Wasmer Engineering Team "]
edition = "2018"
repository = "https://github.com/wasmerio/wasmer"
diff --git a/lib/clif-backend/Cargo.toml b/lib/clif-backend/Cargo.toml
index 83818ec11..cffab51ff 100644
--- a/lib/clif-backend/Cargo.toml
+++ b/lib/clif-backend/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-clif-backend"
-version = "0.13.1"
+version = "0.14.0"
description = "Wasmer runtime Cranelift compiler backend"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
@@ -11,7 +11,7 @@ edition = "2018"
readme = "README.md"
[dependencies]
-wasmer-runtime-core = { path = "../runtime-core", version = "0.13.1" }
+wasmer-runtime-core = { path = "../runtime-core", version = "0.14.0" }
cranelift-native = "0.52.0"
cranelift-codegen = "0.52.0"
cranelift-entity = "0.52.0"
@@ -37,4 +37,4 @@ version = "0.0.7"
[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = ["errhandlingapi", "minwindef", "minwinbase", "winnt"] }
-wasmer-win-exception-handler = { path = "../win-exception-handler", version = "0.13.1" }
+wasmer-win-exception-handler = { path = "../win-exception-handler", version = "0.14.0" }
diff --git a/lib/dev-utils/Cargo.toml b/lib/dev-utils/Cargo.toml
index 60db0143c..aa39fda03 100644
--- a/lib/dev-utils/Cargo.toml
+++ b/lib/dev-utils/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-dev-utils"
-version = "0.13.1"
+version = "0.14.0"
description = "Wasmer runtime core library"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
diff --git a/lib/emscripten-tests/Cargo.toml b/lib/emscripten-tests/Cargo.toml
index d87c2516e..217c2ae23 100644
--- a/lib/emscripten-tests/Cargo.toml
+++ b/lib/emscripten-tests/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-emscripten-tests"
-version = "0.13.1"
+version = "0.14.0"
description = "Tests for our Emscripten implementation"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
@@ -9,15 +9,15 @@ publish = false
build = "build/mod.rs"
[dependencies]
-wasmer-emscripten = { path = "../emscripten", version = "0.13.1" }
-wasmer-runtime = { path = "../runtime", version = "0.13.1", default-features = false }
-wasmer-clif-backend = { path = "../clif-backend", version = "0.13.1", optional = true}
-wasmer-llvm-backend = { path = "../llvm-backend", version = "0.13.1", optional = true, features = ["test"] }
-wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.13.1", optional = true }
+wasmer-emscripten = { path = "../emscripten", version = "0.14.0" }
+wasmer-runtime = { path = "../runtime", version = "0.14.0", default-features = false }
+wasmer-clif-backend = { path = "../clif-backend", version = "0.14.0", optional = true}
+wasmer-llvm-backend = { path = "../llvm-backend", version = "0.14.0", optional = true, features = ["test"] }
+wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.14.0", optional = true }
[dev-dependencies]
wabt = "0.9.1"
-wasmer-dev-utils = { path = "../dev-utils", version = "0.13.1"}
+wasmer-dev-utils = { path = "../dev-utils", version = "0.14.0"}
[build-dependencies]
glob = "0.3"
diff --git a/lib/emscripten/Cargo.toml b/lib/emscripten/Cargo.toml
index e3b7fde66..80e578bfd 100644
--- a/lib/emscripten/Cargo.toml
+++ b/lib/emscripten/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-emscripten"
-version = "0.13.1"
+version = "0.14.0"
description = "Wasmer runtime emscripten implementation library"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
@@ -15,7 +15,7 @@ lazy_static = "1.4"
libc = "0.2.60"
log = "0.4"
time = "0.1"
-wasmer-runtime-core = { path = "../runtime-core", version = "0.13.1" }
+wasmer-runtime-core = { path = "../runtime-core", version = "0.14.0" }
[target.'cfg(windows)'.dependencies]
getrandom = "0.1"
diff --git a/lib/interface-types/Cargo.toml b/lib/interface-types/Cargo.toml
index a3d247479..4dc01538c 100644
--- a/lib/interface-types/Cargo.toml
+++ b/lib/interface-types/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-interface-types"
-version = "0.13.1"
+version = "0.14.0"
description = "WebAssembly Interface Types library for Wasmer"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
@@ -8,4 +8,4 @@ repository = "https://github.com/wasmerio/wasmer"
edition = "2018"
[dependencies]
-nom = "5.1"
\ No newline at end of file
+nom = "5.1"
diff --git a/lib/llvm-backend-tests/Cargo.toml b/lib/llvm-backend-tests/Cargo.toml
index 829880976..5bdd72cc5 100644
--- a/lib/llvm-backend-tests/Cargo.toml
+++ b/lib/llvm-backend-tests/Cargo.toml
@@ -9,8 +9,8 @@ edition = "2018"
[dependencies]
wabt = "0.9.1"
-wasmer-runtime-core = { path = "../runtime-core", version = "0.13.1" }
-wasmer-runtime = { path = "../runtime", version = "0.13.1" }
-wasmer-llvm-backend = { path = "../llvm-backend", version = "0.13.1", features = ["test"] }
+wasmer-runtime-core = { path = "../runtime-core", version = "0.14.0" }
+wasmer-runtime = { path = "../runtime", version = "0.14.0" }
+wasmer-llvm-backend = { path = "../llvm-backend", version = "0.14.0", features = ["test"] }
[features]
diff --git a/lib/llvm-backend/Cargo.toml b/lib/llvm-backend/Cargo.toml
index bd5b12254..1df4e67be 100644
--- a/lib/llvm-backend/Cargo.toml
+++ b/lib/llvm-backend/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-llvm-backend"
-version = "0.13.1"
+version = "0.14.0"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
repository = "https://github.com/wasmerio/wasmer"
@@ -10,7 +10,7 @@ edition = "2018"
readme = "README.md"
[dependencies]
-wasmer-runtime-core = { path = "../runtime-core", version = "0.13.1" }
+wasmer-runtime-core = { path = "../runtime-core", version = "0.14.0" }
wasmparser = "0.45.0"
smallvec = "0.6"
goblin = "0.0.24"
diff --git a/lib/middleware-common-tests/Cargo.toml b/lib/middleware-common-tests/Cargo.toml
index cc9438f4d..329b71ccc 100644
--- a/lib/middleware-common-tests/Cargo.toml
+++ b/lib/middleware-common-tests/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-middleware-common-tests"
-version = "0.13.1"
+version = "0.14.0"
authors = ["The Wasmer Engineering Team "]
edition = "2018"
repository = "https://github.com/wasmerio/wasmer"
@@ -8,11 +8,11 @@ license = "MIT"
publish = false
[dependencies]
-wasmer-runtime-core = { path = "../runtime-core", version = "0.13.1" }
-wasmer-middleware-common = { path = "../middleware-common", version = "0.13.1" }
-wasmer-clif-backend = { path = "../clif-backend", version = "0.13.1", optional = true }
-wasmer-llvm-backend = { path = "../llvm-backend", version = "0.13.1", features = ["test"], optional = true }
-wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.13.1", optional = true }
+wasmer-runtime-core = { path = "../runtime-core", version = "0.14.0" }
+wasmer-middleware-common = { path = "../middleware-common", version = "0.14.0" }
+wasmer-clif-backend = { path = "../clif-backend", version = "0.14.0", optional = true }
+wasmer-llvm-backend = { path = "../llvm-backend", version = "0.14.0", features = ["test"], optional = true }
+wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.14.0", optional = true }
[features]
clif = ["wasmer-clif-backend"]
diff --git a/lib/middleware-common/Cargo.toml b/lib/middleware-common/Cargo.toml
index f9df7f3d2..a997bbc44 100644
--- a/lib/middleware-common/Cargo.toml
+++ b/lib/middleware-common/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-middleware-common"
-version = "0.13.1"
+version = "0.14.0"
repository = "https://github.com/wasmerio/wasmer"
description = "Wasmer runtime common middlewares"
license = "MIT"
@@ -10,4 +10,4 @@ categories = ["wasm"]
edition = "2018"
[dependencies]
-wasmer-runtime-core = { path = "../runtime-core", version = "0.13.1" }
+wasmer-runtime-core = { path = "../runtime-core", version = "0.14.0" }
diff --git a/lib/runtime-c-api/Cargo.toml b/lib/runtime-c-api/Cargo.toml
index 0fc3710b3..8744e7266 100644
--- a/lib/runtime-c-api/Cargo.toml
+++ b/lib/runtime-c-api/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-runtime-c-api"
-version = "0.13.1"
+version = "0.14.0"
description = "Wasmer C API library"
documentation = "https://wasmerio.github.io/wasmer/c/runtime-c-api/"
license = "MIT"
@@ -20,22 +20,22 @@ libc = "0.2.60"
[dependencies.wasmer-runtime]
default-features = false
path = "../runtime"
-version = "0.13.1"
+version = "0.14.0"
[dependencies.wasmer-runtime-core]
default-features = false
path = "../runtime-core"
-version = "0.13.1"
+version = "0.14.0"
[dependencies.wasmer-wasi]
default-features = false
path = "../wasi"
-version = "0.13.1"
+version = "0.14.0"
optional = true
[dependencies.wasmer-emscripten]
path = "../emscripten"
-version = "0.13.1"
+version = "0.14.0"
optional = true
[features]
diff --git a/lib/runtime-core-tests/Cargo.toml b/lib/runtime-core-tests/Cargo.toml
index 99813b470..cb6d6b25c 100644
--- a/lib/runtime-core-tests/Cargo.toml
+++ b/lib/runtime-core-tests/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-runtime-core-tests"
-version = "0.13.1"
+version = "0.14.0"
description = "Tests for the Wasmer runtime core crate"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
@@ -9,10 +9,10 @@ publish = false
[dependencies]
wabt = "0.9.1"
-wasmer-runtime-core = { path = "../runtime-core", version = "0.13.1" }
-wasmer-clif-backend = { path = "../clif-backend", version = "0.13.1", optional = true }
-wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.13.1", optional = true }
-wasmer-llvm-backend = { path = "../llvm-backend", version = "0.13.1", features = ["test"], optional = true }
+wasmer-runtime-core = { path = "../runtime-core", version = "0.14.0" }
+wasmer-clif-backend = { path = "../clif-backend", version = "0.14.0", optional = true }
+wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.14.0", optional = true }
+wasmer-llvm-backend = { path = "../llvm-backend", version = "0.14.0", features = ["test"], optional = true }
[features]
default = ["backend-cranelift"]
diff --git a/lib/runtime-core/Cargo.toml b/lib/runtime-core/Cargo.toml
index 7f07a9d2d..6ad0e7b7c 100644
--- a/lib/runtime-core/Cargo.toml
+++ b/lib/runtime-core/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-runtime-core"
-version = "0.13.1"
+version = "0.14.0"
description = "Wasmer runtime core library"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
diff --git a/lib/runtime/Cargo.toml b/lib/runtime/Cargo.toml
index 432f2b5a9..bd4194cf6 100644
--- a/lib/runtime/Cargo.toml
+++ b/lib/runtime/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-runtime"
-version = "0.13.1"
+version = "0.14.0"
description = "Wasmer runtime library"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
@@ -11,17 +11,17 @@ edition = "2018"
readme = "README.md"
[dependencies]
-wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.13.1", optional = true }
+wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.14.0", optional = true }
lazy_static = "1.4"
memmap = "0.7"
[dependencies.wasmer-runtime-core]
path = "../runtime-core"
-version = "0.13.1"
+version = "0.14.0"
[dependencies.wasmer-clif-backend]
path = "../clif-backend"
-version = "0.13.1"
+version = "0.14.0"
optional = true
# Dependencies for caching.
diff --git a/lib/singlepass-backend/Cargo.toml b/lib/singlepass-backend/Cargo.toml
index 6626cd6ae..e86c36ab2 100644
--- a/lib/singlepass-backend/Cargo.toml
+++ b/lib/singlepass-backend/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-singlepass-backend"
-version = "0.13.1"
+version = "0.14.0"
repository = "https://github.com/wasmerio/wasmer"
description = "Wasmer runtime single pass compiler backend"
license = "MIT"
@@ -11,7 +11,7 @@ edition = "2018"
readme = "README.md"
[dependencies]
-wasmer-runtime-core = { path = "../runtime-core", version = "0.13.1" }
+wasmer-runtime-core = { path = "../runtime-core", version = "0.14.0" }
dynasm = "0.5"
dynasmrt = "0.5"
lazy_static = "1.4"
diff --git a/lib/spectests/Cargo.toml b/lib/spectests/Cargo.toml
index 8224ab273..d5bdd9717 100644
--- a/lib/spectests/Cargo.toml
+++ b/lib/spectests/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-spectests"
-version = "0.13.1"
+version = "0.14.0"
description = "Wasmer spectests library"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
@@ -9,10 +9,10 @@ edition = "2018"
[dependencies]
glob = "0.3"
-wasmer-runtime = { path = "../runtime", version = "0.13.1", default-features = false}
-wasmer-clif-backend = { path = "../clif-backend", version = "0.13.1", optional = true}
-wasmer-llvm-backend = { path = "../llvm-backend", version = "0.13.1", features = ["test"], optional = true }
-wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.13.1", optional = true }
+wasmer-runtime = { path = "../runtime", version = "0.14.0", default-features = false}
+wasmer-clif-backend = { path = "../clif-backend", version = "0.14.0", optional = true}
+wasmer-llvm-backend = { path = "../llvm-backend", version = "0.14.0", features = ["test"], optional = true }
+wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.14.0", optional = true }
[build-dependencies]
wabt = "0.9.1"
diff --git a/lib/wasi-experimental-io-devices/Cargo.toml b/lib/wasi-experimental-io-devices/Cargo.toml
index c98c46e78..bbce57713 100644
--- a/lib/wasi-experimental-io-devices/Cargo.toml
+++ b/lib/wasi-experimental-io-devices/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-wasi-experimental-io-devices"
-version = "0.13.1"
+version = "0.14.0"
authors = ["The Wasmer Engineering Team "]
edition = "2018"
repository = "https://github.com/wasmerio/wasmer"
@@ -14,8 +14,8 @@ maintenance = { status = "experimental" }
[dependencies]
log = "0.4"
minifb = "0.13"
-wasmer-wasi = { version = "0.13.1", path = "../wasi" }
-wasmer-runtime-core = { version = "0.13.1", path = "../runtime-core" }
+wasmer-wasi = { version = "0.14.0", path = "../wasi" }
+wasmer-runtime-core = { version = "0.14.0", path = "../runtime-core" }
ref_thread_local = "0.0"
serde = "1"
typetag = "0.1"
diff --git a/lib/wasi-tests/Cargo.toml b/lib/wasi-tests/Cargo.toml
index ea9fca957..b4fa7915b 100644
--- a/lib/wasi-tests/Cargo.toml
+++ b/lib/wasi-tests/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-wasi-tests"
-version = "0.13.1"
+version = "0.14.0"
description = "Tests for our WASI implementation"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
@@ -10,18 +10,18 @@ build = "build/mod.rs"
[dependencies]
# We set default features to false to be able to use the singlepass backend properly
-wasmer-runtime = { path = "../runtime", version = "0.13.1", default-features = false }
-wasmer-wasi = { path = "../wasi", version = "0.13.1" }
+wasmer-runtime = { path = "../runtime", version = "0.14.0", default-features = false }
+wasmer-wasi = { path = "../wasi", version = "0.14.0" }
# hack to get tests to work
-wasmer-clif-backend = { path = "../clif-backend", version = "0.13.1", optional = true}
-wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.13.1", optional = true }
-wasmer-llvm-backend = { path = "../llvm-backend", version = "0.13.1", features = ["test"], optional = true }
+wasmer-clif-backend = { path = "../clif-backend", version = "0.14.0", optional = true}
+wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.14.0", optional = true }
+wasmer-llvm-backend = { path = "../llvm-backend", version = "0.14.0", features = ["test"], optional = true }
[build-dependencies]
glob = "0.3"
[dev-dependencies]
-wasmer-dev-utils = { path = "../dev-utils", version = "0.13.1"}
+wasmer-dev-utils = { path = "../dev-utils", version = "0.14.0"}
[features]
clif = ["wasmer-clif-backend", "wasmer-runtime/default-backend-cranelift"]
diff --git a/lib/wasi/Cargo.toml b/lib/wasi/Cargo.toml
index f6ad4b6a3..4dd5a6dbf 100644
--- a/lib/wasi/Cargo.toml
+++ b/lib/wasi/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-wasi"
-version = "0.13.1"
+version = "0.14.0"
description = "Wasmer runtime WASI implementation library"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
@@ -19,7 +19,7 @@ getrandom = "0.1"
time = "0.1"
typetag = "0.1"
serde = { version = "1", features = ["derive"] }
-wasmer-runtime-core = { path = "../runtime-core", version = "0.13.1" }
+wasmer-runtime-core = { path = "../runtime-core", version = "0.14.0" }
[target.'cfg(windows)'.dependencies]
winapi = "0.3"
diff --git a/lib/win-exception-handler/Cargo.toml b/lib/win-exception-handler/Cargo.toml
index 6e305aa3d..95504170a 100644
--- a/lib/win-exception-handler/Cargo.toml
+++ b/lib/win-exception-handler/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wasmer-win-exception-handler"
-version = "0.13.1"
+version = "0.14.0"
description = "Wasmer runtime exception handling for Windows"
license = "MIT"
authors = ["The Wasmer Engineering Team "]
@@ -8,7 +8,7 @@ repository = "https://github.com/wasmerio/wasmer"
edition = "2018"
[target.'cfg(windows)'.dependencies]
-wasmer-runtime-core = { path = "../runtime-core", version = "0.13.1" }
+wasmer-runtime-core = { path = "../runtime-core", version = "0.14.0" }
winapi = { version = "0.3.8", features = ["winbase", "errhandlingapi", "minwindef", "minwinbase", "winnt"] }
libc = "0.2.60"
diff --git a/scripts/update_version_numbers.sh b/scripts/update_version_numbers.sh
index 453af422d..21e6cdd66 100755
--- a/scripts/update_version_numbers.sh
+++ b/scripts/update_version_numbers.sh
@@ -1,5 +1,5 @@
-PREVIOUS_VERSION='0.13.0'
-NEXT_VERSION='0.13.1'
+PREVIOUS_VERSION='0.13.1'
+NEXT_VERSION='0.14.0'
# quick hack
fd Cargo.toml --exec sed -i '' "s/version = \"$PREVIOUS_VERSION\"/version = \"$NEXT_VERSION\"/"
diff --git a/src/installer/wasmer.iss b/src/installer/wasmer.iss
index 9a6091797..0ddf11414 100644
--- a/src/installer/wasmer.iss
+++ b/src/installer/wasmer.iss
@@ -1,6 +1,6 @@
[Setup]
AppName=Wasmer
-AppVersion=0.13.1
+AppVersion=0.14.0
DefaultDirName={pf}\Wasmer
DefaultGroupName=Wasmer
Compression=lzma2
From f229dd7aa5c62d68bf8cb73dd1743f6209e539dd Mon Sep 17 00:00:00 2001
From: Syrus
Date: Thu, 20 Feb 2020 14:48:10 -0800
Subject: [PATCH 14/22] Cleanup the codebase
---
.gitmodules | 3 -
Dockerfile | 25 --
README.md | 297 +++++-------------
{docs/assets => assets}/languages/c.svg | 0
{docs/assets => assets}/languages/cpp.svg | 0
{docs/assets => assets}/languages/csharp.svg | 0
{docs/assets => assets}/languages/elixir.png | Bin
{docs/assets => assets}/languages/go.svg | 0
{docs/assets => assets}/languages/js.svg | 0
{docs/assets => assets}/languages/php.svg | 0
.../assets => assets}/languages/postgres.svg | 0
{docs/assets => assets}/languages/python.svg | 0
{docs/assets => assets}/languages/r.svg | 0
{docs/assets => assets}/languages/ruby.svg | 0
{docs/assets => assets}/languages/rust.svg | 0
{docs/assets => assets}/languages/swift.svg | 0
logo.png => assets/logo.png | Bin
azure-pipelines.yml | 10 +-
docs/architecture.md | 74 -----
docs/debugging.md | 50 ---
docs/docker.md | 39 ---
docs/feature_matrix.md | 42 ---
Dockerfile.build => scripts/Dockerfile | 0
build => scripts/build | 2 +-
install.sh => scripts/install.sh | 0
wapm-cli | 1 -
26 files changed, 77 insertions(+), 466 deletions(-)
delete mode 100644 .gitmodules
delete mode 100644 Dockerfile
rename {docs/assets => assets}/languages/c.svg (100%)
rename {docs/assets => assets}/languages/cpp.svg (100%)
rename {docs/assets => assets}/languages/csharp.svg (100%)
rename {docs/assets => assets}/languages/elixir.png (100%)
rename {docs/assets => assets}/languages/go.svg (100%)
rename {docs/assets => assets}/languages/js.svg (100%)
rename {docs/assets => assets}/languages/php.svg (100%)
rename {docs/assets => assets}/languages/postgres.svg (100%)
rename {docs/assets => assets}/languages/python.svg (100%)
rename {docs/assets => assets}/languages/r.svg (100%)
rename {docs/assets => assets}/languages/ruby.svg (100%)
rename {docs/assets => assets}/languages/rust.svg (100%)
rename {docs/assets => assets}/languages/swift.svg (100%)
rename logo.png => assets/logo.png (100%)
delete mode 100644 docs/architecture.md
delete mode 100644 docs/debugging.md
delete mode 100644 docs/docker.md
delete mode 100644 docs/feature_matrix.md
rename Dockerfile.build => scripts/Dockerfile (100%)
rename build => scripts/build (95%)
rename install.sh => scripts/install.sh (100%)
delete mode 160000 wapm-cli
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index af96cdf0e..000000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "wapm-cli"]
- path = wapm-cli
- url = https://github.com/wasmerio/wapm-cli.git
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 085b7abbd..000000000
--- a/Dockerfile
+++ /dev/null
@@ -1,25 +0,0 @@
-FROM circleci/rust:1.40.0-stretch as wasmer-build-env
-RUN sudo apt-get update && \
- sudo apt-get install -y --no-install-recommends \
- cmake \
- && sudo rm -rf /var/lib/apt/lists/*
-RUN curl -SL https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz \
- | tar -xJC /home/circleci
-ENV LLVM_SYS_80_PREFIX /home/circleci/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/
-
-FROM wasmer-build-env AS wasmer-debug-env
-RUN sudo apt-get update && \
- sudo apt-get install -y --no-install-recommends \
- valgrind \
- && sudo rm -rf /var/lib/apt/lists/*
-
-FROM wasmer-build-env AS wasmer-build
-WORKDIR /home/circleci/wasmer
-COPY . /home/circleci/wasmer
-RUN sudo chmod -R 777 .
-RUN cargo build --release --features backend-cranelift
-
-FROM debian:stretch AS wasmer
-WORKDIR /root/
-COPY --from=wasmer-build /home/circleci/wasmer/target/release/wasmer .
-ENTRYPOINT ["./wasmer"]
diff --git a/README.md b/README.md
index ea11c9266..730674401 100644
--- a/README.md
+++ b/README.md
@@ -1,269 +1,118 @@
+
-
+
+
+[Website](https://wasmer.io) • [Docs](https://docs.wasmer.io/) • [Examples](https://github.com/wasmerio/wasmer/tree/master/examples) • [Blog](https://medium.com/wasmer) • [Slack](https://slack.wasmer.io/) • [Twitter](https://twitter.com/wasmerio)
+
+
-
-
-
-
-
-
-## Introduction
+[Wasmer](https://wasmer.io/) is a standalone WebAssembly runtime for running WebAssembly [outside of the browser](https://webassembly.org/docs/non-web/):
+* *Universal*: Wasmer is available in **Linux, macOS and Windows** (for both x86 and [ARM](https://medium.com/wasmer/running-webassembly-on-arm-7d365ed0e50c))
+* *Pluggable*: Wasmer can be used from almost **any programming language**
+* *Safe*: supporting [WASI](https://github.com/WebAssembly/WASI) and [Emscripten](https://emscripten.org/)
-[Wasmer](https://wasmer.io/) is a standalone WebAssembly runtime for running WebAssembly [outside of the browser](https://webassembly.org/docs/non-web/), supporting [WASI](https://github.com/WebAssembly/WASI) and [Emscripten](https://emscripten.org/). Wasmer can be used standalone (via the CLI) and embedded in different languages, running in x86 and [ARM devices](https://medium.com/wasmer/running-webassembly-on-arm-7d365ed0e50c).
+It is used to run software fast, universally and safely: standalone applications and universal libraries.
-Install the Wasmer and [WAPM](https://wapm.io) cli with:
+## Contents
+
+- [Quickstart](#quickstart)
+- [Language Integrations](#examples)
+- [Contribute](#contribute)
+- [Community](#community)
+
+## Quickstart
+
+Get started with Wasmer:
+
+#### 1. Install Wasmer
```sh
curl https://get.wasmer.io -sSfL | sh
```
+> Note: *Wasmer is also [available on Windows](https://github.com/wasmerio/wasmer/releases)*
-If [Homebrew](https://brew.sh/) is installed:
+
+ Alternative: Install with Homebrew
+
+
+If you have [Homebrew](https://brew.sh/) installed in your system:
```sh
brew install wasmer
```
-> Note: *Wasmer is also [available on Windows](https://github.com/wasmerio/wasmer/releases)*
+
+
-### Languages
+#### 2. Use Wasmer
-Wasmer runtime can be used as a library embedded in different languages, so you can use WebAssembly anywhere:
+Download a WASM file, and use it universally! You can start with QuickJS: [qjs.wasm](https://registry-cdn.wapm.io/contents/_/quickjs/0.0.3/build/qjs.wasm)
+
+```bash
+wasmer qjs.wasm
+```
+
+#### 3. Next steps
+
+Here is what you can do next:
+
+- [Use Wasmer from your Rust application](https://docs.wasmer.io/integrations/rust)
+- [Publish a Wasm package on WAPM](https://docs.wasmer.io/ecosystem/wapm/publishing-your-package)
+- [Read more about Wasmer](https://medium.com/wasmer/)
+
+
+### Language Integrations
+
+Wasmer runtime can be used as a library embedded in different languages, so you can **use WebAssembly anywhere** 🎉
| | Language | Docs | Author(s) | Maintenance | Release | Stars |
|-|-|-|-|-|-|-|
-|  | [**Rust**](https://github.com/wasmerio/wasmer-rust-example) | [Docs](https://wasmerio.github.io/wasmer/crates/wasmer_runtime/) | Wasmer | actively developed |  |  |
-|  | [**C/C++**](https://github.com/wasmerio/wasmer-c-api) | [Docs](https://wasmerio.github.io/wasmer/c/runtime-c-api/) | Wasmer | actively developed |  |  |
-|  | [**Python**](https://github.com/wasmerio/python-ext-wasm) | [Docs](https://github.com/wasmerio/python-ext-wasm#api-of-the-wasmer-extensionmodule) | Wasmer | actively developed |  |  |
-|  | [**Go**](https://github.com/wasmerio/go-ext-wasm) | [Docs](https://github.com/wasmerio/go-ext-wasm#basic-example-exported-function) | Wasmer | actively developed |  |  |
-|  | [**PHP**](https://github.com/wasmerio/php-ext-wasm) | [Docs](https://wasmerio.github.io/php-ext-wasm/wasm/) | Wasmer | actively developed |  |  |
-|  | [**Ruby**](https://github.com/wasmerio/ruby-ext-wasm) | [Docs](https://www.rubydoc.info/gems/wasmer/) | Wasmer | actively developed |  |  |
-|  | [**Postgres**](https://github.com/wasmerio/postgres-ext-wasm) | | Wasmer | actively developed |  |  |
-|  | [**JavaScript**](https://github.com/wasmerio/wasmer-js) | [Docs](https://docs.wasmer.io/wasmer-js/wasmer-js) | Wasmer | actively developed |  |  |
-|  | [**C#/.Net**](https://github.com/migueldeicaza/WasmerSharp) | [Docs](https://migueldeicaza.github.io/WasmerSharp/) |[Miguel de Icaza](https://github.com/migueldeicaza) | actively developed |  |  |
-|  | [**R**](https://github.com/dirkschumacher/wasmr) | [Docs](https://github.com/dirkschumacher/wasmr#example) | [Dirk Schumacher](https://github.com/dirkschumacher) | actively developed | |  |
-|  | [**Elixir**](https://github.com/tessi/wasmex) | [Docs](https://hexdocs.pm/wasmex/api-reference.html) | [Philipp Tessenow](https://github.com/tessi) | actively developed |  |  |
+|  | [**Rust**](https://github.com/wasmerio/wasmer-rust-example) | [Docs](https://wasmerio.github.io/wasmer/crates/wasmer_runtime/) | Wasmer | actively developed |  |  |
+|  | [**C/C++**](https://github.com/wasmerio/wasmer-c-api) | [Docs](https://wasmerio.github.io/wasmer/c/runtime-c-api/) | Wasmer | actively developed |  |  |
+|  | [**Python**](https://github.com/wasmerio/python-ext-wasm) | [Docs](https://github.com/wasmerio/python-ext-wasm#api-of-the-wasmer-extensionmodule) | Wasmer | actively developed |  |  |
+|  | [**Go**](https://github.com/wasmerio/go-ext-wasm) | [Docs](https://github.com/wasmerio/go-ext-wasm#basic-example-exported-function) | Wasmer | actively developed |  |  |
+|  | [**PHP**](https://github.com/wasmerio/php-ext-wasm) | [Docs](https://wasmerio.github.io/php-ext-wasm/wasm/) | Wasmer | actively developed |  |  |
+|  | [**Ruby**](https://github.com/wasmerio/ruby-ext-wasm) | [Docs](https://www.rubydoc.info/gems/wasmer/) | Wasmer | actively developed |  |  |
+|  | [**Postgres**](https://github.com/wasmerio/postgres-ext-wasm) | | Wasmer | actively developed |  |  |
+|  | [**JavaScript**](https://github.com/wasmerio/wasmer-js) | [Docs](https://docs.wasmer.io/wasmer-js/wasmer-js) | Wasmer | actively developed |  |  |
+|  | [**C#/.Net**](https://github.com/migueldeicaza/WasmerSharp) | [Docs](https://migueldeicaza.github.io/WasmerSharp/) |[Miguel de Icaza](https://github.com/migueldeicaza) | actively developed |  |  |
+|  | [**R**](https://github.com/dirkschumacher/wasmr) | [Docs](https://github.com/dirkschumacher/wasmr#example) | [Dirk Schumacher](https://github.com/dirkschumacher) | actively developed | |  |
+|  | [**Elixir**](https://github.com/tessi/wasmex) | [Docs](https://hexdocs.pm/wasmex/api-reference.html) | [Philipp Tessenow](https://github.com/tessi) | actively developed |  |  |
| ❓ | [your language is missing?](https://github.com/wasmerio/wasmer/issues/new?assignees=&labels=%F0%9F%8E%89+enhancement&template=---feature-request.md&title=) | | | | |
-### Usage
-Wasmer can execute both the standard binary format (`.wasm`) and the text
-format defined by the WebAssembly reference interpreter (`.wat`).
+## Contribute
-Once installed, you will be able to run any WebAssembly files (_including Lua, PHP, SQLite and nginx!_):
+**We welcome any form of contribution, especially from new members of our community** 💜
-```sh
-# Run Lua
-wasmer examples/lua.wasm
-```
+You can check how to build the Wasmer runtime in [our awesome docs]([https://docs.wasmer.io/ecosystem/wasmer/building-from-source](https://new-docs.wasmer.io/ecosystem/wasmer/building-from-source))!
-*You can find more `wasm/wat` examples in the [examples](./examples) directory.*
+### Testing
-### Docs
+Test you want? The [Wasmer docs will show you how](https://new-docs.wasmer.io/ecosystem/wasmer/building-from-source/testing).
-Wasmer documentation lives on [docs.wasmer.io](https://docs.wasmer.io).
+## Community
+Wasmer has an amazing community developers and contributors. Welcome, please join us! 👋
-## Code Structure
+### Channels
-Wasmer is structured into different directories:
-
-- [`src`](./src): code related to the Wasmer executable itself
-- [`lib`](./lib): modularized libraries that Wasmer uses under the hood
-- [`examples`](./examples): some useful examples for getting started with Wasmer
-
-## Dependencies
-
-Building Wasmer requires [rustup](https://rustup.rs/).
-
-To build Wasmer on Windows, download and run [`rustup-init.exe`](https://win.rustup.rs/)
-then follow the onscreen instructions.
-
-To build on other systems, run:
-
-```sh
-curl https://sh.rustup.rs -sSf | sh
-```
-
-### Other dependencies
-
-Please select your operating system:
-
-
- macOS
-
-
-#### macOS
-
-If you have [Homebrew](https://brew.sh/) installed:
-
-```sh
-brew install cmake
-```
-
-Or, if you have [MacPorts](https://www.macports.org/install.php):
-
-```sh
-sudo port install cmake
-```
-
-
-
-
-
- Debian-based Linuxes
-
-
-#### Debian-based Linuxes
-
-```sh
-sudo apt install cmake pkg-config libssl-dev
-```
-
-
-
-
-
- FreeBSD
-
-
-#### FreeBSD
-
-```sh
-pkg install cmake
-```
-
-
-
-
-
- Windows
-
-
-#### Windows (MSVC)
-
-Windows support is _experimental_. WASI is fully supported, but Emscripten support is in the works (this means
-nginx and Lua do not work on Windows - you can track the progress on [this issue](https://github.com/wasmerio/wasmer/issues/176)).
-
-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. Install [CMake](https://cmake.org/download/). Ensure CMake is in your PATH.
-
-5. Install [LLVM 8.0](https://prereleases.llvm.org/win-snapshots/LLVM-8.0.0-r351033-win64.exe)
-
-
-
-## Building
-
-[](https://blog.rust-lang.org/2019/12/19/Rust-1.40.0.html)
-
-Wasmer is built with [Cargo](https://crates.io/), the Rust package manager.
-
-The Singlepass backend requires nightly, so if you want to use it,
-
-Set Rust Nightly:
-
-```
-rustup default nightly
-```
-
-Otherwise an up to date (see badge above) version of stable Rust will work.
-
-And install Wasmer
-
-```sh
-# checkout code
-git clone https://github.com/wasmerio/wasmer.git
-cd wasmer
-
-# install tools
-make release-clif # To build with cranelift (default)
-
-make release-llvm # To build with llvm support
-
-make release-singlepass # To build with singlepass support
-
-# or
-make release # To build with singlepass, cranelift and llvm support
-```
-
-## Testing
-
-Thanks to [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:
-
-```sh
-rustup default nightly
-make test
-```
-
-### Testing backends
-
-Each backend can be tested separately:
-
-* Singlepass: `make singlepass`
-* Cranelift: `make cranelift`
-* LLVM: `make llvm`
-
-### Testing integrations
-
-Each integration can be tested separately:
-
-* Spec tests: `make spectests`
-* Emscripten: `make emtests`
-* WASI: `make wasitests`
-* Middleware: `make middleware`
-* C API: `make capi`
-
-## Benchmarking
-
-Benchmarks can be run with:
-
-```sh
-make bench-[backend]
-
-# for example
-make bench-singlepass
-```
-
-## Roadmap
-
-Wasmer is an open project guided by strong principles, aiming to be modular, flexible and fast. It is open to the community to help set its direction.
-
-Below are some of the goals of this project (in order of priority):
-
-- [x] It should be 100% compatible with the [WebAssembly spec tests](https://github.com/wasmerio/wasmer/tree/master/lib/spectests/spectests)
-- [x] It should be fast _(partially achieved)_
-- [x] Support WASI - released in [0.3.0](https://github.com/wasmerio/wasmer/releases/tag/0.3.0)
-- [x] Support Emscripten calls
-- [ ] Support Go JS ABI calls _(in the works)_
-
-## Architecture
-
-If you would like to know how Wasmer works under the hood, please see [docs/architecture.md](./docs/architecture.md).
-
-## License
-
-Wasmer is primarily distributed under the terms of the [MIT license](http://opensource.org/licenses/MIT) ([LICENSE](./LICENSE)).
-
-[ATTRIBUTIONS](./ATTRIBUTIONS.md)
+- [Slack](https://slack.wasmer.io/)
+- [Twitter](https://twitter.com/wasmerio)
+- [Facebook](https://www.facebook.com/wasmerio)
+- [Email](mailto:hello@wasmer.io)
diff --git a/docs/assets/languages/c.svg b/assets/languages/c.svg
similarity index 100%
rename from docs/assets/languages/c.svg
rename to assets/languages/c.svg
diff --git a/docs/assets/languages/cpp.svg b/assets/languages/cpp.svg
similarity index 100%
rename from docs/assets/languages/cpp.svg
rename to assets/languages/cpp.svg
diff --git a/docs/assets/languages/csharp.svg b/assets/languages/csharp.svg
similarity index 100%
rename from docs/assets/languages/csharp.svg
rename to assets/languages/csharp.svg
diff --git a/docs/assets/languages/elixir.png b/assets/languages/elixir.png
similarity index 100%
rename from docs/assets/languages/elixir.png
rename to assets/languages/elixir.png
diff --git a/docs/assets/languages/go.svg b/assets/languages/go.svg
similarity index 100%
rename from docs/assets/languages/go.svg
rename to assets/languages/go.svg
diff --git a/docs/assets/languages/js.svg b/assets/languages/js.svg
similarity index 100%
rename from docs/assets/languages/js.svg
rename to assets/languages/js.svg
diff --git a/docs/assets/languages/php.svg b/assets/languages/php.svg
similarity index 100%
rename from docs/assets/languages/php.svg
rename to assets/languages/php.svg
diff --git a/docs/assets/languages/postgres.svg b/assets/languages/postgres.svg
similarity index 100%
rename from docs/assets/languages/postgres.svg
rename to assets/languages/postgres.svg
diff --git a/docs/assets/languages/python.svg b/assets/languages/python.svg
similarity index 100%
rename from docs/assets/languages/python.svg
rename to assets/languages/python.svg
diff --git a/docs/assets/languages/r.svg b/assets/languages/r.svg
similarity index 100%
rename from docs/assets/languages/r.svg
rename to assets/languages/r.svg
diff --git a/docs/assets/languages/ruby.svg b/assets/languages/ruby.svg
similarity index 100%
rename from docs/assets/languages/ruby.svg
rename to assets/languages/ruby.svg
diff --git a/docs/assets/languages/rust.svg b/assets/languages/rust.svg
similarity index 100%
rename from docs/assets/languages/rust.svg
rename to assets/languages/rust.svg
diff --git a/docs/assets/languages/swift.svg b/assets/languages/swift.svg
similarity index 100%
rename from docs/assets/languages/swift.svg
rename to assets/languages/swift.svg
diff --git a/logo.png b/assets/logo.png
similarity index 100%
rename from logo.png
rename to assets/logo.png
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 24aa07d58..75bec4daf 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -13,7 +13,6 @@ jobs:
vmImage: "macos-10.14"
steps:
- checkout: self
- submodules: true
- template: .azure/install-rust.yml
- script: |
rustup component add rustfmt
@@ -28,7 +27,6 @@ jobs:
vmImage: "ubuntu-18.04"
steps:
- checkout: self
- submodules: true
- template: .azure/install-rust.yml
- template: .azure/install-llvm.yml
- template: .azure/install-sccache.yml
@@ -63,7 +61,6 @@ jobs:
condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/staging', 'refs/heads/trying')
steps:
- checkout: self
- submodules: true
- template: .azure/install-rust.yml
- template: .azure/install-llvm.yml
- template: .azure/install-sccache.yml
@@ -97,7 +94,6 @@ jobs:
condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/staging', 'refs/heads/trying')
steps:
- checkout: self
- submodules: true
- template: .azure/install-rust.yml
- template: .azure/install-llvm.yml
- template: .azure/install-sccache.yml
@@ -129,7 +125,6 @@ jobs:
)
steps:
- checkout: self
- submodules: true
- template: .azure/install-rust.yml
- template: .azure/install-llvm.yml
- template: .azure/install-sccache.yml
@@ -148,10 +143,13 @@ jobs:
displayName: Build (Windows)
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
- bash: |
+ git clone --branch $WAPM_VERSION https://github.com/wasmerio/wapm-cli.git
make wapm
displayName: Build WAPM
condition: |
startsWith(variables['Build.SourceBranch'], 'refs/tags')
+ env:
+ WAPM_VERSION: 0.4.3
- bash: |
make build-install-package
cp ./wasmer.tar.gz ./artifacts/$(./scripts/binary-name.sh)
@@ -199,7 +197,6 @@ jobs:
)
steps:
- checkout: self
- submodules: true
- template: .azure/install-rust.yml
- template: .azure/install-llvm.yml
- template: .azure/install-sccache.yml
@@ -243,7 +240,6 @@ jobs:
condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/staging', 'refs/heads/trying')
steps:
- checkout: self
- submodules: true
- template: .azure/install-rust.yml
- template: .azure/install-llvm.yml
- template: .azure/install-sccache.yml
diff --git a/docs/architecture.md b/docs/architecture.md
deleted file mode 100644
index e1d1c4ae3..000000000
--- a/docs/architecture.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# Wasmer Architecture
-
-Wasmer uses the following components:
-
-- Compiler backends: for compiling Wasm binaries to machine code ([more info here](https://github.com/wasmerio/wasmer/tree/master/lib#backends))
-- [wabt](https://github.com/pepyakin/wabt-rs): for transforming `.wast` files to `.wasm` and running WebAssembly spec tests
-- [wasmparser](https://github.com/yurydelendik/wasmparser.rs): for parsing the `.wasm` files and translating them into WebAssembly modules
-
-## How Wasmer works
-
-The first time you run `wasmer run myfile.wasm`, Wasmer will:
-
-- Check if is a `.wast` file, and if so, transform it to `.wasm`
-- Check that the provided binary is a valid WebAssembly one, i.e. its binary format starts with `\0asm`.
-- Parse it with `wasmparser` and generate a `Module` from it
-- Generate an `Instance` with the proper `import_object` (that means, if is detected to be an Emscripten file, it will add the Emscripten expected imports)
-- Try to call the WebAssembly `start` function, or if it does not exist, try to search for the function that is exported as `main`
-
-Find a more detailed explanation of the process below:
-
-### Phase 1: Generating the Module / IR
-
-As the WebAssembly file is being parsed, it will read the sections in the WebAssembly file (memory, table, function, global and element definitions) using the `Module` (or `ModuleEnvironment`) as the structure to hold this information.
-
-However, the real IR initialization happens while a function body is being parsed/created, i.e. when the parser reads the section `(func ...)`.
-While the function body is being parsed the corresponding `FuncEnvironment` methods will be called.
-
-So for example, if the function is using a table, the `make_table` method within that `FuncEnvironment` will be called.
-Each of this methods will return the corresponding IR representation.
-
-The `Module` creation will be finished once the parsing is done, and will hold all the function IR as well as the imports/exports.
-
-### Phase 2: Compiling the Functions
-
-Now that we have a `Module` (and all its definitions living in `ModuleInfo`) we should be ready to compile its functions.
-
-Right now, the `Instance` is the one in charge of compiling this functions into machine code.
-
-When creating the `Instance`, each of the function bodies (IR) will be compiled into machine code that our architecture can understand.
-Once we have the compiled values, we will push them to memory and mark them as executable, so we can call them from anywhere in our code.
-
-#### Relocations
-
-Sometimes the functions that we generate will need to call other functions, but the generated code has no idea how to link these functions together.
-
-For example, if a function `A` is calling function `B` (that means is having a `(call b)` on its body) while compiling `A` we will have no idea where the function `B` lives on memory (as `B` is not yet compiled nor pushed into memory).
-
-For that reason, we will start collecting all the calls that function `A` will need to do under the hood, and save it's offsets.
-We do that, so we can patch the function calls after compilation, to point to the correct memory address.
-
-Note: sometimes this functions rather than living in the same WebAssembly module, they will be provided as import values.
-
-#### Traps
-
-There will be other times where the function created will cause a trap (for example, if executing `0 / 0`).
-When this happens, we will save the offset of the trap (while the function is being compiled).
-
-Thanks to that when we execute a function, if it traps (that means a sigaction is called), we would be able to backtrack from a memory address to a specific trap case.
-
-### Phase 3: Finalizing
-
-Once all the functions are compiled and patched with the proper relocations addresses, we will initialize the corresponding tables (where we save the pointers to all the exported functions), memories and globals that the instance need.
-
-Once that's finished, we will have a `Instance` function that will be ready to execute any function we need.
-
-## Emscripten
-
-Wasmer's Emscripten integration tries to wrap (and emulate) all the different syscalls that Emscripten needs.
-We provide this integration by filling the `import_object` with the Emscripten functions, while instantiating the WebAssembly Instance.
-
-## WASI
-
-Wasmer's WASI integration implements all the different syscalls that WASI needs.
-We provide this integration by filling the `import_object` with the WASI functions, while instantiating the WebAssembly Instance.
diff --git a/docs/debugging.md b/docs/debugging.md
deleted file mode 100644
index 8d49d5217..000000000
--- a/docs/debugging.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# Debugging Wasmer
-
-## When is this document useful?
-
-If you're developing wasmer or running into issues, this document will explain to useful techniques and common errors.
-
-## Tracing syscalls
-
-To trace syscalls, compile with the `debug` feature (`cargo build --features "debug"`). For even more verbose messages, use the `trace` flag.
-
-## Tracing calls
-
-TODO: did we disable tracing calls? if not talk about how to enable it
-TODO: someone with more context on the backends mention which backends this works for
-
-If you'd like to see all calls and you're using emscripten, you can use a symbol map to get better error output with the `em-symbol-map` flag.
-
-## Common things that can go wrong
-
-### Missing imports
-
-If, when attempting to run a wasm module, you get an error about missing imports there are a number of things that could be going wrong.
-
-The most likely is that we haven't implemented those imports for your ABI. If you're targeting emscripten, this is probably the issue.
-
-However if that's not the case, then there's a chance that you're using an unsupported ABI (let us know!) or that the wasm is invalid for the detected ABI. (TODO: link to wasm contracts or something)
-
-### Hitting `undefined`
-
-If this happens it's because wasmer does not have full support for whatever feature you tried to use. Running with tracing on can help clarify the issue if it's not clear from the message.
-
-To fix this, file an issue letting us know that wasmer is missing a feature that's important to you. If you'd like, you can try to implement it yourself and send us a PR.
-
-### No output
-
-If you're seeing no output from running the wasm module then it may be that:
-- this is the intended behavior of the wasm module
-- or it's very slow to compile (try compiling with a faster backend like cranelift (the default) or singlepass (requires nightly))
-
-### Segfault
-
-If you're seeing a segfault while developing wasmer, chances are that it's a cache issue. We reset the cache on every version bump, but if you're running it from source then the cache may become invalid, which can lead to segfaults.
-
-To fix this delete the cache with `wasmer cache clean` or run the command with the `disable-cache` flag (`wasmer run some.wasm --disable-cache`)
-
-If you're seeing a segfault with a released version of wasmer, please file an issue so we can ship an updated version as soon as possible.
-
-### Something else
-
-If none of this has helped with your issue, let us know and we'll do our best to help.
diff --git a/docs/docker.md b/docs/docker.md
deleted file mode 100644
index 2086284f7..000000000
--- a/docs/docker.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# Dockerfile Documentation
-The `Dockerfile` included in the project root directory could be used for development purposes or to build a small image containing the `wasmer` executable.
-
-The `wasmer-build-env` stage in the Dockerfile contains the dependencies needed to compile Wasmer including LLVM.
-
-The `wasmer-debug-env` stage adds the `valgrind` profiling tool to the `wasmer-build-env` stage.
-
-The `wasmer-build` stage in the Dockerfile will copy the current directory, assuming the build context is the `wasmer` project, and build the project using `cargo build --release`.
-
-The `wasmer` stage will copy the resulting `wasmer` executable from the `wasmer-build` stage into a new base image to create a smaller image containing `wasmer`.
-
-## Example Usages
-
-### Wasmer image
-1. From the `wasmer` project directory, build the image:
-`docker build -t wasmer --target=wasmer .`
-
-2. List options:
-`docker run wasmer --help`
-
-3. Mount a directory, and run an example wasm file:
-`docker run -v /Users/admin/Documents/wasmer-workspace:/root/wasmer-workspace wasmer run /root/wasmer-workspace/examples/hello.wasm`
-
-### Profiling
-1. Build `wasmer-debug-env`:
- `docker build --tag=wasmer-debug-env --target wasmer-debug-env .`
-
-2. Mount a directory from the host and run interactively:
- `docker run -it -v /Users/admin/Documents/wasmer-workspace:/home/circleci/wasmer-workspace wasmer-debug-env /bin/bash`
-
-3. Inside the container, build `wasmer` and run profiling tool:
-```
-cd /home/circleci/wasmer-workspace/wasmer`
-cargo build
-valgrind --tool=callgrind --dump-instr=yes --collect-jumps=yes --simulate-cache=yes target/debug/wasmer run test.wasm
-```
-
-The `callgrind.out` can be viewed with the `qcachegrind` tool on Mac OS (`brew install qcachegrind`).
-
diff --git a/docs/feature_matrix.md b/docs/feature_matrix.md
deleted file mode 100644
index 18d303270..000000000
--- a/docs/feature_matrix.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# Feature Table
-
-## Compiler Backend
-
-| | Singlepass | Cranelift | LLVM |
-| - | :-: | :-: | :-: |
-| Caching | ✅ | ✅ | ✅ |
-| Emscripten | ✅ | ✅ | ✅ |
-| Metering | ✅ | ⬜ | ✅ |
-| Multi-value return | ⬜ | ⬜ | ⬜ |
-| OSR | 🔄 | ⬜ | 🔄 |
-| SIMD | ⬜ | ⬜ | ✅ |
-| WASI | ✅ | ✅ | ✅ |
-| WASMER_BACKTRACE | ✅ | ⬜ | ⬜ |
-
-## Operating System
-| | GNU Linux | Mac OSX | Windows NT |
-| - | :-: | :-: | :-: |
-| Cranelift Backend | ✅ | ✅ | ✅ |
-| LLVM Backend | ✅ | ✅ | ✅ |
-| Singlepass Backend | ✅ | ✅ | [#347](https://github.com/wasmerio/wasmer/issues/347) |
-| WASI | ✅ | ✅ | ✅* |
-
-* `poll_fd` is not fully implemented for Windows yet
-
-## Language integration
-
-TODO: define a set of features that are relevant and mark them here
-
-Current ideas:
-
-- Callbacks
-- Metering
-- Caching
-
-> TODO: expand this table, it's focused on new features that we haven't implemented yet and doesn't list all language integrations
-
-| | Rust | C / C++ | Go | Python | Ruby |
-| - | :-: | :-: | :-: | :-: | :-: |
-| Terminate in host call | ✅ | ⬜ | ⬜ | ⬜ | ⬜ |
-| WASI | ✅ | ✅ | 🔄 | ⬜ | ⬜ |
-| WASI FS API | ✅ | ⬜ | ⬜ | ⬜ | ⬜ |
diff --git a/Dockerfile.build b/scripts/Dockerfile
similarity index 100%
rename from Dockerfile.build
rename to scripts/Dockerfile
diff --git a/build b/scripts/build
similarity index 95%
rename from build
rename to scripts/build
index eee434dbb..6c6b07b07 100755
--- a/build
+++ b/scripts/build
@@ -7,7 +7,7 @@
# To use the script, first make sure Docker is installed. Then build the
# sandbox image with:
#
-# docker build --file Dockerfile.build --tag wasmer-build .
+# docker build --file Dockerfile --tag wasmer-build .
#
# After the sandbox image is built successfully, you can run commands in it
# with this script.
diff --git a/install.sh b/scripts/install.sh
similarity index 100%
rename from install.sh
rename to scripts/install.sh
diff --git a/wapm-cli b/wapm-cli
deleted file mode 160000
index 7996b1cb0..000000000
--- a/wapm-cli
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 7996b1cb0e8418af5a312f5b033f4fb1b284464a
From 2842baca821ae0a4f8980ba2853f93c66e98cea9 Mon Sep 17 00:00:00 2001
From: Syrus Akbary
Date: Thu, 20 Feb 2020 14:49:55 -0800
Subject: [PATCH 15/22] Update README.md
---
README.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 730674401..84da80fbb 100644
--- a/README.md
+++ b/README.md
@@ -5,9 +5,11 @@
-
+
+
[Website](https://wasmer.io) • [Docs](https://docs.wasmer.io/) • [Examples](https://github.com/wasmerio/wasmer/tree/master/examples) • [Blog](https://medium.com/wasmer) • [Slack](https://slack.wasmer.io/) • [Twitter](https://twitter.com/wasmerio)
+
From f078d7d3f4ad1ebd32440ec4095e2f0993d9f0ea Mon Sep 17 00:00:00 2001
From: Syrus Akbary
Date: Thu, 20 Feb 2020 14:50:33 -0800
Subject: [PATCH 16/22] Update README.md
---
README.md | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 84da80fbb..882f22c54 100644
--- a/README.md
+++ b/README.md
@@ -4,14 +4,10 @@
-
-
[Website](https://wasmer.io) • [Docs](https://docs.wasmer.io/) • [Examples](https://github.com/wasmerio/wasmer/tree/master/examples) • [Blog](https://medium.com/wasmer) • [Slack](https://slack.wasmer.io/) • [Twitter](https://twitter.com/wasmerio)
-
-
-
+
From 1901c5088c0318e3da859a0381caa43e8021684b Mon Sep 17 00:00:00 2001
From: Syrus
Date: Thu, 20 Feb 2020 15:05:11 -0800
Subject: [PATCH 17/22] Deleted unused dockerignore
---
.dockerignore | 7 -------
1 file changed, 7 deletions(-)
delete mode 100644 .dockerignore
diff --git a/.dockerignore b/.dockerignore
deleted file mode 100644
index 29fd6ce6b..000000000
--- a/.dockerignore
+++ /dev/null
@@ -1,7 +0,0 @@
-# Ignore everything
-**
-!lib/**
-!src/**
-!examples/**
-!Cargo.toml
-!Cargo.lock
\ No newline at end of file
From 51f906a25a469f6555eaf2e0cd319c54784a9713 Mon Sep 17 00:00:00 2001
From: Syrus
Date: Thu, 20 Feb 2020 15:08:26 -0800
Subject: [PATCH 18/22] Fixed docs links
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 882f22c54..0df19f587 100644
--- a/README.md
+++ b/README.md
@@ -98,11 +98,11 @@ Wasmer runtime can be used as a library embedded in different languages, so you
**We welcome any form of contribution, especially from new members of our community** 💜
-You can check how to build the Wasmer runtime in [our awesome docs]([https://docs.wasmer.io/ecosystem/wasmer/building-from-source](https://new-docs.wasmer.io/ecosystem/wasmer/building-from-source))!
+You can check how to build the Wasmer runtime in [our awesome docs](https://docs.wasmer.io/ecosystem/wasmer/building-from-source)!
### Testing
-Test you want? The [Wasmer docs will show you how](https://new-docs.wasmer.io/ecosystem/wasmer/building-from-source/testing).
+Test you want? The [Wasmer docs will show you how](https://docs.wasmer.io/ecosystem/wasmer/building-from-source/testing).
## Community
From 25eb86afe3bdea9f661805d55420902c86014166 Mon Sep 17 00:00:00 2001
From: Syrus
Date: Thu, 20 Feb 2020 15:10:57 -0800
Subject: [PATCH 19/22] Remove make wapm from Makefile
---
Makefile | 3 ---
azure-pipelines.yml | 2 +-
2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/Makefile b/Makefile
index a7b1039e9..9d85fa499 100644
--- a/Makefile
+++ b/Makefile
@@ -350,6 +350,3 @@ docs-publish:
cd api-docs-repo && git add index.html crates/* c/*
cd api-docs-repo && (git diff-index --quiet HEAD || git commit -m "Publishing GitHub Pages")
cd api-docs-repo && git push origin gh-pages
-
-wapm:
- cargo build --release --manifest-path wapm-cli/Cargo.toml --features "telemetry update-notifications"
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 75bec4daf..25c9cb166 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -144,7 +144,7 @@ jobs:
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
- bash: |
git clone --branch $WAPM_VERSION https://github.com/wasmerio/wapm-cli.git
- make wapm
+ cargo build --release --manifest-path wapm-cli/Cargo.toml --features "telemetry update-notifications"
displayName: Build WAPM
condition: |
startsWith(variables['Build.SourceBranch'], 'refs/tags')
From 22f8b416676b58913728e5ab6dfc1550eca6167f Mon Sep 17 00:00:00 2001
From: Syrus
Date: Thu, 20 Feb 2020 15:11:52 -0800
Subject: [PATCH 20/22] Improved Homebrew message
---
README.md | 2 --
1 file changed, 2 deletions(-)
diff --git a/README.md b/README.md
index 0df19f587..d3f52fa3b 100644
--- a/README.md
+++ b/README.md
@@ -48,8 +48,6 @@ curl https://get.wasmer.io -sSfL | sh
Alternative: Install with Homebrew
-If you have [Homebrew](https://brew.sh/) installed in your system:
-
```sh
brew install wasmer
```
From 903d2f7344304b6f6b4ae0bac5bad9dc5edf3c94 Mon Sep 17 00:00:00 2001
From: Syrus Akbary
Date: Thu, 20 Feb 2020 15:26:30 -0800
Subject: [PATCH 21/22] Update README.md
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index d3f52fa3b..7fedc6999 100644
--- a/README.md
+++ b/README.md
@@ -4,10 +4,8 @@
-
-[Website](https://wasmer.io) • [Docs](https://docs.wasmer.io/) • [Examples](https://github.com/wasmerio/wasmer/tree/master/examples) • [Blog](https://medium.com/wasmer) • [Slack](https://slack.wasmer.io/) • [Twitter](https://twitter.com/wasmerio)
-
+
@@ -19,6 +17,8 @@
+[Website](https://wasmer.io) • [Docs](https://docs.wasmer.io/) • [Examples](https://github.com/wasmerio/wasmer/tree/master/examples) • [Blog](https://medium.com/wasmer) • [Slack](https://slack.wasmer.io/) • [Twitter](https://twitter.com/wasmerio)
+
[Wasmer](https://wasmer.io/) is a standalone WebAssembly runtime for running WebAssembly [outside of the browser](https://webassembly.org/docs/non-web/):
* *Universal*: Wasmer is available in **Linux, macOS and Windows** (for both x86 and [ARM](https://medium.com/wasmer/running-webassembly-on-arm-7d365ed0e50c))
* *Pluggable*: Wasmer can be used from almost **any programming language**
From 5455616463383a5886223d0042459610eae0d95a Mon Sep 17 00:00:00 2001
From: Syrus Akbary
Date: Thu, 20 Feb 2020 15:31:19 -0800
Subject: [PATCH 22/22] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 7fedc6999..57c017ff8 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@
[Website](https://wasmer.io) • [Docs](https://docs.wasmer.io/) • [Examples](https://github.com/wasmerio/wasmer/tree/master/examples) • [Blog](https://medium.com/wasmer) • [Slack](https://slack.wasmer.io/) • [Twitter](https://twitter.com/wasmerio)
[Wasmer](https://wasmer.io/) is a standalone WebAssembly runtime for running WebAssembly [outside of the browser](https://webassembly.org/docs/non-web/):
-* *Universal*: Wasmer is available in **Linux, macOS and Windows** (for both x86 and [ARM](https://medium.com/wasmer/running-webassembly-on-arm-7d365ed0e50c))
+* *Universal*: Wasmer is available in **Linux, macOS and Windows** (for both Desktop and [ARM](https://medium.com/wasmer/running-webassembly-on-arm-7d365ed0e50c))
* *Pluggable*: Wasmer can be used from almost **any programming language**
* *Safe*: supporting [WASI](https://github.com/WebAssembly/WASI) and [Emscripten](https://emscripten.org/)