diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-09-28 20:16:31 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-09-28 20:16:31 -0400 |
| commit | 1e290deb5f670f8a65ee20fe8e095fe5786d1237 (patch) | |
| tree | 1fe39cdc94f5160554031d69fd4f616508bfc4bb | |
| parent | 75e96c9edd4395e1554922cbb4de78c764b0d73f (diff) | |
Links to the TopAnswers language changes page
| -rw-r--r-- | commentary/stability.md | 2 | ||||
| -rw-r--r-- | docs/commentary/stability.html | 2 | ||||
| -rw-r--r-- | docs/spec/index.html | 2 | ||||
| -rw-r--r-- | spec/README.md | 2 |
4 files changed, 4 insertions, 4 deletions
diff --git a/commentary/stability.md b/commentary/stability.md index daccc1e5..8d433370 100644 --- a/commentary/stability.md +++ b/commentary/stability.md @@ -2,7 +2,7 @@ # Is BQN stable? -The short answer is that code running online or in CBQN is unlikely to break. In rare cases we add experimental system values (the `•` things) before we're ready to commit to a particular design; read further or check on the forums if you'd like to know the status of a particular system function. +The short answer is that code running online or in CBQN is unlikely to break. In rare cases we add experimental system values (the `•` things) before we're ready to commit to a particular design; read further or check on the forums if you'd like to know the status of a particular system function. And we are still making some backwards-compatible additions of moderate importance to core BQN: see [this page](https://topanswers.xyz/apl?q=1888). So it's possible that that extra knowledge will be needed to keep up with BQN in the future, but only a small amount. I have thousands of lines of running BQN code including the self-hosted sources, website generator, and Singeli compiler. There are also now many BQN examples and REPL links [spread](../community/README.md) across the web which would be harder to change. So there is a strong reason to maintain compatibility for common or even moderately used features. Because BQN's been designed in a conservative way, avoiding fiddly decisions by keeping things simple, it seems that few compatibility breaks will be required. The history so far seems to bear this out. diff --git a/docs/commentary/stability.html b/docs/commentary/stability.html index 9e12ef34..6c23680f 100644 --- a/docs/commentary/stability.html +++ b/docs/commentary/stability.html @@ -5,7 +5,7 @@ </head> <div class="nav">(<a href="https://github.com/mlochbaum/BQN">github</a>) / <a href="../index.html">BQN</a> / <a href="index.html">commentary</a></div> <h1 id="is-bqn-stable"><a class="header" href="#is-bqn-stable">Is BQN stable?</a></h1> -<p>The short answer is that code running online or in CBQN is unlikely to break. In rare cases we add experimental system values (the <code><span class='Value'>•</span></code> things) before we're ready to commit to a particular design; read further or check on the forums if you'd like to know the status of a particular system function.</p> +<p>The short answer is that code running online or in CBQN is unlikely to break. In rare cases we add experimental system values (the <code><span class='Value'>•</span></code> things) before we're ready to commit to a particular design; read further or check on the forums if you'd like to know the status of a particular system function. And we are still making some backwards-compatible additions of moderate importance to core BQN: see <a href="https://topanswers.xyz/apl?q=1888">this page</a>. So it's possible that that extra knowledge will be needed to keep up with BQN in the future, but only a small amount.</p> <p>I have thousands of lines of running BQN code including the self-hosted sources, website generator, and Singeli compiler. There are also now many BQN examples and REPL links <a href="../community/index.html">spread</a> across the web which would be harder to change. So there is a strong reason to maintain compatibility for common or even moderately used features. Because BQN's been designed in a conservative way, avoiding fiddly decisions by keeping things simple, it seems that few compatibility breaks will be required. The history so far seems to bear this out.</p> <p>Various edge cases were fixed when I first ran the primitive specifications through unit tests(!) in February 2021. Since then there has been a single compatibility break, that is, change from one intentional (i.e. excluding bugs) non-error behavior to a different behavior.</p> <ul> diff --git a/docs/spec/index.html b/docs/spec/index.html index d02d6de2..13d9afb7 100644 --- a/docs/spec/index.html +++ b/docs/spec/index.html @@ -5,7 +5,7 @@ </head> <div class="nav">(<a href="https://github.com/mlochbaum/BQN">github</a>) / <a href="../index.html">BQN</a></div> <h1 id="bqn-specification"><a class="header" href="#bqn-specification">BQN specification</a></h1> -<p>This document, and the others in this directory (linked in the list below) make up the pre-versioning BQN specification. The specification differs from the <a href="../doc/index.html">documentation</a> in that its purpose is only to describe the exact details of BQN's operation in the most quickly accessible way, rather than to explain the central ideas of BQN functionality and how it might be used. The core of BQN, which excludes system-provided values, is now almost completely specified. One planned feature—an extension to allow low-rank elements in the argument to Join—has not yet been added, and the spec will continue to be edited further to improve clarity and cover any edge cases that have been missed.</p> +<p>This document, and the others in this directory (linked in the list below) make up the pre-versioning BQN specification. The specification differs from the <a href="../doc/index.html">documentation</a> in that its purpose is only to describe the exact details of BQN's operation in the most quickly accessible way, rather than to explain the central ideas of BQN functionality and how it might be used. The core of BQN, which excludes system-provided values, is now almost completely specified. Planned changes to the specification are tracked on <a href="https://topanswers.xyz/apl?q=1888">this page</a>.</p> <p>Under this specification, a language implementation is a <strong>BQN pre-version implementation</strong> if it behaves as specified for all input programs. It is a <strong>BQN pre-version implementation with extensions</strong> if it behaves as specified in all cases where the specification does not require an error, but behaves differently in at least one case where it requires an error. It is a <strong>partial</strong> version of either of these if it doesn't conform to the description but differs from a conforming implementation only by rejecting with an error some programs that the conforming implementation accepts. As the specification is not yet versioned, other instances of the specification define these terms in different ways. An implementation can use one of these terms if it conforms to any instance of the pre-versioning BQN specifications that defines them. When versioning is begun, there will be only one specification for each version.</p> <p>The following documents are included in the BQN specification. A BQN program is a sequence of <a href="https://en.wikipedia.org/wiki/Unicode">Unicode</a> code points: to evaluate it, it is converted into a sequence of tokens using the token formation rules, then these tokens are arranged in a syntax tree according to the grammar, and then this tree is evaluated according to the evaluation semantics. The program may be evaluated in the presence of additional context such as a filesystem or command-line arguments; this context is presented to the program and manipulated through the system-provided values.</p> <ul> diff --git a/spec/README.md b/spec/README.md index 554deca0..5a5c02b2 100644 --- a/spec/README.md +++ b/spec/README.md @@ -2,7 +2,7 @@ # BQN specification -This document, and the others in this directory (linked in the list below) make up the pre-versioning BQN specification. The specification differs from the [documentation](../doc/README.md) in that its purpose is only to describe the exact details of BQN's operation in the most quickly accessible way, rather than to explain the central ideas of BQN functionality and how it might be used. The core of BQN, which excludes system-provided values, is now almost completely specified. One planned feature—an extension to allow low-rank elements in the argument to Join—has not yet been added, and the spec will continue to be edited further to improve clarity and cover any edge cases that have been missed. +This document, and the others in this directory (linked in the list below) make up the pre-versioning BQN specification. The specification differs from the [documentation](../doc/README.md) in that its purpose is only to describe the exact details of BQN's operation in the most quickly accessible way, rather than to explain the central ideas of BQN functionality and how it might be used. The core of BQN, which excludes system-provided values, is now almost completely specified. Planned changes to the specification are tracked on [this page](https://topanswers.xyz/apl?q=1888). Under this specification, a language implementation is a **BQN pre-version implementation** if it behaves as specified for all input programs. It is a **BQN pre-version implementation with extensions** if it behaves as specified in all cases where the specification does not require an error, but behaves differently in at least one case where it requires an error. It is a **partial** version of either of these if it doesn't conform to the description but differs from a conforming implementation only by rejecting with an error some programs that the conforming implementation accepts. As the specification is not yet versioned, other instances of the specification define these terms in different ways. An implementation can use one of these terms if it conforms to any instance of the pre-versioning BQN specifications that defines them. When versioning is begun, there will be only one specification for each version. |
