Nick Lewycky
18307bb79c
Improve panic/unreachable/unimplemented usage. Refactor a little.
2019-07-22 12:15:56 -07:00
Nick Lewycky
4535274cf3
Update the loader interface for 128 bit types.
2019-07-22 11:23:41 -07:00
Nick Lewycky
f8e8b1cdea
Update to latest wasmer clif branch.
2019-07-22 10:59:27 -07:00
Yaron Wittenstein
c3ced14e46
Merge branch 'master' into ctx-drop-finalizer
2019-07-22 14:13:11 +03:00
Nick Lewycky
775c120b38
Update to newer wasmerio/wabt-rs.
2019-07-19 15:48:50 -07:00
Nick Lewycky
fc935710c7
Merge branch 'master' of github.com:wasmerio/wasmer into simd
2019-07-19 15:37:36 -07:00
Nick Lewycky
cd25356858
Fix shuffle and enable tests. Add support for new load_splat instructions.
...
Updates to wasmparser 0.34.0 and picks up a newer wasmerio/wabt.
2019-07-19 15:19:58 -07:00
Mark McCaskey
f15e90f8f3
Merge branch 'master' into feature/wasi-readlink
2019-07-19 13:36:27 -07:00
Mark McCaskey
a0672b3fa2
updates from code review
2019-07-19 13:36:05 -07:00
Mark McCaskey
328ef4e66e
use correct debug macro on Windows
2019-07-19 12:55:58 -07:00
Mark McCaskey
d74560e1d4
impl fd_close
2019-07-19 12:10:45 -07:00
Mark McCaskey
a8a0dbed91
improve abstraction impl rm syscalls, properly finish create_dir
2019-07-19 11:47:31 -07:00
Mark McCaskey
9910527b30
further improve sandbox, rework syscalls, add tests
2019-07-18 17:14:01 -07:00
Nick Lewycky
3e009c5971
Reformat.
2019-07-18 13:40:24 -07:00
Nick Lewycky
ea93b68165
Bump size of global up to 128 bits.
...
Fixes last spec test failure from the WAVM SIMD spec test.
2019-07-18 13:39:41 -07:00
Nick Lewycky
3be6a024aa
Fix bugs in V128 support based on results from testing against simd spec test.
...
These is one test failure remaining with V128 global variables.
* Fix trunc_sat. We need both the largest float that can be converted to an int
and the largest int, they are not the same number.
* Implement calling of functions that take V128 by passing in two i64's.
* Improve support for V128 in spectests. Parse binary modules with the same
features as the outer spectest. Fix compilation error involving Result in
emitted .rs file. Handle V128 in more cases when producing .rs file. Parse
the wast script with SIMD enabled.
* Adjust the WAVM spectest so that it parses with WABT and mostly passes with
wasmer. Wabt is particular about ints not having decimal places and floats
having decimal places. Wasmer does not support mutable globals or shared
memory. Tests of shuffles are disabled. Some assert_invalid tests that wabt
won't even parse are disabled.
2019-07-18 12:52:59 -07:00
nlewycky
3f3bf38d94
Fix typo in comment.
...
"Then thou must count to three. Three shall be the number of the counting and the number of the counting shall be three. Four shalt thou not count, neither shalt thou count two, excepting that thou then proceedeth to three."
2019-07-18 11:24:25 -07:00
Mark McCaskey
dc19bf32b9
fmt
2019-07-17 15:47:59 -07:00
Mark McCaskey
e7e1b8c7d3
get tests passing! (more tests and clean up required)
2019-07-17 15:32:47 -07:00
Mark McCaskey
65bc9a5203
massive fs rewrite; add virtual root, tests
2019-07-17 14:00:51 -07:00
Nick Lewycky
eeac6d5d2d
Merge branch 'master' of github.com:wasmerio/wasmer into simd
2019-07-16 19:16:45 -07:00
Mark McCaskey
78702fc1a0
Merge remote-tracking branch 'origin/master' into feature/wasi-readlink
2019-07-16 13:50:56 -07:00
Mark McCaskey
cea7d5da7d
add readlink test
2019-07-16 13:49:45 -07:00
Mark McCaskey
19f544e489
update to 0.5.6
2019-07-16 13:12:21 -07:00
Mark McCaskey
dd1ddea37b
wip fs improvements
2019-07-15 17:37:11 -07:00
Syrus Akbary
193665461b
Merge branch 'master' into improve-wasi-tests
2019-07-15 12:43:21 -07:00
nlewycky
42780042ef
Fix typo in comment.
2019-07-15 10:55:26 -07:00
Mark McCaskey
affb9465d5
update rustfmt.toml to ignore and fmt
2019-07-15 10:43:30 -07:00
Mark McCaskey
53d7ecba2c
improve wasitest infra and fix fseek test
2019-07-15 10:36:12 -07:00
Mark McCaskey
122963909f
symlink code from last week
2019-07-15 09:59:07 -07:00
Yaron Wittenstein
ad10152982
* vm.rs - calling Ctx
data_finalizer
upon destruction
2019-07-15 15:14:09 +03:00
Syrus
24f1e99ead
Fixed WASI tests
2019-07-13 16:00:18 -07:00
Syrus
b0ead8fc04
Merge branch 'master' into feature/complete-fd-seek
2019-07-13 15:40:51 -07:00
Brandon Fish
ed19fd2913
Update loader-kernel feature name, fix compilation track state, cargo fmt
2019-07-12 23:02:57 -05:00
Mark McCaskey
5119f07ea3
implement wasi::readlink
2019-07-12 15:58:28 -07:00
Mark McCaskey
a608f3aad0
fix wasi test template code
2019-07-12 15:17:10 -07:00
Mark McCaskey
cbac3ed92d
finish implementation of wasi::fd_seek, fix bug in filestat
2019-07-12 15:10:16 -07:00
losfair
977fd1e25e
Fix trap offset lookup.
2019-07-13 00:17:33 +08:00
losfair
450109e2bb
Fix singlepass compilation error.
2019-07-13 00:17:21 +08:00
losfair
08cdc9a42f
Allow disabling state tracking for faster startup.
2019-07-12 23:37:40 +08:00
losfair
f327feccef
Merge remote-tracking branch 'origin/master' into fix/imul-relax
2019-07-12 23:37:01 +08:00
nlewycky
278adf678a
Merge branch 'master' into nlewycky/llvm
2019-07-11 16:48:46 -07:00
Nick Lewycky
7fb88251d4
Simplify trap_if_not_representable_as_int.
...
Fix typo in function name. Use two fcmp instructions instead of unpacking the bits of the IEEE float and using integer arithmetic to determine details about its value.
2019-07-11 16:46:37 -07:00
Nick Lewycky
7045030532
Try a new list of optimization passes.
...
A few notes:
a) the inliner doesn't help because all the calls are indirect and not even opt -O2 can figure out which functions they're actually calling.
b) aggressive instruction combining is not a super-set of the instruction combiner. Instcombine is made up of a large number (probably 10,000s) of patterns, and some particularly slow ones were taken out and moved to the aggressive instruction combiner. Aggressive instcombine *only* runs that handful of optimizations, which fired zero times on our example wasm files.
c) NewGVN is not ready for production, it has asserts that fire when building sqlite or cowsay. This is why sqlite didn't build with the llvm backend.
d) Scalar-replacement-of-aggregates (sroa) is a strict superset of promote-memory-to-registers (mem2reg), and you probably want sroa because it's usually faster. It also fires 10,000s more times than mem2reg on lua.wasm.
e) Aggressive-dead-code-elimination was only deleting as much regular dead-code-elimination, but is slower because it depends on a postdominator tree (PDT) analysis that. Other passes don't need PDT so we'll have to build it for just this one pass (as opposed to regular dominator-tree which is reused by many passes). I've replaced this with bit-tracking dead-code-elimination which deletes more code than dce/adce.
2019-07-11 14:48:07 -07:00
losfair
c186e0244e
Fix compile error on imul
.
2019-07-11 20:26:20 +08:00
Johan Andersson
b41040cc59
Update to nix 0.14.
...
Instead of using a mix of nix 0.12 & 0.13
2019-07-11 12:28:56 +02:00
bors[bot]
0c4a8f77d2
Merge #543 #544
...
543: update version numbers to 0.5.5 r=MarkMcCaskey a=MarkMcCaskey
544: Use bitcast instead of alloca+load+ptrcast+store sequence. r=MarkMcCaskey a=nlewycky
Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Mark McCaskey <markmccaskey@users.noreply.github.com>
Co-authored-by: Nick Lewycky <nick@wasmer.io>
Co-authored-by: nlewycky <nick@wasmer.io>
2019-07-11 00:51:31 +00:00
nlewycky
3795b48401
Merge branch 'master' into llvm-cleanup
2019-07-10 16:58:27 -07:00
Mark McCaskey
7789d1b096
Merge branch 'master' into release-0.5.5
2019-07-10 16:35:00 -07:00
Nick Lewycky
7f00dc3cdb
Reformat.
2019-07-10 15:33:32 -07:00
Nick Lewycky
8faff26c31
Give float_bits bitcast instruction a name.
2019-07-10 15:31:18 -07:00
Mark McCaskey
50302d5d4e
use published forks of clif so we can publish again
2019-07-10 15:10:00 -07:00
Syrus
e980931329
Added simd spectest file
2019-07-10 14:43:54 -07:00
Syrus
a14d2b27b4
Added simd tests for llvm
2019-07-10 14:41:15 -07:00
Nick Lewycky
e4123433a1
Reformat.
2019-07-10 14:28:07 -07:00
Nick Lewycky
53907b0ab2
Update inkwell to our own copy until upstream supports LLVM 8.
...
LLVM 8 support from https://github.com/lumen/inkwell/tree/llvm8 .
2019-07-10 14:23:47 -07:00
Nick Lewycky
f4af4e387d
Stub out support for V128 in the C API for now.
2019-07-10 13:54:36 -07:00
Nick Lewycky
bb30434392
This .into_iter() call is equivalent to .iter() and will not move the array.
2019-07-10 13:54:36 -07:00
Nick Lewycky
fdc13563b8
Initial implementation of SIMD in the LLVM backend.
2019-07-10 13:54:32 -07:00
Nick Lewycky
3ba8100e98
Add V128 stubs to allow singlepass backend to build again.
2019-07-10 13:48:12 -07:00
Nick Lewycky
77afcea9dc
Add V128 stubs to allow LLVM backend to build again.
2019-07-10 13:48:12 -07:00
Nick Lewycky
df5c12cbe1
Add V128 to wasmer runtime. Unimplemented in clif-backend. Other backends don't build.
2019-07-10 13:48:12 -07:00
Nick Lewycky
0a1bdd449e
Update to @llvm.minimum/@llvm.maximum which requires LLVM 8.
...
The @llvm.minnum/@llvm.maxnum intrinsics don't produce correct (for wasm) outputs in all cases.
2019-07-10 13:48:12 -07:00
Nick Lewycky
ea83924547
Update to LLVM 8.0.
2019-07-10 13:48:12 -07:00
Nick Lewycky
b8d2aee80f
Update wabt to 0.8 release.
2019-07-10 13:48:12 -07:00
Nick Lewycky
9579b07a54
Enable SIMD support in wasmparser.
2019-07-10 13:48:12 -07:00
Nick Lewycky
acbface4be
Factor out creating wasmparser::ValidatingParserConfig to its own function.
2019-07-10 13:48:08 -07:00
nlewycky
d1f3fb2ec2
Merge branch 'master' into llvm-cleanup
2019-07-10 13:32:17 -07:00
Mark McCaskey
ad3d4a4679
rm clif submodule; fix master
2019-07-10 10:38:38 -07:00
Nick Lewycky
1e86e32d40
Use bitcast instead of alloca+load+ptrcast+store sequence.
2019-07-10 10:24:14 -07:00
Mark McCaskey
2ef7448e62
remove colons from feature names
2019-07-09 17:57:31 -07:00
Mark McCaskey
4752492974
update version numbers to 0.5.5
2019-07-09 17:43:04 -07:00
Mark McCaskey
74ce33919f
Merge branch 'master' into fix/abi-crate-deps
2019-07-09 15:31:45 -07:00
Mark McCaskey
4612b2bf9a
add cranelift as submodule to clif-backend
2019-07-09 14:30:31 -07:00
Mark McCaskey
6d494a297f
fix emscripten tests
2019-07-09 13:41:40 -07:00
Mark McCaskey
e0c285c652
fix emscripten dependencies by making separate test crate
2019-07-09 12:07:05 -07:00
Mark McCaskey
5bf491857b
fix abi crates depending on compilers
2019-07-09 11:58:03 -07:00
Mark McCaskey
30add2481e
do backend caching with a directory
2019-07-08 17:05:54 -07:00
Mark McCaskey
4407a7cf93
Add hidden flag --cache-key
to use prehashed modules for speed
2019-07-08 15:46:28 -07:00
Mark McCaskey
62798fd966
fix test
...
fix doc test
2019-07-08 13:21:34 -07:00
Mark McCaskey
9a3fd82a4b
Keep WashHash::generate function the same
2019-07-08 12:22:17 -07:00
Mark McCaskey
f45d523012
update tests to use backend as in cache key gen
2019-07-08 11:11:27 -07:00
Mark McCaskey
b746a88138
Update cache key generation to use backend compiler name too
2019-07-08 10:50:28 -07:00
Syrus
b67b051a4a
Updated emscripten with comment
2019-07-08 09:39:19 -07:00
Syrus
6f1a8995ca
Fixed emscripten windows vars format
2019-07-08 00:35:18 -07:00
Syrus
680b833e94
Move emscripten ___syscall221 to the unix implementation
2019-07-07 23:36:50 -07:00
Syrus
72a80a6122
FIxed emscripten windows issues
2019-07-07 22:50:50 -07:00
Syrus
69be61c9cb
Remove this calls in windows
2019-07-07 19:51:11 -07:00
Syrus
798ad03182
Improved formatting in unix syscalls
2019-07-07 19:35:46 -07:00
Syrus
f4e60c09c1
Squashed commit of the following:
...
commit 62d9da4e3e02251a0f61c904e826bc06cf964ff7
Author: Syrus <me@syrusakbary.com>
Date: Sun Jul 7 18:16:34 2019 -0700
Fixed syscall221
commit a8fde9148d50d89616d8a85a68110b89e3273229
Author: Syrus <me@syrusakbary.com>
Date: Sun Jul 7 18:16:04 2019 -0700
Improved ioctl use case
commit 5ad109d39838624ad84232a4c17714b885835893
Merge: 61526e2c
5cab8161
Author: Syrus <me@syrusakbary.com>
Date: Sun Jul 7 17:44:25 2019 -0700
Merge branch 'command/dash' into feature/emscripten-update
commit 5cab816193
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date: Sat Jul 6 20:11:49 2019 +0200
Generic IOCTLs mapping
commit 5a0dc0374c
Merge: 61cfed79
9d120ed3
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date: Sat Jul 6 17:15:02 2019 +0200
Merge remote-tracking branch 'origin/master' into command/dash
commit 61cfed7916
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date: Sat Jul 6 13:04:04 2019 +0200
Fixed implementation for syscalls 200, 201 and 202
commit 91e26d1a0e
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date: Sat Jul 6 13:03:26 2019 +0200
Improved debug messages
commit 53a8fbeb2a
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date: Sat Jul 6 13:03:04 2019 +0200
[___syscall146] Move loop out of `unsafe` zone
commit d6dd3696f1
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date: Sat Jul 6 13:01:31 2019 +0200
[___syscall140] Fixed types
commit c827a6a993
Merge: 2bc16826
5e18d04d
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date: Sat Jul 6 12:21:33 2019 +0200
Merge remote-tracking branch 'origin/master' into command/dash
commit 2bc16826b5
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date: Thu Jul 4 07:05:00 2019 +0200
Implement `getpgid` syscall
commit d464954f58
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date: Thu Jul 4 07:04:36 2019 +0200
[fcntl64] Replace mock for real implementation
commit 3fe0183d85
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date: Thu Jul 4 07:03:39 2019 +0200
[ioctl] No-of for `TIOCSPGRP` command & code clean-up
commit cc83ec9ac1
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date: Thu Jul 4 07:02:47 2019 +0200
[___syscall5] debug messages
commit 91587c8bde
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date: Thu Jul 4 07:02:20 2019 +0200
[___syscall57] debug messages
2019-07-07 19:35:09 -07:00
Syrus
61526e2c45
Improved code format
2019-07-07 17:10:55 -07:00
Syrus
d9eee3f35a
Added contains_key method to Namespace
2019-07-07 17:10:34 -07:00
Syrus
cb7a1f4486
Improved emscripten code based on comments
2019-07-07 17:10:13 -07:00
Syrus
9c96f01494
Fixed emscripten ns collision. Added ctime implementation
2019-07-07 15:55:52 -07:00
Syrus
d0b186b939
Added emscripten sbrk implementation
2019-07-06 22:05:45 -07:00
Syrus
d3d84cbc22
Formatted emscripten files
2019-07-06 17:46:48 -07:00
Syrus
15d1fd4bbb
Move emscripten pthread into its own module
2019-07-06 17:45:56 -07:00
Syrus
f5af920724
Added pthread_self emscripten method
2019-07-06 17:41:03 -07:00
Syrus
b1f868dc52
Enable shared memory in emscripten
2019-07-06 17:29:24 -07:00
Syrus
24e7c1b263
Updated compatibility with latest emscripten
2019-07-06 17:15:35 -07:00