dependabot[bot] opened a new pull request, #30731:
URL: https://github.com/apache/beam/pull/30731

   Bumps [github.com/tetratelabs/wazero](https://github.com/tetratelabs/wazero) 
from 1.6.0 to 1.7.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.7.0</h2>
   <p>Welcome to <strong>wazero 1.7</strong>: the release that upgrades like a 
minor, but feels like a major!</p>
   <p>It's finally time for the long-awaited, <strong>final release</strong> of 
our brand new <strong>optimizing compiler</strong>. This is such a big deal 
that we are celebrating it at [Wasm I/O 2024][wasmio] with another round of 
wonderful lightning talks from wazero users [like we did in 2023][wazero1]. In 
fact, even this release is being tagged during the event! Stay tuned on our 
usual channels to see the recording:</p>
   <ul>
   <li>Follow the [#wazero hashtag on Twitter][twitter]</li>
   <li>Join the [#wazero channel on the Gophers Slack][gophers]</li>
   </ul>
   <h2>wazero optimizes machine code compiled from wasm</h2>
   <p>Translating Wasm bytecode into machine code can take multiple forms. An 
optimizing compiler performs multiple nontrivial transformations on the input 
code, ultimately producing more efficient (&quot;optimized&quot;) code.</p>
   <p>In 1.7 we replaced our internal wasm compiler with an optimizing one. 
This means it is a drop-in: you don’t need to do anything to use it. If 
interested in compiler design, please read [the docs][wazevo-docs], contributed 
by <a href="https://github.com/evacchi";><code>@​evacchi</code></a>.</p>
   <p>As for performance improvements, we have come to expect a run-time boost 
ranging from 10% to even 60%, with 30-40% being the average. Notably:</p>
   <ul>
   <li><a href="https://github.com/ncruces";><code>@​ncruces</code></a>' fork of 
[coremark][coremark] shows an improved score of 15265 vs 9591, i.e. about +60% 
on arm64 (Apple M1 Pro)</li>
   <li>[mercari/grpc-federation][mercari] improvements between 4-10% on their 
Wasm extensions to the [Common Extension Language][cel]</li>
   <li>[kubernetes-sigs/kube-scheduler-wasm-extension][k8s-sched] sees an 
average of &gt;40% decrease on schedule lifecycle overhead</li>
   <li><a 
href="https://github.com/achille-roussel";><code>@​achille-roussel</code></a> 
[contributed some numbers][achille-slack] on the Go standard library 
(<code>GOOS=wasip1</code>) showing at least 30% improvements on the 
<code>syscall</code>, <code>compress/flate</code> (gzip) and 
<code>encoding/json</code> packages, with peaks of 60% (especially in data 
throughput).</li>
   </ul>
   <p>While a major improvement, we decided against calling this version 2.0. 
If we did, we would cause library dependency lockups due to go imports needing 
a ‘/v2’. We take backwards compatibility seriously, so couldn’t do that to 
you!</p>
   <p>As usual, <a 
href="https://github.com/mathetake";><code>@​mathetake</code></a> owns the 
lionshare of the contributions, with <a 
href="https://github.com/evacchi";><code>@​evacchi</code></a> helping along the 
way, especially on the new <code>amd64</code> backend. Notably, <a 
href="https://github.com/achille-roussel";><code>@​achille-roussel</code></a> 
also contributed a performance improvement to the compiler (<a 
href="https://redirect.github.com/tetratelabs/wazero/issues/2026";>#2026</a>) 
and <a href="https://github.com/ncruces";><code>@​ncruces</code></a> helped in 
many ways with testing and verifying the implementation, validating (among 
other things) against his library [go-sqlite3][go-sqlite3].</p>
   <p>Note: an optimizing compiler does more work, so it takes longer. 
Production use of wazero should always compile wasm during initialization to 
avoid slowing down function runtime.</p>
   <h2>Experimental: Wasm Threads Spec</h2>
   <p>The Wasm Threads spec introduces instructions to explicitly share memory 
between modules, and new operations for atomic memory access. Compilers may use 
this feature for concurrent threads of execution. For instance <a 
href="https://github.com/anuraaga";><code>@​anuraaga</code></a>’s [Go ports of 
protoc plugins][protoc] needed atomic instruction support to compile to 
Wasm.</p>
   <p>1.7 concludes a long journey started with <a 
href="https://github.com/anuraaga";><code>@​anuraaga</code></a>'s first PR <a 
href="https://redirect.github.com/tetratelabs/wazero/issues/1899";>#1899</a>  
and continued with <a 
href="https://github.com/mathetake";><code>@​mathetake</code></a> occasionally 
tag-teaming, especially to support in the new compiler; <a 
href="https://github.com/ncruces";><code>@​ncruces</code></a> assisted with 
reviewing.</p>
   <p>You can enable Wasm Threads support by setting the corresponding flag:</p>
   <pre lang="go"><code>     // Threads support must be enabled explicitly in 
addition to standard V2 features.
        cfg := wazero.NewRuntimeConfig().
              WithCoreFeatures(api.CoreFeaturesV2 | 
experimental.CoreFeaturesThreads)
   </code></pre>
   <p>For a usage example see <a 
href="https://github.com/tetratelabs/wazero/blob/v1.7.0/experimental/features_example_test.go";>features_example_test.go</a></p>
   <h2>Experimental: Snapshot/Restore</h2>
   <p>The Snapshot/Restore experimental feature saves the state of a wasm 
function and restores it later. This feature has been contributed by <a 
href="https://github.com/anuraaga";><code>@​anuraaga</code></a> to implement 
exception handling in [wasilibs/go-pgquery][go-pgquery]</p>
   <p>You can enable snapshot/restore by setting the context flag:</p>
   <pre lang="go"><code>&lt;/tr&gt;&lt;/table&gt; 
   </code></pre>
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/tetratelabs/wazero/commit/253c0346e4c8d7bd604304447233c1a3ce0a71f7";><code>253c034</code></a>
 ci: removes unnecessary matrix.include (<a 
href="https://redirect.github.com/tetratelabs/wazero/issues/2155";>#2155</a>)</li>
   <li><a 
href="https://github.com/tetratelabs/wazero/commit/2bbe81a620d7ab617c7dbfa57a03196a674e745d";><code>2bbe81a</code></a>
 wazevo(frontend): allocation free initializeCurrentBlockKnownBounds (<a 
href="https://redirect.github.com/tetratelabs/wazero/issues/2154";>#2154</a>)</li>
   <li><a 
href="https://github.com/tetratelabs/wazero/commit/1b3f80b6ef635341728d4df279b14eda18c979a6";><code>1b3f80b</code></a>
 ci: always use the same command to upload artifacts (<a 
href="https://redirect.github.com/tetratelabs/wazero/issues/2153";>#2153</a>)</li>
   <li><a 
href="https://github.com/tetratelabs/wazero/commit/b4f47d9695cf81ad85751b49f603e32145fcdb9c";><code>b4f47d9</code></a>
 fuzz: adds --no-trace-compares flag by default (<a 
href="https://redirect.github.com/tetratelabs/wazero/issues/2152";>#2152</a>)</li>
   <li><a 
href="https://github.com/tetratelabs/wazero/commit/291fdf8249a6a7f45bbc1322c265172eacf37631";><code>291fdf8</code></a>
 wazevo: fixes accidental heap allocation in VarLengthPool.Allocate (<a 
href="https://redirect.github.com/tetratelabs/wazero/issues/2151";>#2151</a>)</li>
   <li><a 
href="https://github.com/tetratelabs/wazero/commit/0255886e1c1c527e8f13f9cc95fa4e2c73cfb1c0";><code>0255886</code></a>
 regalloc: fast check for preferred in findOrSpillAllocatable (<a 
href="https://redirect.github.com/tetratelabs/wazero/issues/2150";>#2150</a>)</li>
   <li><a 
href="https://github.com/tetratelabs/wazero/commit/5760022787470a3aced38a5bc77eb9e91de0d8d7";><code>5760022</code></a>
 validation: handles edge case of unexpected else (<a 
href="https://redirect.github.com/tetratelabs/wazero/issues/2148";>#2148</a>)</li>
   <li><a 
href="https://github.com/tetratelabs/wazero/commit/a05f23b0ff8b037a66c4c8605c21867664e80e82";><code>a05f23b</code></a>
 wasi: uses the shared compilation cache in tests (<a 
href="https://redirect.github.com/tetratelabs/wazero/issues/2149";>#2149</a>)</li>
   <li><a 
href="https://github.com/tetratelabs/wazero/commit/9f56676383cf122a6f82cefd0cd8cd1593a467b0";><code>9f56676</code></a>
 testing: removes remaining gotip usage (<a 
href="https://redirect.github.com/tetratelabs/wazero/issues/2147";>#2147</a>)</li>
   <li><a 
href="https://github.com/tetratelabs/wazero/commit/c4532da719f566f43009f81271fb9c049714c1f5";><code>c4532da</code></a>
 testing: pass N, P into Run of hammer (<a 
href="https://redirect.github.com/tetratelabs/wazero/issues/2146";>#2146</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/tetratelabs/wazero/compare/v1.6.0...v1.7.0";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   
   [![Dependabot compatibility 
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/tetratelabs/wazero&package-manager=go_modules&previous-version=1.6.0&new-version=1.7.0)](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 show <dependency name> ignore conditions` will show all of 
the ignore conditions of the specified dependency
   - `@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]

Reply via email to