4462 Commits

Author SHA1 Message Date
Syrus
1a960a01ae Improved lint 2019-12-20 20:45:10 -08:00
Syrus
c4d70a6b75 Use Arc instead of Rc 2019-12-20 20:37:47 -08:00
Syrus
097353d0d4 Fix lint 2019-12-20 19:20:32 -08:00
Syrus
0f45bd4f0d Fixed tiering docs 2019-12-20 19:12:35 -08:00
Syrus
c143bc8fc8 Revert emscripten changes 2019-12-20 19:09:07 -08:00
Syrus
2404203ae4 Improved based on feedback 2019-12-20 19:03:49 -08:00
Syrus
527d7072b3 Remove unsafe transmute copy 2019-12-20 18:52:30 -08:00
Syrus
294cc28135 Move inline breakpoint outside of runtime backend
There was some code smell leaking inline breakpoint implementation into the runtime core backend instead of the compiler itself
2019-12-20 18:26:56 -08:00
bors[bot]
0419df937e
Merge #1095
1095: Update to cranelift 0.52 r=nlewycky a=nlewycky

# Description
Update to cranelift 0.52.

To use our wasmer branch of cranelift, we point to its path on git. Per @syrusakbary , we don't want to push updated wasmer-clif crates until we're ready to release the matching wasmer that will use them.

# Review

- [x] Add a short description of the the change to the CHANGELOG.md file


Co-authored-by: Nick Lewycky <nick@wasmer.io>
Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-12-21 01:45:45 +00:00
Nick Lewycky
a0739b6355 Add changelog entry. 2019-12-20 17:16:54 -08:00
Nick Lewycky
c8e79178ee Update to cranelift 0.52 (wasmer branch) 2019-12-20 17:16:54 -08:00
Mark McCaskey
fe969be612 Update wasmparser to version 0.45.0 2019-12-20 17:16:54 -08:00
Mark McCaskey
8cddea341b Update to 0.45.0 wasmparser Operator names in llvm-backend 2019-12-20 17:16:54 -08:00
Mark McCaskey
adecb36d15 Update to 0.45.0 wasmparser Operator names in singlepass-backend 2019-12-20 17:15:38 -08:00
Nick Lewycky
c2f287e65b Update to cranelift 0.51. 2019-12-20 17:10:36 -08:00
bors[bot]
d5d82e2508
Merge #1096
1096: Add TBAA labels to initialization (default and copy) of locals. r=nlewycky a=nlewycky



Co-authored-by: Nick Lewycky <nick@wasmer.io>
2019-12-21 01:06:23 +00:00
Nick Lewycky
cca73c0a6f Add TBAA labels to initialization (default and copy) of locals. 2019-12-20 17:02:58 -08:00
bors[bot]
4018494f6e
Merge #1071
1071: Add support for non-trapping float-to-int conversions. r=nlewycky a=nlewycky

# Description
Rewrites LLVM implementation of non-trapping float-to-int conversions. LLVM's conversion operations produce unspecified output when the input floats are out of range for the conversion.

Add implementation to singlepass for both x86-64 and AArch64.

# Review

- [x] Add a short description of the the change to the CHANGELOG.md file


Co-authored-by: Nick Lewycky <nick@wasmer.io>
2019-12-21 00:23:31 +00:00
Nick Lewycky
bba0129150 Remove comments with register names that might not be right and don't really matter. 2019-12-20 16:20:58 -08:00
Nick Lewycky
e738a9f2b5 Name the magic constants in the singlepass backend. 2019-12-20 16:20:58 -08:00
Nick Lewycky
f00283ab03 Name the magic constants in the LLVM backend. 2019-12-20 16:20:58 -08:00
Nick Lewycky
56fd66403c Update changelog again, to move entry to new unreleased section since there's been a release. 2019-12-20 16:20:58 -08:00
Nick Lewycky
f8d792cf04 Add changelog entry. 2019-12-20 16:20:58 -08:00
Nick Lewycky
b7929e6561 Add support for non-trapping float to int conversions in singlepass+AArch64. 2019-12-20 16:20:58 -08:00
Nick Lewycky
32ed6f2c10 Enable non-trapping float to int conversions by default. 2019-12-20 16:20:58 -08:00
Nick Lewycky
d52c193e84 Finish implementation of trunc_sat in singlepass x86-64. 2019-12-20 16:20:58 -08:00
Nick Lewycky
442c40f5f1 Initial implementatio of trunc-sat instructions in singlepass. 27 test failures. 2019-12-20 16:20:58 -08:00
Nick Lewycky
6fe2f434c6 Add tests for non-trapping float to int conversions.
This breaks all of conversions.wast on singlepass. LLVM and Cranelift pass.
2019-12-20 16:20:58 -08:00
Nick Lewycky
0cfe08fff3 Correct implementation of non-trapping float to int conversions in the llvm backend. 2019-12-20 16:20:58 -08:00
Nick Lewycky
5b35313099 Use type traits to ensure that the float and int types match in trunc_sat. 2019-12-20 16:20:58 -08:00
bors[bot]
fa29a1b9f2
Merge #1092
1092: Add function to get nul-terminated strings from memory r=MarkMcCaskey a=srenatus

