Backends
jbark, pbark, interpreters vs compilers, licence, how to ship.
Two interpreters, one syntax
Bark source is backend-agnostic. Write .woof once. Run with Java or Python tooling from github.com/AlexH89/bark.
| Backend | Host | Role |
|---|---|---|
| jbark | Java | Reference implementation. Maven, ./bin/bark, release JAR. |
| pbark | Python | Semi-automated port of jbark. PyPI, ./pbark/bin/pbark, python -m pbark. |
What interpreter means here
- Your language (Bark) = what users write (
.wooffiles) - Java or Python = the toolbox that reads Bark and runs it
Java and Python are not Bark. They host the programs that implement Bark.
Bark uses interpreters (read and run step by step), not a compile-to-binary pipeline for end users. Small esolangs pick often interpreters because they are fast to build and easy to change. Building a compiler felt like a step too far for me right now.
Java (jbark) quick reference
| Command | Notes |
|---|---|
./bark story.woof | Release zip (Java 25+) |
./gradlew run --args="examples/woof/tutorial.woof" | Clone dev loop |
./gradlew shadowJar then ./bin/bark … | Fat JAR |
bark --strict story.woof | Warn on no-op lines |
bark --list-breeds | Dump registry |
bark --quiet story.woof | No banner |
Windows: bark.cmd, gradlew.bat.
Python (pbark) quick reference
cd pbark && pip install -e .
./bin/pbark ../examples/woof/tutorial.woof
| Command | Notes |
|---|---|
pbark story.woof | Run file |
pbark --strict story.woof | Same flags as jbark |
pytest tests/ -q | After pip install -e ".[dev]" |
Licence
AGPL-3.0. Free to use, share, and hack on. Derivatives and network services must stay open. See LICENSE and NOTICE in the repo.
Example commands
# Release or after shadowJar
./bark examples/woof/goodboy.woof
./bark examples/woof/bimba.woof
./bark examples/woof/tutorial.woof
./bark examples/woof/counter-tradition.woof
./bark examples/woof/loops.woof
# Clone (Java)
./gradlew run --args="examples/woof/bimba.woof"
# Clone (Python)
./pbark/bin/pbark examples/woof/bimba.woof
Sample programs on the examples page.
