GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - pingbird/stackvm: A curiously fast Brainfuck runtime

BranchesTags
Open more actions menu

Latest commit

 

History

83 Commits
83 Commits

Folders and files

NameName
Last commit message
Last commit date
doc
doc
 
 
samples
samples
 
 
src
src
 
 
third_party
third_party
 
 
tool
tool
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
CMakeLists.txt
CMakeLists.txt
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
config.yaml
config.yaml
 
 
main.cc
main.cc
 
 
runtime.cpp
runtime.cpp
 
 

Repository files navigation

stackvm - A brainfuck VM

Setup

Requirements:

  • CMake
  • LLVM
  • A C++ compiler

Pull in submodules:

git submodule update --init

Build:

mkdir build
cd build
cmake ..
make -j12

Usage

Usage:
    stackvm [-h] [-w <bits>] [-e <value>] [-m <size>] [-p <count>] [-q] [-d <dir>] <program>
Parameters:
    -h, --help             print this help message
    -w, --width <bits>     width of cells in bits
                           default = 8
    -e, --eof <value>      value of getchar when eof is reached
                           default = 0
    -m, --memory <size>    how much virtual memory to reserve to the left and right
                           default = 128MiB,128MiB
    -p, --profile <count>  enable profiling of build and execution
    -q, --quiet            suppress printing profiling info to the console
    -d, --dump <dir>       dumps intermediates into the specified folder

Architecture

main.cc    - Command line interface to the interpreter
runtime.cc - Linkable runtime to native code generated by backend
src/bfvm         - Public facing API
src/bf           - High level brainfuck (HBF) manipulation
src/ir           - SSA IR graph implementation and builder
src/ir_print     - Pretty printer for IR
src/lowering     - Lowers HBF into IR
src/opt_fold         - Expression fold engine
src/opt_resolve_regs - Simple SSA register pruning 
src/opt_resolve_type - Lazy type resolution 
src/opt_validate     - Graph validator
src/backend_llvm - Translates StackVM IR to LLVM IR
src/jit          - Host JIT pipeline
src/diagnostics  - DI for logging and artifact dumps
src/tape_memory  - Lazy tape memory allocator

About

A curiously fast Brainfuck runtime

Resources

Readme
BSD-3-Clause license
Activity

Stars

3 stars

Watchers

1 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.