aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-06-10 22:08:04 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-06-10 22:08:04 -0400
commite2db366744be07a2d8c7e9f83d8b960b8d8182ee (patch)
tree95192c8dcd18a588376ef4d7293fd0a38f8832fb /docs
parent060739d6e4ab74ec82ae0183a700f3aa014ee8a1 (diff)
CBQN now builds with plain make, using saved bytecode
Diffstat (limited to 'docs')
-rw-r--r--docs/running.html2
1 files changed, 1 insertions, 1 deletions
diff --git a/docs/running.html b/docs/running.html
index d82c4326..64afff7f 100644
--- a/docs/running.html
+++ b/docs/running.html
@@ -20,7 +20,7 @@
<h4 id="javascript">Javascript</h4>
<p>The online REPL is <a href="https://mlochbaum.github.io/BQN/try.html">here</a>. 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. <a href="https://observablehq.com/@lsh/bqn">This notebook</a> shows how to run it in an Observable notebook.</p>
<h4 id="cbqn">CBQN</h4>
-<p>C sources are kept in the <a href="https://github.com/dzaima/CBQN">CBQN</a> repository, but they also require the self-hosted bytecode to be built using <code><span class='Value'>genRuntime</span></code> in that repository. The script uses <code><span class='Value'>bqn</span></code> (whatever that is) by default, but can be run with another BQN executable: bqn.js or dzaima/BQN will work. For example, run <code><span class='Value'>$</span> <span class='Value'>path</span><span class='Function'>/BQN/</span><span class='Value'>bqn.js</span> <span class='Value'>genRuntime</span> <span class='Value'>path</span><span class='Function'>/BQN/</span></code> to bootstrap using Node.js (slow but should be under a minute even on cheap hardware). Once bootstrapped CBQN itself is the fastest option.</p>
+<p>C sources are kept in the <a href="https://github.com/dzaima/CBQN">CBQN</a> repository, but it also depends on bytecode from the BQN sources here. Just running <code><span class='Value'>make</span></code> will fetch saved bytecode from git; to use the latest bytecode, call <code><span class='Value'>genRuntime</span></code> with this repository's path and run <code><span class='Value'>make</span></code> again. <code><span class='Value'>genRuntime</span></code> is pure BQN and could be run with another implementation (for example <code><span class='Value'>$</span> <span class='Value'>path</span><span class='Function'>/BQN/</span><span class='Value'>bqn.js</span> <span class='Value'>genRuntime</span> <span class='Value'>path</span><span class='Function'>/BQN/</span></code> to use BQN on Node.js, which takes almost a minute) but there should be no need to do this.</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">dzaima/BQN</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>