An implementation of BQN in Julia.
Add the following to the environment (direnv is useful here):
export JULIA_ROOT="/path/to/julia-1.7.2"
export JULIA_PROJECT="${PWD}"
PATH_add "${JULIA_ROOT}/bin"
PATH_add "${PWD}/bin"
Then:
- Linux operating system is assumed
- Clone the repo
- Run
make init
to initialize submodules and build the CBQN (BQN implementation used for bootstrap). - Run
julia
and evalusing BQN
BQN.bqn0
evals the BQN expression using CBQN for compilationBQN.bqn
evals the BQN expression using the self hosted compiler
- There's BQN REPL mode:
- Start julia and after
using BQN
doBQN.Repl.init()
- Enter
)
and start typing BQN code
- Start julia and after
make test0
runs the test suite for VM using CBQN hosted compilermake test
runs the test suite for VM using self hosted compiler
TODO:
- Implement fill elements
- Implement headers
- Implement namespaces
- Runtime performance tuning
- Compilation latency tuning