aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2022-01-02 13:32:30 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2022-01-02 13:32:30 -0500
commit0e38c72d5866c81b8d31ab1e2286c4a392fc92c7 (patch)
tree7b7f9b04253daf88546aa45c24c0ac1dfb9a086e
parent9fd6659932f8e995934f3a9a3cacea0ba6c474bc (diff)
Various updates to running.md
-rw-r--r--docs/running.html16
-rw-r--r--running.md16
2 files changed, 16 insertions, 16 deletions
diff --git a/docs/running.html b/docs/running.html
index c7f59114..067dc8b1 100644
--- a/docs/running.html
+++ b/docs/running.html
@@ -5,17 +5,17 @@
</head>
<div class="nav">(<a href="https://github.com/mlochbaum/BQN">github</a>) / <a href="index.html">BQN</a></div>
<h1 id="how-to-run-bqn"><a class="header" href="#how-to-run-bqn">How to run BQN</a></h1>
-<p><a href="https://github.com/dzaima/CBQN">CBQN</a> is now the primary offline implementation, and can be used everywhere in this repository, except test/dzaima which is specifically for testing with dzaima/BQN. Scripts start with <code><span class='Comment'>#! /usr/bin/env bqn</span></code> in order to look up the user's <code><span class='Value'>bqn</span></code> executable.</p>
-<p>For Nix users, nixpkgs now has repositories for several implementations; <code><span class='Value'>cbqn</span></code> is recommended for general use. Similarly, in Arch Linux, <code><span class='Value'>cbqn</span><span class='Function'>-</span><span class='Value'>git</span></code> from the AUR is recommended (but I have no contact with the maintainer, so it's entirely unofficial).</p>
+<p><a href="https://github.com/dzaima/CBQN">CBQN</a> is the primary offline implementation. Scripts in this repository start with <code><span class='Comment'>#! /usr/bin/env bqn</span></code> in order to look up the user's <code><span class='Value'>bqn</span></code> executable, which is expected to be CBQN.</p>
+<p>Third-party packages to build some BQN implementations are available for both Nix and Arch Linux. For general use I recommend <code><span class='Value'>cbqn</span></code> from nixpkgs (Nix) and <code><span class='Value'>cbqn</span><span class='Function'>-</span><span class='Value'>git</span></code> from the AUR (Arch).</p>
<h3 id="self-hosted-bqn"><a class="header" href="#self-hosted-bqn">Self-hosted BQN</a></h3>
<p>See the subsections below for instructions on specific implementations.</p>
-<p>This version of BQN is <a href="implementation/index.html">implemented</a> mainly in BQN itself, but a host language supplies basic functionality and can also replace primitives for better performance. This also allows <a href="doc/embed.html">embedding</a>, where programs in the host language can include BQN code. It fully supports all primitives except a few cases of structural Under (<code><span class='Modifier2'>⌾</span></code>), and is missing some minor syntax features such as derived 1-modifiers and block returns.</p>
+<p>This version of BQN is <a href="implementation/index.html">implemented</a> mainly in BQN itself, but a host language supplies basic functionality and can also replace primitives for better performance. This also allows <a href="doc/embed.html">embedding</a>, where programs in the host language can include BQN code. It fully supports all syntax specified so far, and all primitives except a few cases of structural Under (<code><span class='Modifier2'>⌾</span></code>). System value support varies at it's implemented separately in each host.</p>
<p>Support in the following languages has been implemented:</p>
<ul>
+<li><a href="https://github.com/dzaima/CBQN">C</a>, targetting high performance. Usually fairly fast.</li>
<li>Javascript, in this repository. Slow (compiles at ~5kB/s) but usable.</li>
-<li><a href="https://github.com/dzaima/CBQN">C</a>, targetting high performance. Many parts are fast, some are not.</li>
-<li><a href="https://github.com/ashermancinelli/cxbqn">C++</a>, planning to enable GPU use. It works but is still early-stage.</li>
-<li>BQN (<a href="https://github.com/mlochbaum/BQN/blob/master/bqn.bqn">bqn.bqn</a>), for testing the compiler easily.</li>
+<li>BQN (<a href="https://github.com/mlochbaum/BQN/blob/master/bqn.bqn">bqn.bqn</a>), for testing without a build step.</li>
+<li><a href="https://github.com/ashermancinelli/cxbqn">C++</a>, planning to enable GPU use. Still slow; some cool features.</li>
<li><a href="https://github.com/cannadayr/ebqn">Erlang</a>, intended for embedding. Too slow to be practical; a <a href="https://github.com/cannadayr/ebqn-rs/">Rust version</a> is in progress to fix this.</li>
</ul>
<h4 id="javascript"><a class="header" href="#javascript">Javascript</a></h4>
@@ -25,8 +25,8 @@
<p><code><span class='Value'>genRuntime</span></code> can also be run with another BQN implementation (the Node.js one works but takes up to a minute), and plain <code><span class='Value'>.</span><span class='Function'>/</span><span class='Value'>genRuntime</span></code> uses your system's <code><span class='Value'>bqn</span></code> executable. I symlink <code><span class='Value'>…</span><span class='Function'>/CBQN/BQN</span></code> to <code><span class='Value'>~</span><span class='Function'>/</span><span class='Value'>bin</span><span class='Function'>/</span><span class='Value'>bqn</span></code> so I can easily use CBQN for scripting.</p>
<p>CBQN uses the self-hosted runtime to achieve full primitive coverage, and implements specific primitives or parts of primitives natively to speed them up. This means primitives with native support—including everything used by the compiler—are fairly fast while others are much slower.</p>
<h3 id="dzaimabqn"><a class="header" href="#dzaimabqn">dzaima/BQN</a></h3>
-<p><a href="https://github.com/dzaima/BQN/">dzaima/BQN</a> is an implementation in Java created by modifying the existing dzaima/APL, and should be easy to run on desktop Linux and Android. It may be abandoned as dzaima is now working on CBQN. It has almost complete syntax support but incomplete primitive support: major missing functionality is dyadic Depth (<code><span class='Modifier2'>⚇</span></code>), Windows (<code><span class='Function'>↕</span></code>), and many cases of set functions (<code><span class='Function'>⊐⊒∊⍷</span></code>, mostly with rank &gt;1).</p>
-<p>In this repository and elsewhere, dzaima/BQN scripts are called with <code><span class='Comment'>#! /usr/bin/env dbqn</span></code>. This requires an executable file <code><span class='Value'>dbqn</span></code> somewhere in your path with the following contents:</p>
+<p><a href="https://github.com/dzaima/BQN/">dzaima/BQN</a> is an implementation in Java created by modifying the existing dzaima/APL, and should be easy to run on desktop Linux and Android. It was historically the main implementation, but is now updated only to stay up to date with language changes. It has almost complete syntax support but incomplete primitive support: major missing functionality is dyadic Depth (<code><span class='Modifier2'>⚇</span></code>), Windows (<code><span class='Function'>↕</span></code>), and many cases of set functions (<code><span class='Function'>⊐⊒∊⍷</span></code>, mostly with rank &gt;1).</p>
+<p>To get an executable that works like CBQN, make a script with the following contents. Scripts may use <code><span class='Comment'>#! /usr/bin/env dbqn</span></code> to run with dzaima/BQN specifically, but this is rare now (in this repository, only <code><span class='Value'>test</span><span class='Function'>/</span><span class='Value'>dzaima</span></code> does it).</p>
<pre><span class='Comment'>#! /bin/bash
</span>
<span class='Value'>java</span> <span class='Function'>-</span><span class='Value'>jar</span> <span class='Function'>/</span><span class='Value'>path</span><span class='Function'>/</span><span class='Value'>to</span><span class='Function'>/</span><span class='Value'>dzaima</span><span class='Function'>/BQN/BQN</span><span class='Value'>.jar</span> <span class='String'>&quot;$@&quot;</span>
diff --git a/running.md b/running.md
index f921743d..43615916 100644
--- a/running.md
+++ b/running.md
@@ -2,21 +2,21 @@
# How to run BQN
-[CBQN](https://github.com/dzaima/CBQN) is now the primary offline implementation, and can be used everywhere in this repository, except test/dzaima which is specifically for testing with dzaima/BQN. Scripts start with `#! /usr/bin/env bqn` in order to look up the user's `bqn` executable.
+[CBQN](https://github.com/dzaima/CBQN) is the primary offline implementation. Scripts in this repository start with `#! /usr/bin/env bqn` in order to look up the user's `bqn` executable, which is expected to be CBQN.
-For Nix users, nixpkgs now has repositories for several implementations; `cbqn` is recommended for general use. Similarly, in Arch Linux, `cbqn-git` from the AUR is recommended (but I have no contact with the maintainer, so it's entirely unofficial).
+Third-party packages to build some BQN implementations are available for both Nix and Arch Linux. For general use I recommend `cbqn` from nixpkgs (Nix) and `cbqn-git` from the AUR (Arch).
### Self-hosted BQN
See the subsections below for instructions on specific implementations.
-This version of BQN is [implemented](implementation/README.md) mainly in BQN itself, but a host language supplies basic functionality and can also replace primitives for better performance. This also allows [embedding](doc/embed.md), where programs in the host language can include BQN code. It fully supports all primitives except a few cases of structural Under (`⌾`), and is missing some minor syntax features such as derived 1-modifiers and block returns.
+This version of BQN is [implemented](implementation/README.md) mainly in BQN itself, but a host language supplies basic functionality and can also replace primitives for better performance. This also allows [embedding](doc/embed.md), where programs in the host language can include BQN code. It fully supports all syntax specified so far, and all primitives except a few cases of structural Under (`⌾`). System value support varies at it's implemented separately in each host.
Support in the following languages has been implemented:
+- [C](https://github.com/dzaima/CBQN), targetting high performance. Usually fairly fast.
- Javascript, in this repository. Slow (compiles at ~5kB/s) but usable.
-- [C](https://github.com/dzaima/CBQN), targetting high performance. Many parts are fast, some are not.
-- [C++](https://github.com/ashermancinelli/cxbqn), planning to enable GPU use. It works but is still early-stage.
-- BQN ([bqn.bqn](bqn.bqn)), for testing the compiler easily.
+- BQN ([bqn.bqn](bqn.bqn)), for testing without a build step.
+- [C++](https://github.com/ashermancinelli/cxbqn), planning to enable GPU use. Still slow; some cool features.
- [Erlang](https://github.com/cannadayr/ebqn), intended for embedding. Too slow to be practical; a [Rust version](https://github.com/cannadayr/ebqn-rs/) is in progress to fix this.
#### Javascript
@@ -33,9 +33,9 @@ CBQN uses the self-hosted runtime to achieve full primitive coverage, and implem
### dzaima/BQN
-[dzaima/BQN](https://github.com/dzaima/BQN/) is an implementation in Java created by modifying the existing dzaima/APL, and should be easy to run on desktop Linux and Android. It may be abandoned as dzaima is now working on CBQN. It has almost complete syntax support but incomplete primitive support: major missing functionality is dyadic Depth (`⚇`), Windows (`↕`), and many cases of set functions (`⊐⊒∊⍷`, mostly with rank >1).
+[dzaima/BQN](https://github.com/dzaima/BQN/) is an implementation in Java created by modifying the existing dzaima/APL, and should be easy to run on desktop Linux and Android. It was historically the main implementation, but is now updated only to stay up to date with language changes. It has almost complete syntax support but incomplete primitive support: major missing functionality is dyadic Depth (`⚇`), Windows (`↕`), and many cases of set functions (`⊐⊒∊⍷`, mostly with rank >1).
-In this repository and elsewhere, dzaima/BQN scripts are called with `#! /usr/bin/env dbqn`. This requires an executable file `dbqn` somewhere in your path with the following contents:
+To get an executable that works like CBQN, make a script with the following contents. Scripts may use `#! /usr/bin/env dbqn` to run with dzaima/BQN specifically, but this is rare now (in this repository, only `test/dzaima` does it).
#! /bin/bash