Commit Graph

3199 Commits

Author SHA1 Message Date
Pekka Enberg
b9e1607043 Add a Docker sandbox for building Wasmer
Building Wasmer is bit of a pain, because it requires Rust nightly, and
bunch of OS specific packages.

To make building easier, this adds a "build" script at the top-level
directory, which can be used to build Wasmer within a Docker sandbox
that has all the necessary dependencies installed. The build environment
is based on latest Ubuntu 19.04.

You first need to build a Docker image of the sandbox:

    docker build --file Dockerfile.build --tag wasmer-build .

Then, to build Wasmer, run:

    ./build make

To test Wasmer, run:

    ./build make test

and so on.

You can also drop into a shell within the Docker with:

    ./build

The "build" script bind mounts current directory as "/wasmer" in the
Docker container, which allows inspecting the build contents like you
had built them on your local machine.

For future improvements, we should consider:

  - Consolidation with existing Dockerfile (that is used for Circle CI)

  - Publishing the build sandbox image on Docker Hub so that people
    don't have to build it themselves

  - Moving dependency installation to separate script, which can be
    reused outside of the Docker sandbox.

The work has been inspired by "devtool" in the Firecracker project:

  https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool

and "dbuild" in the Scylla project:

  https://github.com/scylladb/scylla/blob/master/tools/toolchain/dbuild
2019-07-29 21:18:04 +03:00
Yaron Wittenstein
784e65d587 making wasmer_byte_array fields public 2019-07-29 17:24:43 +03:00
Yaron Wittenstein
8408260edd wasmer-c-api: adding #[derive(Debug)] for wasmer_result_t (so that we can do assert_eq!) 2019-07-29 17:10:17 +03:00
Yaron Wittenstein
a8d2469689 wasmer-c-api: returning back pub(crate) fn inner for export.rs 2019-07-29 13:44:56 +03:00
Yaron Wittenstein
10fc660aad wasmer_byte_array visibility revert (see PR: "wasmer-c-api-changes: making wasmer_byte_array fields public #589") 2019-07-29 13:41:28 +03:00
Nick Lewycky
11f66d287b Improve NaN handling by canonicalizing NaNs before most operations.
Not handled here is @llvm.minnum and @llvm.maxnum which should be replaced with
@llvm.minimum and @llvm.maximum, but using those currently leads to LLVM backend
fatal errors.
2019-07-28 22:53:48 -07:00
Nick Lewycky
2f021f0e2a LLVM srem is undefined in cases where i32.rem_s and i64.rem_s are defined. 2019-07-28 22:53:48 -07:00
Brandon Fish
8098b7e44d Merge branch 'master' into feature/spectests-runner 2019-07-26 22:15:42 -05:00
bors[bot]
f483c89da7 Merge #586
586: Fixes case with empty module, handle case with no signatures r=bjfish a=bjfish

thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:373:21

Co-authored-by: Brandon Fish <brandon.j.fish@gmail.com>
2019-07-26 23:20:42 +00:00
Brandon Fish
d7c11bcf5f Fixes case with empty module, handle case with no signatures 2019-07-26 17:58:57 -05:00
bors[bot]
53c343bc6f Merge #579
579: fix caching for other backends, improve default compiler code r=MarkMcCaskey a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Syrus Akbary <me@syrusakbary.com>
2019-07-26 22:21:00 +00:00
bors[bot]
e89af86cb7 Merge #585
585: add rust example to CI r=MarkMcCaskey a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-07-26 22:01:59 +00:00
Mark McCaskey
ce64f7ad0f Add wasm plugin rust example test to bors.toml 2019-07-26 15:00:52 -07:00
bors[bot]
cf0a10124d Merge #584
584: Add --enable-simd flag to wasmer run and wasmer validate. r=nlewycky a=nlewycky



