dependabot[bot] opened a new pull request, #24858: URL: https://github.com/apache/beam/pull/24858
Bumps [github.com/tetratelabs/wazero](https://github.com/tetratelabs/wazero) from 1.0.0-pre.4 to 1.0.0-pre.7. <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> <p>wazero v1.0.0-pre.7 fixes a compilation problem affecting those building <code>GOARCH=386</code>. Other users can skip this version.</p> <p>wazero v1.0.0-pre.6 improves performance, CLI and adds a writeable filesystem.</p> <p>Performance, reliability and usability have been recurring trends in wazero this year, and they will continue into next. We're thankful to have so many end users and enthusiasts active, and wow.. it was an active month!</p> <h2>Performance</h2> <p>This December, <a href="https://github.com/mathetake"><code>@mathetake</code></a> has been working hard on the compiler backend, while <a href="https://github.com/ckaznocha"><code>@ckaznocha</code></a> put in time to optimize various parts of module initialization. We've also put many more benchmarks in place including I/O functions like WASI. Results were dramatic.</p> <p>For example, our benchmark of go compiled to wasm (<code>GOOS=js GOARCH=wasm</code>) improved almost 25%, while our benchmark for WASI+TinyGo improved compilation time by almost 25% and instantiation time nearly 10%.</p> <p>While these improvements are great, wazero still won't beat optimizing compilers. The good news is that <a href="https://github.com/mathetake"><code>@mathetake</code></a> proved it is possible to do JIT-ish compilation and execution in pure Go. Moreover, <a href="https://tetrate.io/">Tetrate</a> has hired an extremely bright engineer to start working with Takeshi on this problem next month. For those interested in how wazero works today, take a look at this year's <a href="https://www.youtube.com/watch?v=HcRSe4Y-1Fc">GopherCon presentation</a>.</p> <h2>CLI</h2> <p>wazero works with diverse wasm compilers. Many re-use the same libraries to perform tasks such as I/O, like wasi-libc. However, even those who use that routinely drop down to pure wasm functions to optimize or decouple. Moreover, Go's compiler uses its own syscall ABI which is unlike WASI. In order for us to be more efficient, we've significantly enhanced our CLI.</p> <p>Most notably, we added <code>--hostlogging=filesystem</code> which can show you what's happening during a command.</p> <pre lang="bash"><code>$ tinygo build -target wasi -o cat.wasm cat.go $ echo hello world > /tmp/hello.txt $ wazero run -mount=/tmp:/ --hostlogging=filesystem cat.wasm /hello.txt ==> wasi_snapshot_preview1.fd_prestat_get(fd=3) <== (prestat={pr_name_len=1},errno=ESUCCESS) --snip-- </code></pre> <p>We also detect if you are using Go generated wasm automatically now (<code>GOOS=js GOARCH=wasm</code>). We support logging on that, even though the functions underneath act wildly differently.</p> <pre lang="bash"><code>$ GOARCH=wasm GOOS=js go build -o cat.wasm cat.go $ wazero run -mount=/tmp:/ --hostlogging=filesystem cat.wasm /hello.txt ==> go.syscall/js.valueCall(fs.open(name=/hello.txt,flags=,perm=----------)) <== (err=<nil>,fd=4) --snip-- </code></pre> <p>We've also added a <code>-cachedir</code> flag which allows running the same wasm faster the second time. Those building images can use the <code>compile</code> command first, as that allows you to build cache without actually executing the module.</p> <p>Ex. This command took almost 140ms as it implied compilation. By precompiling, it executes 100ms quicker.</p> <pre lang="bash"><code>$ time wazero run -mount=/tmp:/ cat.wasm /hello.txt hello world <p>real 0m0.139s user 0m0.178s sys 0m0.036s</p> <p></tr></table> </code></pre></p> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tetratelabs/wazero/commit/4197caa05bb6fd529eecae56a9eea6bcb1b1780e"><code>4197caa</code></a> Ensures 32-bit platforms build (<a href="https://github-redirect.dependabot.com/tetratelabs/wazero/issues/996">#996</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/94491fef0b85807f5fa309ad2b98fc2fe6791dec"><code>94491fe</code></a> Implements rename in GOOS=js and WASI (<a href="https://github-redirect.dependabot.com/tetratelabs/wazero/issues/991">#991</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/e4740efef4a2c33cc7e1e87a88ed4edb9c82064d"><code>e4740ef</code></a> site: updates wasi support table (<a href="https://github-redirect.dependabot.com/tetratelabs/wazero/issues/993">#993</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/2fbf83e0b3a61f4cad9f5f65cc0252fa6f92b414"><code>2fbf83e</code></a> wasi: fixes or'd open flags (<a href="https://github-redirect.dependabot.com/tetratelabs/wazero/issues/990">#990</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/c9868d89cbab60046a74cb4ea5a1877cfcf57e7c"><code>c9868d8</code></a> Removes internal dependency on fs.FS (<a href="https://github-redirect.dependabot.com/tetratelabs/wazero/issues/987">#987</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/2045f7136399ceebd08b7ee3d0579bd2f24396b1"><code>2045f71</code></a> enginetest: fixes panic om memory def (<a href="https://github-redirect.dependabot.com/tetratelabs/wazero/issues/989">#989</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/da3aa7a5ad4609457cb685cc44686e0bba1796ff"><code>da3aa7a</code></a> Adds ExportedFunctionDefinitions and ExportedMemoryDefinitions (<a href="https://github-redirect.dependabot.com/tetratelabs/wazero/issues/986">#986</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/e7018d19ff01daf992b56c5208666d3056faeca9"><code>e7018d1</code></a> compiler: force moduleContext initialization after Go function calls (<a href="https://github-redirect.dependabot.com/tetratelabs/wazero/issues/988">#988</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/efc72de1e6d4fb0a9b60aa568f0489b8bdde4ae0"><code>efc72de</code></a> gojs: implements timeout events (<a href="https://github-redirect.dependabot.com/tetratelabs/wazero/issues/984">#984</a>)</li> <li><a href="https://github.com/tetratelabs/wazero/commit/67cc6d37796176cae9da3bd304efb58bad066157"><code>67cc6d3</code></a> compilationcache: uses version-specific subdirectory (<a href="https://github-redirect.dependabot.com/tetratelabs/wazero/issues/982">#982</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tetratelabs/wazero/compare/v1.0.0-pre.4...v1.0.0-pre.7">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]
