Microcontroller Port of CBQN
Go to file
2021-10-03 23:18:30 +03:00
src bitarrs 2021-10-03 23:18:30 +03:00
.gitignore proper ASM printing toggle, include function names 2021-06-16 03:48:40 +03:00
cc.bqn native ⥊ 2021-07-27 19:48:22 +03:00
genRuntime refresh precompiled bytecode until genRuntime 2021-07-16 23:25:00 +03:00
genRuntimeSrc refresh precompiled bytecode until genRuntime 2021-07-16 23:25:00 +03:00
LICENSE license 2021-04-20 14:26:56 +03:00
makefile bitarrs 2021-10-03 23:18:30 +03:00
precompiled.bqn store directly needed blocks in bodies 2021-05-26 14:45:29 +03:00
README.md squeeze & hash fixes 2021-09-09 16:59:47 +03:00
test.bqn update test.bqn 2021-09-26 23:30:05 +03:00

Build & run (tl;dr: make; rlwrap ./BQN):

  1. (optional) Run ./genRuntime path/to/mlochbaum/BQN; Otherwise, the necessary precompiled bytecode will be retrieved from remotes/origin/bytecode
  2. If wanted, customize settings in src/h.h
  3. make
    • Options: make o3 (the default), make debug (more presets exist for more specific debugging)
    • make CC=gcc can be used to compile with gcc. Otherwise, clang is used.
    • Do make clean or make t=[o3|debug|…] clean beforehand to force recompile
    • make single-(o3|o3g|debug|c) compile everything as a single translation unit and thus will compile slower, but allows specifying extra compiler arguments with make f='…' single-… and allows the compiler to optimize more
  4. ./BQN (or rlwrap ./BQN for a better REPL; see ./BQN --help for more options)

Run tests with ./BQN mlochbaum/BQN/test/this.bqn (add -noerr for a heapverify build).

Time REPL-executed safe prim tests: ./test.bqn mlochbaum/BQN -s prim > SP; time ./BQN<SP>/dev/null

Test precompiled expression: ./precompiled.bqn mlochbaum/BQN "$PATH" '2+2'

Any file without an explicit copyright message is copyright (c) 2021 dzaima, GNU GPLv3 - see LICENSE