Commit Graph

86 Commits

Author SHA1 Message Date
Alex Crichton
5a006674c3 Add release notes for historical patch releases (#5282)
Figured it'd be reasonable to list these in the notes on `main` to
ensure they're not forgotten.
2022-11-16 12:42:12 -06:00
Alex Crichton
5cef53537b Add release notes for 3.0.0 (#5213) 2022-11-07 13:30:07 -06:00
wasmtime-publish
08ef518c95 Bump Wasmtime to 4.0.0 (#5209)
Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
2022-11-06 13:32:34 -06:00
Alex Crichton
d8397a56a7 Add release notes for 2.0.1 to main (#5142) 2022-11-01 08:51:52 -05:00
wasmtime-publish
3e35c8f98a Update release date of Wasmtime 2.0.0 (#5080)
Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
2022-10-20 12:54:49 -05:00
Alex Crichton
75cd888e23 Add release notes for 2.0.0 (#5048)
* Add release notes for 2.0.0

* Review comments
2022-10-12 15:39:39 +00:00
wasmtime-publish
a9be4a9b56 Bump Wasmtime to 3.0.0 (#5016)
Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
2022-10-05 09:30:55 -05:00
Alex Crichton
ef5ad26ab2 Update release notes for 1.0 (#4885) 2022-09-08 15:47:01 +00:00
wasmtime-publish
bb0b6dafde Update release date of Wasmtime 0.40.0 (#4743)
Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
2022-08-22 12:13:00 -07:00
Alex Crichton
96a2ba70b4 Update 0.40.0 release notes (#4660)
* Update 0.40.0 release notes

Not a ton happened in terms of user-facing improvements here so I
outlined some internal changes as well. The cumulative effect of
improving compile times is Sightglass showing 30-40% improvements for
major benchmarks. Additionally I wrote down a note indicating that this
is likely the last `0.*` release and the next release of Wasmtime on
September 20 is planned to be 1.0.

* Remove perf-related relnotes

* Call out s390x simd at the top-level
2022-08-10 16:23:27 +00:00
wasmtime-publish
412fa04911 Bump Wasmtime to 0.41.0 (#4620)
Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
2022-08-04 20:02:19 -05:00
Alex Crichton
bdaaaee21e Add release notes to main for 0.38.2 (#4480)
This'll make its way through CI shortly and figured it'd be good to add
the notes to the `main` branch as well.
2022-07-20 23:18:54 +00:00
wasmtime-publish
b28abb620e Update release date of Wasmtime 0.39.0 (#4471)
Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
2022-07-20 15:05:41 +00:00
Alex Crichton
11858afc94 Finish release notes for 0.39.0 (#4379)
Just a few more final remaining items to add
2022-07-05 15:26:31 +00:00
wasmtime-publish
7c428bbd62 Bump Wasmtime to 0.40.0 (#4378)
Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
2022-07-05 09:10:52 -05:00
Alex Crichton
9c695b492a Update release notes for the main branch (#4344)
Catch up to 2efdd5c46b in terms of release notes themselves and
additionally copy over the release notes for the 0.38.1 release.
2022-06-28 16:10:46 +00:00
Chris Fallin
0d829a57ee Upgrade to regalloc2 v0.2.3 to get bugfix from bytecodealliance/regalloc2#60. (#4335)
* Upgrade to regalloc2 v0.2.3 to get bugfix from bytecodealliance/regalloc2#60.

* Update RELEASES.md.

* Update two compile tests based on slightly shifting regalloc output.
2022-06-27 15:58:54 -05:00
wasmtime-publish
b306368565 Update release date of Wasmtime 0.38.0 (#4287)
* Update release date of Wasmtime 0.38.0

[skip ci]

* Update release date

Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
Co-authored-by: Alex Crichton <alex@alexcrichton.com>
2022-06-21 09:50:32 -05:00
Alex Crichton
72f0e46fdb Decouple some more Config methods from each other (#4262)
* Decouple some more `Config` methods from each other

This commit decouples validation of stack sizes and guard sizes until
`Engine::new` to avoid odd interactions between the order of invocation
of `Config` methods.

* Fix C API

* Typos
2022-06-14 09:26:55 -05:00
Pure White
258dc9de42 fix(wasmtime):Config methods should be idempotent (#4252)
This commit refactored `Config` to use a seperate `CompilerConfig` field instead
of operating on `CompilerBuilder` directly to make all its methods idempotent.

Fixes #4189
2022-06-13 08:54:31 -05:00
Alex Crichton
7ac1c53062 Update release notes for 0.38.0 (#4227)
* Update release notes for 0.38.0

* Fix a typo
2022-06-06 12:01:24 -05:00
wasmtime-publish
55946704cb Bump Wasmtime to 0.39.0 (#4225)
Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
2022-06-06 09:12:47 -05:00
wasmtime-publish
4e8d54836d Update release date of Wasmtime 0.37.0 (#4168)
[skip ci]

Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
2022-05-20 09:11:48 -05:00
wasmtime-publish
9a6854456d Bump Wasmtime to 0.38.0 (#4103)
Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
2022-05-05 13:43:02 -05:00
wasmtime-publish
5c2db166f1 Update release date of Wasmtime 0.36.0 (#4057)
[skip ci]

Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
2022-04-20 13:48:40 -05:00
Alex Crichton
1eed0bcb89 Add some release notes for 0.37.0 (#4056)
I was poking at the release process so figured I'd do some release notes
touch-up as well.
2022-04-20 12:44:57 -05:00
Chris Fallin
a40b5c3985 Add note about regalloc2 switch in release notes. (#4037) 2022-04-14 15:10:25 -07:00
Chris Fallin
01f71207a8 Copy release notes for 0.35.3 from point-release branch to main. (#4015) 2022-04-11 14:12:03 -07:00
Alex Crichton
23410971f1 Touch up release notes slightly (#4011)
Remove a git merge marker I accidentally added, fill in a TODO, and adda
link for a new release-notes-worthy PR.
2022-04-11 12:42:29 -05:00
Alex Crichton
7ac2598009 Update release notes for 0.36.0 (#3996)
Fill in some more items that were added and additionally fill in entries
for the recent patch releases for
[CVE-2022-24791](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-gwc9-348x-qwv2)
2022-04-05 14:16:27 -05:00
Alex Crichton
011d2e1faa Refactor away the Instantiator type in Wasmtime (#3972)
* Refactor away the `Instantiator` type in Wasmtime

This internal type in Wasmtime was primarily used for the module linking
proposal to handle instantiation of many instances and refactor out the
sync and async parts to minimize duplication. With the removal of the
module linking proposal, however, this type isn't really necessary any
longer. In working to implement the component model proposal I was
looking already to refactor this and I figured it'd be good to land that
ahead of time on `main` separate of other refactorings.

This commit removes the `Instantiator` type in the `instance` module.
The type was already private to Wasmtime so this shouldn't have any
impact on consumers. This allows simplifying various code paths to avoid
another abstraction. The meat of instantiation is moved to
`Instance::new_raw` which should be reusable for the component model as
well.

One bug is actually fixed in this commit as well where
`Linker::instantiate` and `InstancePre::instantiate` failed to check
that async support was disabled on a store. This means that they could
have led to a panic if used with an async store and a start function
called an async import (or an async resource limiter yielded). A few
tests were updated with this.

* Review comments
2022-04-05 10:35:00 -05:00
wasmtime-publish
78a595ac88 Bump Wasmtime to 0.37.0 (#3994)
Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
2022-04-05 09:24:28 -05:00
Alex Crichton
c89dc55108 Add a two-week delay to Wasmtime's release process (#3955)
* Bump to 0.36.0

* Add a two-week delay to Wasmtime's release process

This commit is a proposal to update Wasmtime's release process with a
two-week delay from branching a release until it's actually officially
released. We've had two issues lately that came up which led to this proposal:

* In #3915 it was realized that changes just before the 0.35.0 release
  weren't enough for an embedding use case, but the PR didn't meet the
  expectations for a full patch release.

* At Fastly we were about to start rolling out a new version of Wasmtime
  when over the weekend the fuzz bug #3951 was found. This led to the
  desire internally to have a "must have been fuzzed for this long"
  period of time for Wasmtime changes which we felt were better
  reflected in the release process itself rather than something about
  Fastly's own integration with Wasmtime.

This commit updates the automation for releases to unconditionally
create a `release-X.Y.Z` branch on the 5th of every month. The actual
release from this branch is then performed on the 20th of every month,
roughly two weeks later. This should provide a period of time to ensure
that all changes in a release are fuzzed for at least two weeks and
avoid any further surprises. This should also help with any last-minute
changes made just before a release if they need tweaking since
backporting to a not-yet-released branch is much easier.

Overall there are some new properties about Wasmtime with this proposal
as well:

* The `main` branch will always have a section in `RELEASES.md` which is
  listed as "Unreleased" for us to fill out.
* The `main` branch will always be a version ahead of the latest
  release. For example it will be bump pre-emptively as part of the
  release process on the 5th where if `release-2.0.0` was created then
  the `main` branch will have 3.0.0 Wasmtime.
* Dates for major versions are automatically updated in the
  `RELEASES.md` notes.

The associated documentation for our release process is updated and the
various scripts should all be updated now as well with this commit.

* Add notes on a security patch

* Clarify security fixes shouldn't be previewed early on CI
2022-04-01 13:11:10 -05:00
Alex Crichton
c22033bf93 Delete historical interruptable support in Wasmtime (#3925)
* Delete historical interruptable support in Wasmtime

This commit removes the `Config::interruptable` configuration along with
the `InterruptHandle` type from the `wasmtime` crate. The original
support for adding interruption to WebAssembly was added pretty early on
in the history of Wasmtime when there was no other method to prevent an
infinite loop from the host. Nowadays, however, there are alternative
methods for interruption such as fuel or epoch-based interruption.

One of the major downsides of `Config::interruptable` is that even when
it's not enabled it forces an atomic swap to happen when entering
WebAssembly code. This technically could be a non-atomic swap if the
configuration option isn't enabled but that produces even more branch-y
code on entry into WebAssembly which is already something we try to
optimize. Calling into WebAssembly is on the order of a dozens of
nanoseconds at this time and an atomic swap, even uncontended, can add
up to 5ns on some platforms.

The main goal of this PR is to remove this atomic swap on entry into
WebAssembly. This is done by removing the `Config::interruptable` field
entirely, moving all existing consumers to epochs instead which are
suitable for the same purposes. This means that the stack overflow check
is no longer entangled with the interruption check and perhaps one day
we could continue to optimize that further as well.

Some consequences of this change are:

* Epochs are now the only method of remote-thread interruption.
* There are no more Wasmtime traps that produces the `Interrupted` trap
  code, although we may wish to move future traps to this so I left it
  in place.
* The C API support for interrupt handles was also removed and bindings
  for epoch methods were added.
* Function-entry checks for interruption are a tiny bit less efficient
  since one check is performed for the stack limit and a second is
  performed for the epoch as opposed to the `Config::interruptable`
  style of bundling the stack limit and the interrupt check in one. It's
  expected though that this is likely to not really be measurable.
* The old `VMInterrupts` structure is renamed to `VMRuntimeLimits`.
2022-03-14 15:25:11 -05:00
Jeff Parsons
a68f44a924 Mention custom WasiCtx in 0.35.0 release notes (#3918)
This is a follow-up to https://github.com/bytecodealliance/wasmtime/pull/3895,
which landed after the release notes were written.
2022-03-14 09:11:02 -05:00
Chris Fallin
1a54826ca8 Updated RELEASES for 0.35.1 patch release. (#3910) 2022-03-09 13:30:39 -08:00
Alex Crichton
e4b9c81aa9 Finalize 0.35.0 release notes (#3891) 2022-03-07 11:35:40 -06:00
Alex Crichton
dd9c86a58c Add in-progress 0.35.0 release notes (#3862) 2022-02-28 12:55:35 -06:00
Peter Huene
ef17a36852 Port fix for CVE-2022-23636 to main. (#3818)
* Port fix for `CVE-2022-23636` to `main`.

This commit ports the fix for `CVE-2022-23636` to `main`, but performs a
refactoring that makes it unnecessary for the instance itself to track if it
has been initialized; such a change was not targeted enough for a security
patch.

The pooling allocator will now only initialize an instance if all of its
associated resource creation succeeds. If the resource creation fails, no
instance is dropped as none was initialized.

Also updates `RELEASES.md` to include the related patch releases.

* Add `Instance::new_at` to fully initialize an instance.

Added `Instance::new_at` to fully initialize an instance at a given address.

This will hopefully prevent the possibility that an `Instance` structure
doesn't have an initialized `VMContext` when it is dropped.
2022-02-16 17:51:14 -06:00
wasmtime-publish
39b88e4e9e Release Wasmtime 0.34.0 (#3768)
* Bump Wasmtime to 0.34.0

[automatically-tag-and-release-this-commit]

* Add release notes for 0.34.0

* Update release date to today

Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
Co-authored-by: Alex Crichton <alex@alexcrichton.com>
2022-02-07 19:16:26 -06:00
wasmtime-publish
8043c1f919 Release Wasmtime 0.33.0 (#3648)
* Bump Wasmtime to 0.33.0

[automatically-tag-and-release-this-commit]

* Update relnotes for 0.33.0

* Wordsmithing relnotes

Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
Co-authored-by: Alex Crichton <alex@alexcrichton.com>
2022-01-05 13:26:50 -06:00
Chris Fallin
5fd3b3993e Copy release notes from 0.32.1 patch branch into main RELEASES.md. 2022-01-04 11:01:08 -08:00
wasmtime-publish
c1c4c59670 Release Wasmtime 0.32.0 (#3589)
* Bump Wasmtime to 0.32.0

[automatically-tag-and-release-this-commit]

* Update release notes for 0.32.0

Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
Co-authored-by: Alex Crichton <alex@alexcrichton.com>
2021-12-13 13:47:30 -06:00
wasmtime-publish
c1a6a0523d Release Wasmtime 0.31.0 (#3489)
* Bump Wasmtime to 0.31.0

[automatically-tag-and-release-this-commit]

* Update 0.31.0 release notes

Co-authored-by: Wasmtime Publish <wasmtime-publish@users.noreply.github.com>
Co-authored-by: Alex Crichton <alex@alexcrichton.com>
2021-10-29 09:09:35 -05:00
Chris Fallin
eb4fade2f3 Add a release-notes entry for removal of Cranelift's old x86 backend. 2021-09-30 11:20:04 -07:00
Alex Crichton
e989caf337 Update RELEASES.md (#3392)
Not exhaustive for the next release but figured I'd get a head-start.
2021-09-28 10:58:29 -05:00
Nick Fitzgerald
a5b86cf954 Add release notes for Wasmtime 0.30.0 2021-09-17 11:07:56 -07:00
Nick Fitzgerald
a1f4b46f64 Bump Wasmtime to version 0.30.0; cranelift to 0.77.0 2021-09-17 10:33:50 -07:00
Chris Fallin
4dfb0a6138 Adjust date of v0.29 release in RELEASES.md to today.
This was a bit of an oversight in the relnotes updates for the
just-released v0.29: since the release PR was prepared a few days before
the actual release, I should have updated the "released on" date in
RELEASES.md (oops!). I don't think it's a big enough deal to re-roll
anything but we should have the correct date in the version on `main`.
2021-08-02 16:44:16 -07:00
Chris Fallin
07cafd73df Update RELEASES.md with last PRs for 0.29. 2021-08-02 11:24:09 -07:00