Co-authored-by: Nick Lewycky <nicholas@mxc.ca>
2019-07-26 19:49:22 +00:00
Mark McCaskey
a666fb3e4a Add Rust plugin example example to CI 2019-07-26 11:56:18 -07:00
Nick Lewycky
6cddc25ddd Derive Debug on these small structs. 2019-07-26 11:12:13 -07:00
Nick Lewycky
8f417f3d59 Add --enable-simd flag to wasmer run and wasmer validate. 2019-07-26 00:34:02 -07:00
Brandon Fish
459837f412 Initial commit of wast spectest runner 2019-07-25 22:31:19 -05:00
Syrus Akbary
ab5f28851a
Merge pull request #578 from vavrusa/master
llvm-backend: export FunctionCodeGenerator and ModuleCodeGenerator
2019-07-25 17:08:50 -07:00
Mark McCaskey
2cfa97357f
Merge pull request #582 from wasmerio/fix/clif-semver-nightmare
fix semver issue with clif 0.31 + new version of wasmparser
2019-07-25 11:11:10 -07:00
Mark McCaskey
d1a5cc9139 fix semver issue with clif 0.31 + new version of wasmparser 2019-07-25 10:38:20 -07:00
Yaron Wittenstein
f04d552361 wasmer-c-api:
* error.rs - changing `update_last_error` visibility to `pub`.
* error.rs - changing `CApiError` `msg` field visibility to `pub`.
2019-07-25 15:46:57 +03:00
Yaron Wittenstein
015616b541 export.rs - changing FuncPointer inner visibility to pub 2019-07-25 14:59:59 +03:00
Yaron Wittenstein
6cc31d3b49 lib.rs - making wasmer_byte_array fields public 2019-07-25 11:42:47 +03:00
Syrus Akbary
4ada51957d
Merge branch 'master' into feature/caching-fix-and-better-default-compiler 2019-07-24 18:58:45 -07:00
Syrus Akbary
c767b265d7
Improved CHANGELOG
Added dates to different versions and updated missing PRs
2019-07-24 18:50:26 -07:00
Marek Vavruša
659f088c4f llvm-backend: export FunctionCodeGenerator and ModuleCodeGenerator
This is in line with the singlepass-backend to be able to use LLVM MCG with
a StreamingCompiler.
2019-07-24 18:46:35 -07:00
Syrus Akbary
947de78c3e
Added Twitter badge 2019-07-24 18:35:57 -07:00
Syrus Akbary
ec65abb289
Merge pull request #580 from wasmerio/feature/various-improvements
Various improvements
2019-07-24 18:18:26 -07:00
Syrus
680e4b8577 Improved README installation instructions 2019-07-24 18:15:18 -07:00
Syrus
76daa7b3fd Improved Wasmer Backends documentation 2019-07-24 18:06:59 -07:00
Mark McCaskey
99b75c4dea update changelog 2019-07-24 17:46:32 -07:00
Syrus
0191de4e50 Improved WAPM mentions 2019-07-24 17:44:06 -07:00
Syrus
0f5131303d Simplified examples 2019-07-24 17:43:17 -07:00
Syrus
3bca3ee983 Make dependency installation easier to read 2019-07-24 17:42:03 -07:00
Syrus
c89848f984 Moved scripts to scripts folder 2019-07-24 17:36:08 -07:00
Syrus
ac859ac531 Added CODEOWNERS file 2019-07-24 17:32:04 -07:00
Mark McCaskey
a3089a4501 fix caching for other backends, improve default compiler code 2019-07-24 17:31:59 -07:00
Syrus Akbary
e877e6d6df
Merge pull request #542 from wasmerio/simd
Initial commit of SIMD support in wasmer.
2019-07-24 15:35:38 -07:00
nlewycky
624f3459ab
Merge branch 'master' into simd 2019-07-24 14:44:52 -07:00
Syrus Akbary
6a810bc220
Merge pull request #561 from YaronWittenstein/ctx-drop-finalizer
* vm.rs - calling `Ctx` `data_finalizer` upon destruction
2019-07-24 14:36:41 -07:00
nlewycky
361a027ec9
Only enable SIMD when using the LLVM backend.
Co-Authored-By: Syrus Akbary <me@syrusakbary.com>
2019-07-24 14:10:09 -07:00
nlewycky
f6240721ea
Merge branch 'master' into simd 2019-07-24 14:08:24 -07:00
Nick Lewycky
4b1bc24a2b Update cranelift to the version crates.io.
This is needed in order for the resulting wasmer to be releasable.
2019-07-24 14:06:19 -07:00
Mark McCaskey
610c5bfe1f
Merge branch 'master' into ctx-drop-finalizer 2019-07-24 13:52:57 -07:00
Mark McCaskey
05be42300e
Merge pull request #576 from wasmerio/fix/dropping-bad-data
fix Drop of uninit Ctx; use MaybeUninit
2019-07-24 13:51:30 -07:00
Mark McCaskey
1574a33ee8 Merge branch 'fix/dropping-bad-data' of github.com:wasmerio/wasmer into fix/dropping-bad-data 2019-07-24 13:50:24 -07:00
Mark McCaskey
a534ecb0bb increase bors timeout threshold 2019-07-24 13:49:21 -07:00
Nick Lewycky
5c1b7d2e5b Adds the SIMD tests from binaryren, updated to work with wasmer.
This test is too large and therefore does not run by default, see
`fn is_fat_test` in spectests.rs.
2019-07-24 13:48:38 -07:00
Mark McCaskey
ce9bea402c
Merge branch 'master' into fix/dropping-bad-data 2019-07-24 13:32:42 -07:00