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 initto initialize submodules and build the CBQN (BQN implementation used for bootstrap). - Run
juliaand evalusing BQNBQN.bqn0evals the BQN expression using CBQN for compilationBQN.bqnevals the BQN expression using the self hosted compiler
- There's BQN REPL mode:
- Start julia and after
using BQNdoBQN.Repl.init() - Enter
)and start typing BQN code
- Start julia and after
make test0runs the test suite for VM using CBQN hosted compilermake testruns the test suite for VM using self hosted compiler
TODO:
- Implement fill elements
- Implement headers
- Implement namespaces
- Runtime performance tuning
- Compilation latency tuning