|
6 | 6 | <meta charset="utf-8" />
|
7 | 7 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
8 | 8 |
|
9 |
| - <title>Change History — WebAssembly 3.0 (Draft 2024-10-29)</title> |
| 9 | + <title>Change History — WebAssembly 3.0 (Draft 2024-11-06)</title> |
10 | 10 | <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
11 | 11 | <link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
|
12 | 12 | <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
|
@@ -481,9 +481,43 @@ <h2>Release 3.0<a class="headerlink" href="#release-3-0" title="Permalink to thi
|
481 | 481 | <li><p><a class="reference internal" href="../syntax/modules.html#syntax-elem"><span class="std std-ref">Data segments</span></a> take a <a class="reference internal" href="../syntax/modules.html#syntax-memidx"><span class="std std-ref">memory index</span></a></p></li>
|
482 | 482 | </ul>
|
483 | 483 | </section>
|
| 484 | +<section id="bit-address-space"> |
| 485 | +<span id="index-13"></span><h3>64-bit Address Space<a class="headerlink" href="#bit-address-space" title="Permalink to this heading">¶</a></h3> |
| 486 | +<p>Added the ability to declare an <span class="math notranslate nohighlight">\(\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}\)</span> <a class="reference internal" href="../syntax/types.html#syntax-addrtype"><span class="std std-ref">address type</span></a> for <a class="reference internal" href="../syntax/types.html#syntax-tabletype"><span class="std std-ref">tables</span></a> and <a class="reference internal" href="../syntax/types.html#syntax-memtype"><span class="std std-ref">memories</span></a>. <a class="footnote-reference brackets" href="#proposal-addr64" id="id14" role="doc-noteref"><span class="fn-bracket">[</span>11<span class="fn-bracket">]</span></a></p> |
| 487 | +<ul class="simple"> |
| 488 | +<li><p><a class="reference internal" href="../syntax/types.html#syntax-addrtype"><span class="std std-ref">Address types</span></a> denote a subset of the integral <a class="reference internal" href="../syntax/types.html#syntax-numtype"><span class="std std-ref">number types</span></a></p></li> |
| 489 | +<li><p><a class="reference internal" href="../syntax/types.html#syntax-tabletype"><span class="std std-ref">Table types</span></a> include an <a class="reference internal" href="../syntax/types.html#syntax-addrtype"><span class="std std-ref">address type</span></a></p></li> |
| 490 | +<li><p><a class="reference internal" href="../syntax/types.html#syntax-memtype"><span class="std std-ref">Memory types</span></a> include an <a class="reference internal" href="../syntax/types.html#syntax-addrtype"><span class="std std-ref">address type</span></a></p></li> |
| 491 | +<li><p>Operand types of <a class="reference internal" href="../syntax/instructions.html#syntax-instr-table"><span class="std std-ref">table</span></a> and <a class="reference internal" href="../syntax/instructions.html#syntax-instr-memory"><span class="std std-ref">memory</span></a> instructions now depend on the subject’s declared address type:</p> |
| 492 | +<ul> |
| 493 | +<li><p><span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.get}}\)</span></p></li> |
| 494 | +<li><p><span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.set}}\)</span></p></li> |
| 495 | +<li><p><span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.size}}\)</span></p></li> |
| 496 | +<li><p><span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.grow}}\)</span></p></li> |
| 497 | +<li><p><span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.fill}}\)</span></p></li> |
| 498 | +<li><p><span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.copy}}\)</span></p></li> |
| 499 | +<li><p><span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.init}}\)</span></p></li> |
| 500 | +<li><p><span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{memory.size}}\)</span></p></li> |
| 501 | +<li><p><span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{memory.grow}}\)</span></p></li> |
| 502 | +<li><p><span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{memory.fill}}\)</span></p></li> |
| 503 | +<li><p><span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{memory.copy}}\)</span></p></li> |
| 504 | +<li><p><span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{memory.init}}\)</span></p></li> |
| 505 | +<li><p><span class="math notranslate nohighlight">\(t\mathsf{.load}\)</span></p></li> |
| 506 | +<li><p><span class="math notranslate nohighlight">\(t\mathsf{.store}\)</span></p></li> |
| 507 | +<li><p><span class="math notranslate nohighlight">\(t\mathsf{.load}\!N\!\mathsf{\_}\href{../syntax/instructions.html#syntax-sx}{\mathit{sx}}\)</span></p></li> |
| 508 | +<li><p><span class="math notranslate nohighlight">\(t\mathsf{.store}\!N\)</span></p></li> |
| 509 | +<li><p><span class="math notranslate nohighlight">\(\mathsf{v128.load}\!N\!\mathsf{x}\!M\!\mathsf{\_}\href{../syntax/instructions.html#syntax-sx}{\mathit{sx}}\)</span></p></li> |
| 510 | +<li><p><span class="math notranslate nohighlight">\(\mathsf{v128.load}\!N\!\mathsf{\_zero}\)</span></p></li> |
| 511 | +<li><p><span class="math notranslate nohighlight">\(\mathsf{v128.load}\!N\!\mathsf{\_splat}\)</span></p></li> |
| 512 | +<li><p><span class="math notranslate nohighlight">\(\mathsf{v128.load}\!N\!\mathsf{\_lane}\)</span></p></li> |
| 513 | +<li><p><span class="math notranslate nohighlight">\(\mathsf{v128.store}\!N\!\mathsf{\_lane}\)</span></p></li> |
| 514 | +</ul> |
| 515 | +</li> |
| 516 | +</ul> |
| 517 | +</section> |
484 | 518 | <section id="typeful-references">
|
485 |
| -<span id="index-13"></span><h3>Typeful References<a class="headerlink" href="#typeful-references" title="Permalink to this heading">¶</a></h3> |
486 |
| -<p>Added more precise types for references. <a class="footnote-reference brackets" href="#proposal-typedref" id="id14" role="doc-noteref"><span class="fn-bracket">[</span>11<span class="fn-bracket">]</span></a></p> |
| 519 | +<span id="index-14"></span><h3>Typeful References<a class="headerlink" href="#typeful-references" title="Permalink to this heading">¶</a></h3> |
| 520 | +<p>Added more precise types for references. <a class="footnote-reference brackets" href="#proposal-typedref" id="id15" role="doc-noteref"><span class="fn-bracket">[</span>12<span class="fn-bracket">]</span></a></p> |
487 | 521 | <ul class="simple">
|
488 | 522 | <li><p>New generalised form of <a class="reference internal" href="../syntax/types.html#syntax-reftype"><span class="std std-ref">reference types</span></a>:</p>
|
489 | 523 | <ul>
|
@@ -520,8 +554,8 @@ <h2>Release 3.0<a class="headerlink" href="#release-3-0" title="Permalink to thi
|
520 | 554 | </ul>
|
521 | 555 | </section>
|
522 | 556 | <section id="garbage-collection">
|
523 |
| -<span id="extension-gc"></span><span id="index-14"></span><h3>Garbage Collection<a class="headerlink" href="#garbage-collection" title="Permalink to this heading">¶</a></h3> |
524 |
| -<p>Added managed reference types. <a class="footnote-reference brackets" href="#proposal-gc" id="id15" role="doc-noteref"><span class="fn-bracket">[</span>12<span class="fn-bracket">]</span></a></p> |
| 557 | +<span id="extension-gc"></span><span id="index-15"></span><h3>Garbage Collection<a class="headerlink" href="#garbage-collection" title="Permalink to this heading">¶</a></h3> |
| 558 | +<p>Added managed reference types. <a class="footnote-reference brackets" href="#proposal-gc" id="id16" role="doc-noteref"><span class="fn-bracket">[</span>13<span class="fn-bracket">]</span></a></p> |
525 | 559 | <ul class="simple">
|
526 | 560 | <li><p>New forms of <a class="reference internal" href="../syntax/types.html#syntax-heaptype"><span class="std std-ref">heap types</span></a>:</p>
|
527 | 561 | <ul>
|
@@ -616,9 +650,9 @@ <h2>Release 3.0<a class="headerlink" href="#release-3-0" title="Permalink to thi
|
616 | 650 | </ul>
|
617 | 651 | </section>
|
618 | 652 | <section id="relaxed-vector-instructions">
|
619 |
| -<span id="index-15"></span><h3>Relaxed Vector Instructions<a class="headerlink" href="#relaxed-vector-instructions" title="Permalink to this heading">¶</a></h3> |
| 653 | +<span id="index-16"></span><h3>Relaxed Vector Instructions<a class="headerlink" href="#relaxed-vector-instructions" title="Permalink to this heading">¶</a></h3> |
620 | 654 | <p>Added new <em>relaxed</em> vector instructions,
|
621 |
| -whose behaviour is non-deterministic and implementation-dependent. <a class="footnote-reference brackets" href="#proposal-relaxed" id="id16" role="doc-noteref"><span class="fn-bracket">[</span>13<span class="fn-bracket">]</span></a></p> |
| 655 | +whose behaviour is non-deterministic and implementation-dependent. <a class="footnote-reference brackets" href="#proposal-relaxed" id="id17" role="doc-noteref"><span class="fn-bracket">[</span>14<span class="fn-bracket">]</span></a></p> |
622 | 656 | <ul class="simple">
|
623 | 657 | <li><p>New binary <a class="reference internal" href="../syntax/instructions.html#syntax-instr-relaxed"><span class="std std-ref">vector instruction</span></a>:</p>
|
624 | 658 | <ul>
|
@@ -650,16 +684,16 @@ <h2>Release 3.0<a class="headerlink" href="#release-3-0" title="Permalink to thi
|
650 | 684 | </ul>
|
651 | 685 | </section>
|
652 | 686 | <section id="profiles">
|
653 |
| -<span id="index-16"></span><h3>Profiles<a class="headerlink" href="#profiles" title="Permalink to this heading">¶</a></h3> |
| 687 | +<span id="index-17"></span><h3>Profiles<a class="headerlink" href="#profiles" title="Permalink to this heading">¶</a></h3> |
654 | 688 | <p>Introduced the concept of <a class="reference internal" href="profiles.html#profiles"><span class="std std-ref">profile</span></a> for specifying language subsets.</p>
|
655 | 689 | <ul class="simple">
|
656 | 690 | <li><p>A new profile defining a <a class="reference internal" href="profiles.html#profile-deterministic"><span class="std std-ref">deterministic</span></a> mode of execution.</p></li>
|
657 | 691 | </ul>
|
658 | 692 | </section>
|
659 | 693 | <section id="custom-annotations">
|
660 |
| -<span id="index-17"></span><h3>Custom Annotations<a class="headerlink" href="#custom-annotations" title="Permalink to this heading">¶</a></h3> |
| 694 | +<span id="index-18"></span><h3>Custom Annotations<a class="headerlink" href="#custom-annotations" title="Permalink to this heading">¶</a></h3> |
661 | 695 | <p>Added generic syntax for custom annotations in the text format,
|
662 |
| -mirroring the role of custom sections in the binary format. <a class="footnote-reference brackets" href="#proposal-annot" id="id17" role="doc-noteref"><span class="fn-bracket">[</span>14<span class="fn-bracket">]</span></a></p> |
| 696 | +mirroring the role of custom sections in the binary format. <a class="footnote-reference brackets" href="#proposal-annot" id="id18" role="doc-noteref"><span class="fn-bracket">[</span>15<span class="fn-bracket">]</span></a></p> |
663 | 697 | <ul class="simple">
|
664 | 698 | <li><p><a class="reference internal" href="../text/lexical.html#text-annot"><span class="std std-ref">Annotations</span></a> of the form <span class="math notranslate nohighlight">\(\def\mathdef81#1{\mbox{‘}\mathtt{#1}\mbox{’}}\mathdef81{(@id~\dots)}\)</span> are allowed anywhere in the <a class="reference internal" href="../text/index.html#text"><span class="std std-ref">text format</span></a></p></li>
|
665 | 699 | <li><p><a class="reference internal" href="../text/values.html#text-id"><span class="std std-ref">Identifiers</span></a> can be escaped as <span class="math notranslate nohighlight">\(\def\mathdef82#1{\mbox{‘}\mathtt{#1}\mbox{’}}\mathdef82{@"\dots"}\)</span> with arbitrary <a class="reference internal" href="../text/values.html#text-name"><span class="std std-ref">names</span></a></p></li>
|
@@ -691,20 +725,24 @@ <h2>Release 3.0<a class="headerlink" href="#release-3-0" title="Permalink to thi
|
691 | 725 | <span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id13">10</a><span class="fn-bracket">]</span></span>
|
692 | 726 | <p><a class="reference external" href="https://github.com/WebAssembly/spec/blob/main/proposals/multi-memory/">https://github.com/WebAssembly/spec/blob/main/proposals/multi-memory/</a></p>
|
693 | 727 | </aside>
|
694 |
| -<aside class="footnote brackets" id="proposal-typedref" role="note"> |
| 728 | +<aside class="footnote brackets" id="proposal-addr64" role="note"> |
695 | 729 | <span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id14">11</a><span class="fn-bracket">]</span></span>
|
| 730 | +<p><a class="reference external" href="https://github.com/WebAssembly/spec/blob/main/proposals/memory64/">https://github.com/WebAssembly/spec/blob/main/proposals/memory64/</a></p> |
| 731 | +</aside> |
| 732 | +<aside class="footnote brackets" id="proposal-typedref" role="note"> |
| 733 | +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id15">12</a><span class="fn-bracket">]</span></span> |
696 | 734 | <p><a class="reference external" href="https://github.com/WebAssembly/spec/tree/main/proposals/function-references/">https://github.com/WebAssembly/spec/tree/main/proposals/function-references/</a></p>
|
697 | 735 | </aside>
|
698 | 736 | <aside class="footnote brackets" id="proposal-gc" role="note">
|
699 |
| -<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id15">12</a><span class="fn-bracket">]</span></span> |
| 737 | +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id16">13</a><span class="fn-bracket">]</span></span> |
700 | 738 | <p><a class="reference external" href="https://github.com/WebAssembly/spec/tree/main/proposals/gc/">https://github.com/WebAssembly/spec/tree/main/proposals/gc/</a></p>
|
701 | 739 | </aside>
|
702 | 740 | <aside class="footnote brackets" id="proposal-relaxed" role="note">
|
703 |
| -<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id16">13</a><span class="fn-bracket">]</span></span> |
| 741 | +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id17">14</a><span class="fn-bracket">]</span></span> |
704 | 742 | <p><a class="reference external" href="https://github.com/WebAssembly/spec/tree/main/proposals/relaxed-simd/">https://github.com/WebAssembly/spec/tree/main/proposals/relaxed-simd/</a></p>
|
705 | 743 | </aside>
|
706 | 744 | <aside class="footnote brackets" id="proposal-annot" role="note">
|
707 |
| -<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id17">14</a><span class="fn-bracket">]</span></span> |
| 745 | +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id18">15</a><span class="fn-bracket">]</span></span> |
708 | 746 | <p><a class="reference external" href="https://github.com/WebAssembly/annotations/tree/main/proposals/annotations/">https://github.com/WebAssembly/annotations/tree/main/proposals/annotations/</a></p>
|
709 | 747 | </aside>
|
710 | 748 | </aside>
|
|
0 commit comments