## Description

This is meant to fix #1086.

 I'm a bit new to this -- is this how you'd do it? Happy to take directions! 😃 

I've added a note regarding the special case in the comment.

Are there existing tests to expand?

## Review

- [x] Add a short description of the the change to the CHANGELOG.md file


Co-authored-by: Stephan Renatus <srenatus@chef.io>
2019-12-20 21:08:01 +00:00
Stephan Renatus
782be5b51a Add function to get nul-terminated strings from memory
Fixes #1086.

Signed-off-by: Stephan Renatus <srenatus@chef.io>
2019-12-20 21:53:08 +01:00
Syrus Akbary
957bfd6add
Merge pull request #1093 from wasmerio/fix/update-page-size
Update page_size crate
2019-12-20 09:33:53 -08:00
bors[bot]
6672bc1f7a
Merge #1026
1026: Bump smallvec from 0.6.13 to 1.0.0 r=MarkMcCaskey a=dependabot-preview[bot]

Bumps [smallvec](https://github.com/servo/rust-smallvec) from 0.6.13 to 1.0.0.
<details>
<summary>Release notes</summary>

*Sourced from [smallvec's releases](https://github.com/servo/rust-smallvec/releases).*

> ## v1.0.0
>  * Requires Rust 1.36 or later.
>  * [breaking change] Use `MaybeUninit` to avoid possible undefined behavior ([#162](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/162), [#170](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/170)).
>  * [breaking change] The `drain` method now takes a range argument, just like the standard `Vec::drain` ([#145](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/145)).
>  * [breaking change] Remove the `unreachable` function and replace it with the new standard `unreachable_unchecked` function ([#164](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/164)).
>  * [breaking change] Use `no_std` by default. This crate depends only on `core` and `alloc` by default. If the optional `write` feature is enabled then it depends on `std` so that `SmallVec<[u8;_]>` can implement the `std::io::Write` trait ([#173](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/173)).
>  * [breaking change] Remove the deprecated `VecLike` trait ([#165](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/165)).
>  * Add support for 96-element small vectors, `SmallVec<[T; 96]>` ([#163](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/163)).
>  * Iterators now implement `FusedIterator` ([#172](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/172)).
>  * Indexing now uses the standard `SliceIndex` trait ([#166](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/166)).
>  * Add automatic fuzz testing and MIRI testing ([#168](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/168), [#162](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/162)).
>  * Update syntax and formatting to Rust 2018 standard ([#174](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/174), [#167](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/167)).
> 
</details>
<details>
<summary>Commits</summary>

- [`34c2628`](34c26282c4) Auto merge of [#175](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/175) - mbrubeck:one, r=jdm
- [`523a6dc`](523a6dc919) Version 1.0.0
- [`a2c0504`](a2c0504511) Auto merge of [#174](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/174) - mbrubeck:2018, r=jdm
- [`a51059c`](a51059cd38) Update to Rust 2018 edition
- [`01917a6`](01917a6b1c) Auto merge of [#168](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/168) - dpc:fuzz, r=mbrubeck
- [`a3ba738`](a3ba738ce6) Add a fake stub input case for afl fuzzer
- [`85c54a5`](85c54a5689) Add simple fuzzing
- [`b2c9c65`](b2c9c65129) Auto merge of [#173](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/173) - mbrubeck:std, r=emilio
- [`fffb185`](fffb185d4f) Use no_std by default
- [`af73fbd`](af73fbdc27) Auto merge of [#172](https://github-redirect.dependabot.com/servo/rust-smallvec/issues/172) - mbrubeck:fused, r=mbrubeck
- Additional commits viewable in [compare view](https://github.com/servo/rust-smallvec/compare/v0.6.13...v1.0.0)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=smallvec&package-manager=cargo&previous-version=0.6.13&new-version=1.0.0)](https://dependabot.com/compatibility-score.html?dependency-name=smallvec&package-manager=cargo&previous-version=0.6.13&new-version=1.0.0)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)



</details>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2019-12-20 16:31:15 +00:00
Mark McCaskey
b12f346dad Update page_size crate 2019-12-20 10:57:43 -05:00
bors[bot]
572399dce8
Merge #1089
1089: Add misc doc link fixes and update old comment r=MarkMcCaskey a=MarkMcCaskey

I spent way too long trying to make things work, `#[doc(no_inline)]`, adding doc comments on top of things with doc comments, and linking in the context of inlining are way harder than they seem like they should be 🙀 

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-12-19 23:50:07 +00:00
bors[bot]
823c699ef2
Merge #1090
1090: Fix plugin example, add examples to test recipe r=syrusakbary a=MarkMcCaskey

This was reported [on spectrum](https://spectrum.chat/wasmer/general/failure-running-plugin-sample-on-mac~58c72ff0-47cd-4158-8069-fb726d7bb5dd).  This PR fixes the issue and adds it to `test` so we test it in CI.

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-12-19 23:10:25 +00:00
Mark McCaskey
ca52265a1c Fix plugin example, add examples to test recipe 2019-12-19 16:32:28 -05:00
Mark McCaskey
ad8945a555 Add misc doc link fixes and update old comment 2019-12-19 16:22:51 -05:00
Syrus
0daaa75a70 Revert incorrect toolchain changes from ”Fix azure pipelines release"
This reverts partially the commit c88196355dacc4009b2292d8d969d6d44dd8dd9a.
2019-12-19 11:57:20 -08:00
Syrus Akbary
c88196355d
Fix azure pipelines release 2019-12-19 11:54:42 -08:00
dependabot-preview[bot]
61a30804b3
Bump smallvec from 0.6.13 to 1.0.0
Bumps [smallvec](https://github.com/servo/rust-smallvec) from 0.6.13 to 1.0.0.
- [Release notes](https://github.com/servo/rust-smallvec/releases)
- [Commits](https://github.com/servo/rust-smallvec/compare/v0.6.13...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-19 19:54:26 +00:00
bors[bot]
c96559305d
Merge #1087
1087: Update stable Rust to 1.39.0; pin nightly to 2019-12-19 r=MarkMcCaskey a=MarkMcCaskey

Both of these should speed up compile times:

The new stable has better parallelization and the new nightly has [new parallelization features](https://internals.rust-lang.org/t/help-test-parallel-rustc/11503)

# Review

- [ ] Add a short description of the the change to the CHANGELOG.md file


Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-12-19 19:21:37 +00:00
Mark McCaskey
3e3fe9ac6a Update Travis CI nightly version to 2019-12-19 2019-12-19 14:20:42 -05:00
Mark McCaskey
5888f44e95 Cargo fmt with Rust 1.39.0 2019-12-19 14:06:27 -05:00
Mark McCaskey
bb9cb4e90b Update stable Rust to 1.39.0; pin nightly to 2019-12-19 2019-12-19 14:00:26 -05:00
bors[bot]
6fb52e812e
Merge #1084
1084: Prepare for 0.12.0 release r=MarkMcCaskey a=MarkMcCaskey

# Review

- [x] Add a short description of the the change to the CHANGELOG.md file


Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-12-19 16:43:39 +00:00
bors[bot]
096ea7ca97
Merge #1081
1081: Remove type_to_llvm_int_only, only use type_to_llvm. r=syrusakbary a=nlewycky



Co-authored-by: Nick Lewycky <nick@wasmer.io>
Co-authored-by: Syrus Akbary <me@syrusakbary.com>
2019-12-18 23:08:18 +00:00
Syrus Akbary
10dccd9556
Merge branch 'master' into feature/llvm-use-floats 2019-12-18 15:07:43 -08:00
Mark McCaskey
6a74b7e994 Prepare for 0.12.0 release 2019-12-18 17:24:29 -05:00