aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-02-05 22:19:19 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-02-05 22:19:19 -0500
commitadf5b2ba1386b351ea0ecf9158520aef7ca2c0e3 (patch)
treecbe5976c60771f88b9ec3eec0de43ce5119cb31b
parentbbcf73dcc56dbb2bbd78fd9ca8f82e9b164e2a14 (diff)
Update runtime provided functions table
-rw-r--r--docs/implementation/vm.html59
-rw-r--r--implementation/vm.md45
2 files changed, 61 insertions, 43 deletions
diff --git a/docs/implementation/vm.html b/docs/implementation/vm.html
index 829c755d..46a8aa06 100644
--- a/docs/implementation/vm.html
+++ b/docs/implementation/vm.html
@@ -393,106 +393,121 @@
<tbody>
<tr>
<td align="right">0</td>
-<td><code><span class='Function'>IsArray</span></code></td>
-<td>1 if the right argument is an array, 0 otherwise</td>
+<td><code><span class='Function'>Type</span></code></td>
+<td><code><span class='Function'>β€’Type</span></code></td>
</tr>
<tr>
<td align="right">1</td>
-<td><code><span class='Function'>Type</span></code></td>
-<td>The fill value for array <code><span class='Value'>𝕩</span></code></td>
+<td><code><span class='Function'>Decompose</span></code></td>
+<td><code><span class='Function'>β€’Decompose</span></code></td>
</tr>
<tr>
<td align="right">2</td>
+<td><code><span class='Function'>Glyph</span></code></td>
+<td>(Unused) <code><span class='Function'>β€’Glyph</span></code> for primitive <code><span class='Value'>𝕩</span></code></td>
+</tr>
+<tr>
+<td align="right">3</td>
+<td><code><span class='Function'>Fill</span></code></td>
+<td>Get or set the fill value for array <code><span class='Value'>𝕩</span></code></td>
+</tr>
+<tr>
+<td align="right">4</td>
<td><code><span class='Function'>Log</span></code></td>
<td><code><span class='Function'>⋆</span><span class='Modifier'>⁼</span></code> (natural or base-<code><span class='Value'>𝕨</span></code> logarithm) for atomic arguments</td>
</tr>
<tr>
-<td align="right">3</td>
+<td align="right">5</td>
<td><code><span class='Function'>GroupLen</span></code></td>
<td><code><span class='Function'>β‰ </span><span class='Modifier'>Β¨</span><span class='Function'>βŠ”</span><span class='Value'>𝕩</span></code> for a valid list <code><span class='Value'>𝕩</span></code></td>
</tr>
<tr>
-<td align="right">4</td>
+<td align="right">6</td>
<td><code><span class='Function'>GroupOrd</span></code></td>
<td><code><span class='Function'>βˆΎβŠ”</span><span class='Value'>𝕩</span></code> provided <code><span class='Value'>𝕨</span></code> is <code><span class='Function'>GroupLen</span> <span class='Value'>𝕩</span></code></td>
</tr>
<tr>
-<td align="right">5</td>
+<td align="right">7</td>
<td><code><span class='Function'>!</span></code></td>
<td></td>
</tr>
<tr>
-<td align="right">6</td>
+<td align="right">8</td>
<td><code><span class='Function'>+</span></code></td>
<td>On two atoms</td>
</tr>
<tr>
-<td align="right">7</td>
+<td align="right">9</td>
<td><code><span class='Function'>-</span></code></td>
<td>On one or two atoms</td>
</tr>
<tr>
-<td align="right">8</td>
+<td align="right">10</td>
<td><code><span class='Function'>Γ—</span></code></td>
<td>On two atoms</td>
</tr>
<tr>
-<td align="right">9</td>
+<td align="right">11</td>
<td><code><span class='Function'>Γ·</span></code></td>
<td>On one or two atoms</td>
</tr>
<tr>
-<td align="right">10</td>
+<td align="right">12</td>
<td><code><span class='Function'>⋆</span></code></td>
<td>On one or two atoms</td>
</tr>
<tr>
-<td align="right">11</td>
+<td align="right">13</td>
<td><code><span class='Function'>⌊</span></code></td>
<td>On one atom</td>
</tr>
<tr>
-<td align="right">12</td>
+<td align="right">14</td>
<td><code><span class='Function'>=</span></code></td>
<td>On one value or two atoms</td>
</tr>
<tr>
-<td align="right">13</td>
+<td align="right">15</td>
<td><code><span class='Function'>≀</span></code></td>
<td>On two atoms</td>
</tr>
<tr>
-<td align="right">14</td>
+<td align="right">16</td>
<td><code><span class='Function'>β‰’</span></code></td>
<td>For array <code><span class='Value'>𝕩</span></code></td>
</tr>
<tr>
-<td align="right">15</td>
+<td align="right">17</td>
<td><code><span class='Function'>β₯Š</span></code></td>
<td>For array <code><span class='Value'>𝕩</span></code> with no <code><span class='Value'>𝕨</span></code> or <code><span class='Value'>𝕨</span><span class='Function'>=</span><span class='Modifier2'>β—‹</span><span class='Paren'>(</span><span class='Function'>Γ—</span><span class='Modifier'>Β΄</span><span class='Paren'>)</span><span class='Function'>β‰’</span><span class='Value'>𝕩</span></code></td>
</tr>
<tr>
-<td align="right">16</td>
+<td align="right">18</td>
<td><code><span class='Function'>βŠ‘</span></code></td>
<td>For atom <code><span class='Value'>𝕨</span></code> and list <code><span class='Value'>𝕩</span></code></td>
</tr>
<tr>
-<td align="right">17</td>
+<td align="right">19</td>
<td><code><span class='Function'>↕</span></code></td>
<td>For natural number <code><span class='Value'>𝕩</span></code></td>
</tr>
<tr>
-<td align="right">18</td>
+<td align="right">20</td>
<td><code><span class='Modifier'>⌜</span></code></td>
<td>On arrays</td>
</tr>
<tr>
-<td align="right">19</td>
+<td align="right">21</td>
<td><code><span class='Modifier'>`</span></code></td>
<td></td>
</tr>
<tr>
-<td align="right">20</td>
+<td align="right">22</td>
+<td><code><span class='Modifier2'>_fillBy_</span></code></td>
+<td><code><span class='Function'>𝔽</span></code> with result fill computed using <code><span class='Function'>𝔾</span></code></td>
+</tr>
+<tr>
+<td align="right">23</td>
<td><code><span class='Modifier2'>⊘</span></code></td>
<td></td>
</tr>
diff --git a/implementation/vm.md b/implementation/vm.md
index cc86180e..302717e0 100644
--- a/implementation/vm.md
+++ b/implementation/vm.md
@@ -119,27 +119,30 @@ The contents of a core runtime are given below. The names given are those used i
| Ind | Name | Description / restrictions
|----:|------------|---------------------------
-| 0 | `IsArray` | 1 if the right argument is an array, 0 otherwise
-| 1 | `Type` | The fill value for array `𝕩`
-| 2 | `Log` | `⋆⁼` (natural or base-`𝕨` logarithm) for atomic arguments
-| 3 | `GroupLen` | `β‰ Β¨βŠ”π•©` for a valid list `𝕩`
-| 4 | `GroupOrd` | `βˆΎβŠ”π•©` provided `𝕨` is `GroupLen 𝕩`
-| 5 | `!` |
-| 6 | `+` | On two atoms
-| 7 | `-` | On one or two atoms
-| 8 | `Γ—` | On two atoms
-| 9 | `Γ·` | On one or two atoms
-| 10 | `⋆` | On one or two atoms
-| 11 | `⌊` | On one atom
-| 12 | `=` | On one value or two atoms
-| 13 | `≀` | On two atoms
-| 14 | `β‰’` | For array `𝕩`
-| 15 | `β₯Š` | For array `𝕩` with no `𝕨` or `𝕨=β—‹(Γ—Β΄)≒𝕩`
-| 16 | `βŠ‘` | For atom `𝕨` and list `𝕩`
-| 17 | `↕` | For natural number `𝕩`
-| 18 | `⌜` | On arrays
-| 19 | `` ` `` |
-| 20 | `⊘` |
+| 0 | `Type` | `β€’Type`
+| 1 | `Decompose`| `β€’Decompose`
+| 2 | `Glyph` | (Unused) `β€’Glyph` for primitive `𝕩`
+| 3 | `Fill` | Get or set the fill value for array `𝕩`
+| 4 | `Log` | `⋆⁼` (natural or base-`𝕨` logarithm) for atomic arguments
+| 5 | `GroupLen` | `β‰ Β¨βŠ”π•©` for a valid list `𝕩`
+| 6 | `GroupOrd` | `βˆΎβŠ”π•©` provided `𝕨` is `GroupLen 𝕩`
+| 7 | `!` |
+| 8 | `+` | On two atoms
+| 9 | `-` | On one or two atoms
+| 10 | `Γ—` | On two atoms
+| 11 | `Γ·` | On one or two atoms
+| 12 | `⋆` | On one or two atoms
+| 13 | `⌊` | On one atom
+| 14 | `=` | On one value or two atoms
+| 15 | `≀` | On two atoms
+| 16 | `β‰’` | For array `𝕩`
+| 17 | `β₯Š` | For array `𝕩` with no `𝕨` or `𝕨=β—‹(Γ—Β΄)≒𝕩`
+| 18 | `βŠ‘` | For atom `𝕨` and list `𝕩`
+| 19 | `↕` | For natural number `𝕩`
+| 20 | `⌜` | On arrays
+| 21 | `` ` `` |
+| 22 | `_fillBy_` | `𝔽` with result fill computed using `𝔾`
+| 23 | `⊘` |
Remember that `+` and `-` can also work on characters in some circumstances, under the rules of affine characters. Other arithmetic functions should only accept numbers. `=` must work on numbers, characters, and primitives, and should give `0` without causing an error if the arguments have different types or one is a primitive and the other isn't. `≀` must work on numbers and characters.