Microcontroller Port of CBQN
| docs | ||
| SingeliClone@a7e39c4e28 | ||
| src | ||
| .gitignore | ||
| .gitmodules | ||
| cc.bqn | ||
| genRuntime | ||
| genRuntimeSrc | ||
| LICENSE | ||
| makefile | ||
| precompiled.bqn | ||
| README.md | ||
| SingeliMake.bqn | ||
| test.bqn | ||
A BQN implementation in C
CBQN-specific documentation • source code overview
Running
makemake CC=gccif you don't have clang installedmake PIE=""on ARM CPUs (incl. Android & M1)gmakeon BSDsmake cleanif anything goes bad and you want a clean slate
./BQN somefile.bqnto execute a file, orrlwrap ./BQNfor a REPL
Configuration options
some-other-bqn-implementation ./genRuntime path/to/mlochbaum/BQNcan be used to avoid pulling precompiled bytecode with git fromremotes/origin/bytecode.
This creates the dummy filesrc/gen/customRuntimeand will disable automated bytecode retrieval whenever it's updated.
make clean-runtime(which is included inmake clean) can be used to reset to the default state.- Different build types:
make o3--O3, the default buildmake o3n--O3 -march=nativemake o3g--g -O3make debug- unoptimized debug buildmake debug1- debug build without parallel compilation. Useful if everything errors, and you don't want error messages of multiple threads to be written at the same time.make heapverify- verify that refcounting is done correctlymake o3n-singeli- a Singeli build, currently only for x86-64 CPUs supporting AVX2make t=some_custom_type f='-O3 -DSOME_MACRO=whatever -some_other_cc_flag' c- custom build
Macros that you may want to define are listed insrc/h.h.
Thesome_custom_typeis used as the key for caching/incremental compilation, so make sure tomake t=some_custom_type cleanif you want to change the flags without changing thet=value!!make single-(o3|o3g|debug|c)- compile everything as a single translation unit. Slower for optimized builds, but may allow some more optimizations- ... and more; see
makefile
- A specific build type can be cleaned with
make t=some_type clean - Tests can be run with
./BQN path/to/mlochbaum/BQN/test/this.bqn(add-noerrif usingmake heapverify). - Test precompiled expression:
some-other-bqn-impl ./precompiled.bqn path/to/mlochbaum/BQN "$PATH" '2+2' - Some implementation docs
License
Any file without an explicit copyright message is copyright (c) 2021 dzaima, GNU GPLv3 - see LICENSE