dependabot[bot] opened a new pull request, #27010: URL: https://github.com/apache/beam/pull/27010
Bumps [github.com/tetratelabs/wazero](https://github.com/tetratelabs/wazero) from 1.1.0 to 1.2.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tetratelabs/wazero/releases">github.com/tetratelabs/wazero's releases</a>.</em></p> <blockquote> <h2>v1.2.0</h2> <p>wazero 1.2.0 includes 33 days of valiant effort towards performance, interop and debug goals, shared not only in wazero, but WebAssembly in general. We appreciate folks waiting a couple more days than usual and expect you'll enjoy what you see below.</p> <p>While we haven't set a formal post 1.0 release cadence, you can expect another patch or minor within a month. Meanwhile, this is our most performant and best tested release yet. As always, <a href="https://github.com/tetratelabs/wazero/stargazers">star</a> all the projects that interest you, and say thanks when you can.</p> <h2>Performance</h2> <p>Performance is something we aim to always improve, release to release. This includes looking at memory usage as well as latency. While there were multiple people involved in efficiency work, <a href="https://github.com/achille-roussel"><code>@achille-roussel</code></a> and <a href="https://github.com/lburgazzoli"><code>@lburgazzoli</code></a> deserve special call outs for leading efforts, and <a href="https://github.com/ncruces"><code>@ncruces</code></a> deserves a big pat on the back for contributing reviews, cleanups and advice.</p> <p><a href="https://github.com/achille-roussel"><code>@achille-roussel</code></a> made many changes internal to our compiler, as well linux-only specializations such as using huge pages for the memory mapped regions under wasm functions. These were all profile and benchmark guided changes and proposed in top rigor.</p> <p><a href="https://github.com/lburgazzoli"><code>@lburgazzoli</code></a> tracked down best practice in TinyGo, consolidating advice from various experts, such as the primary developer of TinyGo <a href="https://github.com/aykevl"><code>@aykevl</code></a>. He worked with <a href="https://github.com/ncruces"><code>@ncruces</code></a> to make sure our <a href="https://github.com/tetratelabs/wazero/tree/main/examples/allocation/tinygo">allocation example</a> is not just a code snippet, but an exemplar of good practice, without risk of memory leaks and performance validated with benchmarks.</p> <p>The combination of backend work (e.g. runtime improvements) and frontend work (e.g. changes to our TinyGo example) combined in a notable holistic gain across the board. This was true teamwork and a job well done!</p> <pre lang="bash"><code>$ benchstat v1.1.0.txt v1.2.0.txt goos: darwin goarch: arm64 pkg: github.com/tetratelabs/wazero/internal/integration_test/vs/compiler │ v1.1.0.txt │ v1.2.0.txt │ │ sec/op │ sec/op vs base │ Allocation/Compile-12 3.365m ± 1% 3.174m ± 1% -5.66% (p=0.002 n=6) Allocation/Instantiate-12 149.1µ ± 26% 120.4µ ± 7% -19.23% (p=0.002 n=6) Allocation/Call-12 1.404µ ± 2% 1.297µ ± 2% -7.66% (p=0.002 n=6) geomean 88.97µ 79.13µ -11.05% <pre><code> │ v1.1.0.txt │ v1.2.0.txt │ │ B/op │ B/op vs base │ </code></pre> <p>Allocation/Compile-12 2.404Mi ± 0% 1.292Mi ± 0% -46.24% (p=0.002 n=6) Allocation/Instantiate-12 319.4Ki ± 0% 230.5Ki ± 0% -27.84% (p=0.002 n=6) Allocation/Call-12 48.00 ± 0% 48.00 ± 0% ~ (p=1.000 n=6) ¹ geomean 33.28Ki 24.27Ki -27.07% ¹ all samples are equal</p> <pre><code> │ v1.1.0.txt │ v1.2.0.txt │ │ allocs/op │ allocs/op vs base │ </code></pre> <p>Allocation/Compile-12 1.830k ± 0% 1.595k ± 0% -12.84% (p=0.002 n=6) Allocation/Instantiate-12 803.0 ± 0% 508.0 ± 0% -36.74% (p=0.002 n=6) Allocation/Call-12 5.000 ± 0% 5.000 ± 0% ~ (p=1.000 n=6) ¹ geomean 194.4 159.4 -18.00% ¹ all samples are equal </code></pre></p> <h2>Interop</h2> <p>Compatibility is a moving target as both specifications change as well understanding of specifications. For example, the WebAssembly Core Specification 2.0 remains in <a href="https://webassembly.github.io/spec/core/intro/introduction.html">a draft state</a>, and expectations of the VM change as it changes. Also the d'facto WASI version preview1 (a.k.a. wasip1) had no tests, nor <a href="https://github.com/WebAssembly/WASI/blob/snapshot-01/phases/snapshot/docs.md">detailed documentation</a> for the first several years of its existence. This left interop as more a quorum of implementation practice vs a spec. While new initiatives such as the <a href="https://github.com/WebAssembly/wasi-testsuite">wasi-testsuite</a> and <a href="https://wasmer.io/posts/announcing-wasix">wasix</a> aim to stabilize this, WASI compatibility remains a source of work from wazero maintainers and compiler developers. We really appreciate the efforts spent here to keep as many users unaware of these glit ches as possible.</p> <p>On the WebAssembly Core (VM) side, we appreciate <a href="https://github.com/mathetake"><code>@mathetake</code></a> updating our code and spec suite to pass latest changes there. Also, we appreciate an attempt by <a href="https://github.com/anuraaga"><code>@anuraaga</code></a> with support by <a href="https://github.com/ncruces"><code>@ncruces</code></a> on the <a href="https://github.com/WebAssembly/threads">Threads proposal</a>, despite us ending up parking the idea until the proposal finishes.</p> <p>On the WASI side, we appreciate a lot of work driven by the team working on Go. Specifically, the upcoming <code>GOOS=wasip1</code> planned for <a href="https://redirect.github.com/golang/go/issues/58141">1.21</a> helped reveal a number of grey areas that required work to support in Go without breaking other languages. Championing these came from various team members including <a href="https://github.com/Pryz"><code>@Pryz</code></a>, <a href="https://github.com/achille-roussel"><code>@achille-roussel</code></a> and <a href="https://github.com/evacchi"><code>@evacchi</code></a> on various file rights and non-blocking related glitches, some fixing other language runtimes such as python.</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tetratelabs/wazero/commit/97d0d70b7321e5c16e584bbb6b3169032208bdec"><code>97d0d70</code></a> wasi: add support for sockets (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1493">#1493</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/e31856d360f065fea4f8095ac0e0a850bdfa241e"><code>e31856d</code></a> updates external tool versions (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1498">#1498</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/50394cc1fa65c4ce6c8e3d053cb7a0b4c9144020"><code>50394cc</code></a> engine: call FunctionListener.Abort in correct order (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1501">#1501</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/51d0271755282839abe56cab368642babcf75bc6"><code>51d0271</code></a> removes wasmer-go from vs benchmarks (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1499">#1499</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/9aa8f4e0ae838f0bccbf9a43fdcd0fbb6be4bc2d"><code>9aa8f4e</code></a> platform: removes unnecessary code (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1492">#1492</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/e987e69a820c901e264bdc42818e622bcdeec8f9"><code>e987e69</code></a> wasi: move Readdir logics from fdReaddirFn to Readdir methods (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1483">#1483</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/4aca6fbd0e6404b30e86d4cfd97f7a465926fe7c"><code>4aca6fb</code></a> Updates Spectest to the latest (May 23, 2023) (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1490">#1490</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/50723a0fd2b79f615eb99297f2c6f483c43af07f"><code>50723a0</code></a> Refactors spectest harness (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1489">#1489</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/256b7a4bf9704032d40c0e45a1fd82088ee7ee9a"><code>256b7a4</code></a> dwarf: ignores tombstone entries in inlined information (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1488">#1488</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/714368bcea70260aad67be95491887172dd31736"><code>714368b</code></a> Remove threads support (<a href="https://redirect.github.com/tetratelabs/wazero/issues/1487">#1487</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tetratelabs/wazero/compare/v1.1.0...v1.2.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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) </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
