From aaa0de82d6d1b71c950438aa695dc02fb210b140 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Tue, 6 Apr 2021 11:21:08 -0400 Subject: Fix docs regarding dzaima+reference and deemphasize it --- docs/running.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'docs/running.html') diff --git a/docs/running.html b/docs/running.html index 212dcd55..2bfb7ac5 100644 --- a/docs/running.html +++ b/docs/running.html @@ -11,14 +11,14 @@

The version of BQN in this repository is implemented mainly in BQN itself—the compiler is entirely self-hosted, while the runtime is built from a small number of starting functions using preprocessed BQN. It completely supports the core language except for block headers and multiple body syntax, and a few cases of structural Under (). The Javascript-based compiler is also slow, taking about 0.05 seconds plus 1 second per kilobyte of source (this is purely due to the slow runtime, as dzaima+reference achieves 1ms/kB with the same compiler once warmed up).

Because self-hosted BQN requires only a simple virtual machine to run, it is fairly easy to embed it in another programming language by implementing this virtual machine. The way data is represented is part of the VM implementation: it can use native arrays or a custom data structure, depending on what the language supports. An initial implementation will be very slow, but can be improved by replacing functions from the BQN-based runtime with native code. As the VM system can be hard to work with if you're not familiar with it, I advise you to contact me to discuss this option it you are interested.

dzaima/BQN

-

dzaima/BQN is an implementation in Java created by modifying the existing dzaima/APL. It should be easy to run on desktop Linux and Android. It is still in development and has almost complete syntax support but incomplete primitive support.

-

dzaima+reference BQN

-

This repository contains a dzaima/BQN script dzref that fills in the gaps in primitive support using BQN implementations of primitives that are not yet up to spec (reference implementations of all primitives starting from a small set of pre-existing functions are part of BQN's specification).

-

You can run dzref from ordinary dzaima/BQN using the •Import command; see for example wcshim.bqn. For testing, it is run as a Unix script, in which case it depends on an executable dbqn that runs dzaima/BQN on a file argument. I use the following script, using the path to a clone of dzaima/BQN for the jar file.

+

dzaima/BQN is an implementation in Java created by modifying the existing dzaima/APL. It should be easy to run on desktop Linux and Android. It is still in development and 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:

#! /bin/bash
 
 java -jar /path/to/dzaima/BQN/BQN.jar "$@"
 
-

The left argument for •Import or the shell arguments can contain up to two arguments for the script. The first is a file to run, and the second is BQN code to be run after it.

+

If compiled with Native Image, nBQN can be used directly instead.

+

dzaima+reference BQN

+

This repository contains a dzaima/BQN script dzref that fills in gaps in primitive support with BQN implementations. dzaima/BQN has good enough primitive support that I now almost never use this, but it's still needed for the website generator md.bqn. The command-line arguments are a script to run and followed by the •args to supply to it.

BQN2NGN

BQN2NGN is a prototype implementation in Javascript build to experiment with the langauge, which is now abandoned.

-- cgit v1.2.3