diff options
| -rw-r--r-- | docs/running.html | 70 | ||||
| -rw-r--r-- | running.md | 26 |
2 files changed, 73 insertions, 23 deletions
diff --git a/docs/running.html b/docs/running.html index 58f488d1..e66fd124 100644 --- a/docs/running.html +++ b/docs/running.html @@ -7,26 +7,72 @@ <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 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> -<p>There are many websites where you can run BQN as well. All but Attempt This Online are based on Javascript BQN.</p> -<ul> -<li><a href="https://mlochbaum.github.io/BQN/try.html">The main online REPL</a>.</li> -<li><a href="https://bqnpad.mechanize.systems/">BQNPAD</a> is a fancy syntax-highlighted REPL (preview results as you type!).</li> -<li>Razetime's simpler <a href="https://razetime.github.io/bqn-repl/">alternative</a> also runs as a continuous session.</li> -<li>Try It Online format: <a href="https://ato.pxeger.com/run?1=m704qTBvwYKlpSVpuhZoFJQGAA">Attempt This Online</a> runs CBQN server-side; <a href="https://dso.surge.sh/#bqn">Do Stuff Online</a> runs JS BQN locally.</li> -<li>This <a href="https://observablehq.com/@lsh/bqn">Observable notebook</a> can be imported into other notebooks.</li> -<li><a href="https://dancek.github.io/bqn-80">BQN-80</a>: make animations with BQN.</li> -</ul> +<p>All these websites run BQN (on your computer, except Attempt This Online):</p> +<table> +<thead> +<tr> +<th>Link</th> +<th>Style</th> +<th>Engine</th> +<th>Comments</th> +</tr> +</thead> +<tbody> +<tr> +<td><a href="https://mlochbaum.github.io/BQN/try.html">Online REPL</a></td> +<td>One-shot</td> +<td>JS</td> +<td>"Explain", error marker</td> +</tr> +<tr> +<td><a href="https://bqnpad.mechanize.systems/">BQNPAD</a></td> +<td>Session</td> +<td>JS, Wasm</td> +<td>Preview, syntax coloring</td> +</tr> +<tr> +<td><a href="https://ato.pxeger.com/run?1=m704qTBvwYKlpSVpuhZoFJQGAA">Attempt This Online</a></td> +<td>TIO</td> +<td>CBQN</td> +<td>Server-side</td> +</tr> +<tr> +<td><a href="https://dso.surge.sh/#bqn">Do Stuff Online</a></td> +<td>TIO</td> +<td>JS</td> +<td></td> +</tr> +<tr> +<td><a href="https://razetime.github.io/bqn-repl/">Razetime</a></td> +<td>Session</td> +<td>JS</td> +<td></td> +</tr> +<tr> +<td><a href="https://observablehq.com/@lsh/bqn">Observable</a></td> +<td>Notebook</td> +<td>JS</td> +<td>For import in Observable</td> +</tr> +<tr> +<td><a href="https://dancek.github.io/bqn-80">BQN-80</a></td> +<td>One-shot</td> +<td>JS</td> +<td>Create animations</td> +</tr> +</tbody> +</table> +<p>Further details in the sections below.</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 functionality specified so far (really it's ahead of the spec, which has some flaws to be addressed). System value support varies at it's implemented separately in each host.</p> -<p>Support in the following languages has been implemented:</p> +<p>Support in the following languages has been implemented (details in the subsections below):</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>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://git.sr.ht/~andreypopp/BQN.jl">Julia</a> embedding, with common primitives implemented natively. Slow startup.</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/rsbqn/">Rust</a>, motivated by web use (an <a href="https://github.com/cannadayr/ebqn">Erlang</a> version is abandoned as too slow).</li> -<li><a href="https://git.sr.ht/~andreypopp/BQN.jl">Julia</a> embedding, with common primitives implemented natively. Slow startup.</li> </ul> <h4 id="javascript"><a class="header" href="#javascript">Javascript</a></h4> <p>The file <a href="https://github.com/mlochbaum/BQN/blob/master/docs/bqn.js">docs/bqn.js</a> is zero-dependency Javascript, and can be loaded from HTML or Node.js. For command line use, call the Node.js script <a href="https://github.com/mlochbaum/BQN/blob/master/bqn.js">bqn.js</a>, passing a file and <code><span class='Value'>•args</span></code>, or <code><span class='Function'>-</span><span class='Value'>e</span></code> to execute all remaining arguments directly and print the results.</p> @@ -6,27 +6,31 @@ 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). -There are many websites where you can run BQN as well. All but Attempt This Online are based on Javascript BQN. -- [The main online REPL](https://mlochbaum.github.io/BQN/try.html). -- [BQNPAD](https://bqnpad.mechanize.systems/) is a fancy syntax-highlighted REPL (preview results as you type!). -- Razetime's simpler [alternative](https://razetime.github.io/bqn-repl/) also runs as a continuous session. -- Try It Online format: [Attempt This Online](https://ato.pxeger.com/run?1=m704qTBvwYKlpSVpuhZoFJQGAA) runs CBQN server-side; [Do Stuff Online](https://dso.surge.sh/#bqn) runs JS BQN locally. -- This [Observable notebook](https://observablehq.com/@lsh/bqn) can be imported into other notebooks. -- [BQN-80](https://dancek.github.io/bqn-80): make animations with BQN. +All these websites run BQN (on your computer, except Attempt This Online): -### Self-hosted BQN +| Link | Style | Engine | Comments +|------|-------|--------|--------- +| [Online REPL](https://mlochbaum.github.io/BQN/try.html) | One-shot | JS | "Explain", error marker +| [BQNPAD](https://bqnpad.mechanize.systems/) | Session | JS, Wasm | Preview, syntax coloring +| [Attempt This Online](https://ato.pxeger.com/run?1=m704qTBvwYKlpSVpuhZoFJQGAA) | TIO | CBQN | Server-side +| [Do Stuff Online](https://dso.surge.sh/#bqn) | TIO | JS +| [Razetime](https://razetime.github.io/bqn-repl/) | Session | JS +| [Observable](https://observablehq.com/@lsh/bqn) | Notebook | JS | For import in Observable +| [BQN-80](https://dancek.github.io/bqn-80) | One-shot | JS | Create animations + +Further details in the sections below. -See the subsections below for instructions on specific implementations. +### Self-hosted BQN 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 functionality specified so far (really it's ahead of the spec, which has some flaws to be addressed). System value support varies at it's implemented separately in each host. -Support in the following languages has been implemented: +Support in the following languages has been implemented (details in the subsections below): - [C](https://github.com/dzaima/CBQN), targetting high performance. Usually fairly fast. - Javascript, in this repository. Slow (compiles at ~5kB/s) but usable. - BQN ([bqn.bqn](bqn.bqn)), for testing without a build step. +- [Julia](https://git.sr.ht/~andreypopp/BQN.jl) embedding, with common primitives implemented natively. Slow startup. - [C++](https://github.com/ashermancinelli/cxbqn), planning to enable GPU use. Still slow; some cool features. - [Rust](https://github.com/cannadayr/rsbqn/), motivated by web use (an [Erlang](https://github.com/cannadayr/ebqn) version is abandoned as too slow). -- [Julia](https://git.sr.ht/~andreypopp/BQN.jl) embedding, with common primitives implemented natively. Slow startup. #### Javascript |
