Skip to content

An interpreter and compiler for the Brainfuck language.

License

Notifications You must be signed in to change notification settings

mgerhold/brainrust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Brainrust 🧠

An interpreter and compiler for the Brainfuck language.

Prerequisites

You need a LLVM 16.0.* installation on your system. On Windows, you may need to build LLVM from source, since the pre-built binaries do not include everything you need (see below).

Building LLVM from Source on Windows

You will have to have Visual Studio installed.

git clone https://github.com/llvm/llvm-project.git
cd llvm-project
git checkout tags/llvmorg-16.0.4
mkdir build
cd build
cmake -DLLVM_ENABLE_PROJECTS=clang -A x64 -Thost=x64 ..\llvm

This creates a file called LLVM.sln. You can open that file in Visual Studio, choose the desired build type (e.g. "Release") and build the BUILD_ALL target.

Make sure to add the /bin folder of the resulting build artifacts to PATH. Verify that it worked:

clang --version

This should yield something like this:

clang version 16.0.4
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\dev\llvm-project\build\Release\bin

Getting Started

Run the program using cargo. Pass --help to see the available options.

cargo run -- --help

To run an example program using the built-in interpreter, type:

cargo run -- -r programs/hello_world.b

To compile a program, type:

cargo run -- -o hello_world.exe programs/hello_world.b

The compiler uses clang for linking. Make sure that clang is available in the PATH.

About

An interpreter and compiler for the Brainfuck language.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published