Skip to content

Commit e0d1e18

Browse files
committed
deploy: 5e4fdb4
1 parent 693b483 commit e0d1e18

File tree

20 files changed

+571
-557
lines changed

20 files changed

+571
-557
lines changed

core/_download/WebAssembly.pdf

95 Bytes
Binary file not shown.

core/appendix/index-instructions.html

Lines changed: 86 additions & 80 deletions
Large diffs are not rendered by default.

core/appendix/index-types.html

Lines changed: 35 additions & 35 deletions
Large diffs are not rendered by default.

core/appendix/profiles.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ <h3 id="searchlabel">Quick search</h3>
9696
<section id="conventions">
9797
<h2>Conventions<a class="headerlink" href="#conventions" title="Link to this heading"></a></h2>
9898
<p>A profile modification is specified by decorating selected rules in the main body of this specification with a <em>profile annotation</em> that defines them as conditional on the choice of profile.</p>
99-
<p>For that purpose, every profile defines a <em>profile marker</em>, an alphanumeric short-hand like <span class="math notranslate nohighlight">\(\def\mathdef1448#1{{\small{\mathrm{#1}}}}\mathdef1448{ABC}\)</span>.
100-
A profile annotation of the form <span class="math notranslate nohighlight">\(\def\mathdef1449#1{{{}^{\small{[{!}#1]}}}}\mathdef1449{\mathrm{ABC}~\mathrm{XYZ}}\)</span> on a rule indicates that this rule is <em>excluded</em> for either of the profiles whose marker is <span class="math notranslate nohighlight">\(\def\mathdef1450#1{{\small{\mathrm{#1}}}}\mathdef1450{ABC}\)</span> or <span class="math notranslate nohighlight">\(\def\mathdef1451#1{{\small{\mathrm{#1}}}}\mathdef1451{XYZ}\)</span>.</p>
99+
<p>For that purpose, every profile defines a <em>profile marker</em>, an alphanumeric short-hand like <span class="math notranslate nohighlight">\(\def\mathdef1451#1{{\small{\mathrm{#1}}}}\mathdef1451{ABC}\)</span>.
100+
A profile annotation of the form <span class="math notranslate nohighlight">\(\def\mathdef1452#1{{{}^{\small{[{!}#1]}}}}\mathdef1452{\mathrm{ABC}~\mathrm{XYZ}}\)</span> on a rule indicates that this rule is <em>excluded</em> for either of the profiles whose marker is <span class="math notranslate nohighlight">\(\def\mathdef1453#1{{\small{\mathrm{#1}}}}\mathdef1453{ABC}\)</span> or <span class="math notranslate nohighlight">\(\def\mathdef1454#1{{\small{\mathrm{#1}}}}\mathdef1454{XYZ}\)</span>.</p>
101101
<p>There are two ways of subsetting the language in a profile:</p>
102102
<ul class="simple">
103103
<li><p><em>Syntactic</em>, by <em>omitting</em> a feature, in which case certain constructs are removed from the syntax altogether.</p></li>
@@ -114,12 +114,12 @@ <h3>Syntax Annotations<a class="headerlink" href="#syntax-annotations" title="Li
114114
<p>The overall effect is that the respective construct is no longer part of the language under a respective profile.</p>
115115
<div class="admonition note">
116116
<p class="admonition-title">Note</p>
117-
<p>For example, a “busy” profile marked <span class="math notranslate nohighlight">\(\def\mathdef1452#1{{\small{\mathrm{#1}}}}\mathdef1452{BUSY}\)</span> could rule out the <span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{nop}}\)</span> instruction by marking the production for it in the abstract syntax as follows:</p>
117+
<p>For example, a “busy” profile marked <span class="math notranslate nohighlight">\(\def\mathdef1455#1{{\small{\mathrm{#1}}}}\mathdef1455{BUSY}\)</span> could rule out the <span class="math notranslate nohighlight">\(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{nop}}\)</span> instruction by marking the production for it in the abstract syntax as follows:</p>
118118
<div class="math notranslate nohighlight">
119119
\[\begin{split}\begin{array}{llcl}
120-
\def\mathdef1417#1{{}}\mathdef1417{instruction} &amp; \href{../syntax/instructions.html#syntax-instr}{\mathit{instr}} &amp;::=&amp;
120+
\def\mathdef1420#1{{}}\mathdef1420{instruction} &amp; \href{../syntax/instructions.html#syntax-instr}{\mathit{instr}} &amp;::=&amp;
121121
\dots \\
122-
&amp; \def\mathdef1453#1{{{}^{\small{[{!}#1]}}}}\mathdef1453{\mathrm{BUSY}} &amp;|&amp; \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{nop}} \\
122+
&amp; \def\mathdef1456#1{{{}^{\small{[{!}#1]}}}}\mathdef1456{\mathrm{BUSY}} &amp;|&amp; \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{nop}} \\
123123
&amp; &amp;|&amp; \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{unreachable}} \\
124124
\end{array}\end{split}\]</div>
125125
<p>A rule may be annotated by multiple markers, which could be the case if a construct is in the intersection of multiple features.</p>
@@ -131,7 +131,7 @@ <h3>Semantics Annotations<a class="headerlink" href="#semantics-annotations" tit
131131
<p>This has the consequence that the respective rule is no longer applicable under the given profile.</p>
132132
<div class="admonition note">
133133
<p class="admonition-title">Note</p>
134-
<p>For example, an “infinite” profile marked <span class="math notranslate nohighlight">\(\def\mathdef1454#1{{\small{\mathrm{#1}}}}\mathdef1454{INF}\)</span> could define that growing memory never fails:</p>
134+
<p>For example, an “infinite” profile marked <span class="math notranslate nohighlight">\(\def\mathdef1457#1{{\small{\mathrm{#1}}}}\mathdef1457{INF}\)</span> could define that growing memory never fails:</p>
135135
<div class="math notranslate nohighlight">
136136
\[\begin{split}\begin{array}{llcl&#64;{\qquad}l}
137137
&amp; S; F; (\href{../syntax/types.html#syntax-numtype}{\mathsf{i\scriptstyle32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~n)~\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{memory{.}grow}}~x &amp;\href{../exec/conventions.html#exec-notation}{\hookrightarrow}&amp; S'; F; (\href{../syntax/types.html#syntax-numtype}{\mathsf{i\scriptstyle32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~\mathit{sz})
@@ -142,7 +142,7 @@ <h3>Semantics Annotations<a class="headerlink" href="#semantics-annotations" tit
142142
\wedge &amp; S' = S \href{../syntax/conventions.html#notation-replace}{\mathrel{\mbox{with}}} \href{../exec/runtime.html#syntax-store}{\mathsf{mems}}[a] = \href{../exec/modules.html#grow-mem}{\mathrm{growmem}}(S.\href{../exec/runtime.html#syntax-store}{\mathsf{mems}}[a], n)) \\[1ex]
143143
\end{array}
144144
\\[1ex]
145-
\def\mathdef1455#1{{{}^{\small{[{!}#1]}}}}\mathdef1455{\mathrm{INF}} &amp; S; F; (\href{../syntax/types.html#syntax-numtype}{\mathsf{i\scriptstyle32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~n)~\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{memory{.}grow}}~x &amp;\href{../exec/conventions.html#exec-notation}{\hookrightarrow}&amp; S; F; (\href{../syntax/types.html#syntax-numtype}{\mathsf{i\scriptstyle32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~\href{../exec/numerics.html#aux-signed}{\mathrm{signed}}_{32}^{-1}(-1))
145+
\def\mathdef1458#1{{{}^{\small{[{!}#1]}}}}\mathdef1458{\mathrm{INF}} &amp; S; F; (\href{../syntax/types.html#syntax-numtype}{\mathsf{i\scriptstyle32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~n)~\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{memory{.}grow}}~x &amp;\href{../exec/conventions.html#exec-notation}{\hookrightarrow}&amp; S; F; (\href{../syntax/types.html#syntax-numtype}{\mathsf{i\scriptstyle32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~\href{../exec/numerics.html#aux-signed}{\mathrm{signed}}_{32}^{-1}(-1))
146146
\end{array}\end{split}\]</div>
147147
</div>
148148
</section>
@@ -176,7 +176,7 @@ <h2>Defined Profiles<a class="headerlink" href="#defined-profiles" title="Link t
176176
</section>
177177
<section id="deterministic-profile-small-mathrm-det">
178178
<span id="profile-deterministic"></span><span id="index-2"></span><h3>Deterministic Profile (<span class="math notranslate nohighlight">\({\small{\mathrm{DET}}}\)</span>)<a class="headerlink" href="#deterministic-profile-small-mathrm-det" title="Link to this heading"></a></h3>
179-
<p>The <em>deterministic</em> profile excludes all rules marked <span class="math notranslate nohighlight">\(\def\mathdef1456#1{{{}^{\small{[{!}#1]}}}}\mathdef1456{\href{../appendix/profiles.html#profile-deterministic}{\mathrm{DET}}}\)</span>.
179+
<p>The <em>deterministic</em> profile excludes all rules marked <span class="math notranslate nohighlight">\(\def\mathdef1459#1{{{}^{\small{[{!}#1]}}}}\mathdef1459{\href{../appendix/profiles.html#profile-deterministic}{\mathrm{DET}}}\)</span>.
180180
It defines a sub-language that does not exhibit any incidental non-deterministic behaviour:</p>
181181
<ul class="simple">
182182
<li><p>All <a class="reference internal" href="../syntax/values.html#syntax-nan"><span class="std std-ref">NaN</span></a> values <a class="reference internal" href="../exec/numerics.html#aux-nans"><span class="std std-ref">generated</span></a> by <a class="reference internal" href="../syntax/instructions.html#syntax-instr-numeric"><span class="std std-ref">floating-point instructions</span></a> are canonical and positive.</p></li>

core/appendix/properties.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ <h3 id="searchlabel">Quick search</h3>
108108
the <a class="reference internal" href="../valid/conventions.html#context"><span class="std std-ref">context</span></a> is locally extended with an additional component that records the <a class="reference internal" href="../syntax/types.html#syntax-subtype"><span class="std std-ref">sub type</span></a> corresponding to each <a class="reference internal" href="../valid/conventions.html#syntax-rectypeidx"><span class="std std-ref">recursive type index</span></a> within the current <a class="reference internal" href="../syntax/types.html#syntax-rectype"><span class="std std-ref">recursive type</span></a>:</p>
109109
<div class="math notranslate nohighlight">
110110
\[\begin{split}\begin{array}{llll}
111-
\def\mathdef1457#1{{}}\mathdef1457{context} &amp; C &amp;::=&amp;
111+
\def\mathdef1460#1{{}}\mathdef1460{context} &amp; C &amp;::=&amp;
112112
\{~ \dots, \href{../appendix/properties.html#context-ext}{\mathsf{recs}} ~ \href{../syntax/types.html#syntax-subtype}{\mathit{subtype}}^\ast ~\} \\
113113
\end{array}\end{split}\]</div>
114114
</section>
@@ -1274,15 +1274,15 @@ <h3><a class="reference internal" href="../exec/runtime.html#syntax-result"><spa
12741274
<p>Technically, the <a class="reference internal" href="../syntax/modules.html#syntax-type"><span class="std std-ref">syntax</span></a> of <a class="reference internal" href="../syntax/types.html#syntax-heaptype"><span class="std std-ref">heap</span></a>, <a class="reference internal" href="../syntax/types.html#syntax-valtype"><span class="std std-ref">value</span></a>, and <a class="reference internal" href="../syntax/types.html#syntax-resulttype"><span class="std std-ref">result</span></a> types can be enriched with type variables as follows:</p>
12751275
<div class="math notranslate nohighlight">
12761276
\[\begin{split}\begin{array}{llll}
1277-
\def\mathdef1457#1{{}}\mathdef1457{nullability} &amp; \mathit{null} &amp;::=&amp;
1277+
\def\mathdef1460#1{{}}\mathdef1460{nullability} &amp; \mathit{null} &amp;::=&amp;
12781278
\href{../syntax/types.html#syntax-reftype}{\mathsf{null}}^? ~|~ \alpha_{\mathit{null}} \\
1279-
\def\mathdef1457#1{{}}\mathdef1457{heap type} &amp; \href{../syntax/types.html#syntax-heaptype}{\mathit{heaptype}} &amp;::=&amp;
1279+
\def\mathdef1460#1{{}}\mathdef1460{heap type} &amp; \href{../syntax/types.html#syntax-heaptype}{\mathit{heaptype}} &amp;::=&amp;
12801280
\dots ~|~ \alpha_{\href{../syntax/types.html#syntax-heaptype}{\mathit{heaptype}}} \\
1281-
\def\mathdef1457#1{{}}\mathdef1457{reference type} &amp; \href{../syntax/types.html#syntax-reftype}{\mathit{reftype}} &amp;::=&amp;
1281+
\def\mathdef1460#1{{}}\mathdef1460{reference type} &amp; \href{../syntax/types.html#syntax-reftype}{\mathit{reftype}} &amp;::=&amp;
12821282
\href{../syntax/types.html#syntax-reftype}{\mathsf{ref}}~\mathit{null}~\href{../syntax/types.html#syntax-heaptype}{\mathit{heaptype}} \\
1283-
\def\mathdef1457#1{{}}\mathdef1457{value type} &amp; \href{../syntax/types.html#syntax-valtype}{\mathit{valtype}} &amp;::=&amp;
1283+
\def\mathdef1460#1{{}}\mathdef1460{value type} &amp; \href{../syntax/types.html#syntax-valtype}{\mathit{valtype}} &amp;::=&amp;
12841284
\dots ~|~ \alpha_{\href{../syntax/types.html#syntax-valtype}{\mathit{valtype}}} ~|~ \alpha_{\mathit{numvectype}} \\
1285-
\def\mathdef1457#1{{}}\mathdef1457{result type} &amp; \href{../syntax/types.html#syntax-resulttype}{\mathit{resulttype}} &amp;::=&amp;
1285+
\def\mathdef1460#1{{}}\mathdef1460{result type} &amp; \href{../syntax/types.html#syntax-resulttype}{\mathit{resulttype}} &amp;::=&amp;
12861286
[\alpha_{\href{../syntax/types.html#syntax-valtype}{\mathit{valtype}}^\ast}^?~\href{../syntax/types.html#syntax-valtype}{\mathit{valtype}}^\ast] \\
12871287
\end{array}\end{split}\]</div>
12881288
<p>where each <span class="math notranslate nohighlight">\(\alpha_{\mathit{xyz}}\)</span> ranges over a set of type variables for syntactic class <span class="math notranslate nohighlight">\(\mathit{xyz}\)</span>, respectively.

0 commit comments

Comments
 (0)