For a long time, Brainfuck has lacked modern tooling — not anymore. blah is:
- A Brainfuck runtime
- A Brainfuck compiler (LLVM backend)
- A Brainfuck package manager
cargo install blahCreate a new project:
blah new hello
cd hello
blah run main.bfRun a brainfuck file:
blah path/to/program.bf| Command | Description |
|---|---|
blah new <name> |
Create a new project. |
blah run <file> |
Run a brainfuck file. |
blah <file> |
Same as above. |
blah build <file> |
Build native binary. |
blah install |
Install dependencies. |
name = "hello"
[features]
# use it via @pkg-name/feature-name in source code
stdout = "stdout.bf"
[dependencies]
stdlib = { git = "https://github.com/example/bf-stdlib" }
utils = { path = "../utils" }Dependencies support two sources:
- git: downloaded via git clone
- path: local path reference
Blah is a package manager.
In Brainfuck source code, use @package-name/feature-name to reference code snippets from installed packages. The behavior is like include in C.