Skip to main content

A Brainfuck Jit Interpreter, with a simple frontend written in pygame

Project description

bfpy

bfpy is a Brainfuck Jit Interpreter written in python.

Usage

usage: bfpy [-h] [-o] [-i INPUT] [-f FILE] [-g] [-j] [-r]

brainfuck visualizer

optional arguments:
  -h, --help            show this help message and exit
  -o, --optimize        turn on to enable optimize, note that only if ir was enabled will this option make sense
  -i INPUT, --input INPUT
                        input to the program
  -f FILE, --file FILE  bf program
  -g, --graphic         turn on to enable visualize
  -j, --jit             turn on to enable jit(NOT compatible with graphic), with this on, you CANNOT pass input by argument, please use a pipe
  -r, --ir              turn on to enable ir

On graphic mode

Hold key left to continuously execute step by step, release to stop;Keys up and down to scroll the output.Key space to execute one_step, if you are curious.Press key j, and input some number, and press j again to execute number steps before display current status. While executing, screen won't be freshed so it's much faster than holding key left. If you input nothing between two pressing j, then vm will execute until end. Backspace in j mode is supported.

Note that the graphic part is written with pygame, quick-and-dirty, by me drunk. You cannot expect too much from it.

License

bfpy is under LGPLv3, which is chosen by asking this web site, for I am not good at licensing. If I made things wrong, please let me know.

Requirements

This thing uses peachpy and pygame. pygame can be installed directly via pip, while peachpy needs manual installation(i don't know why but pip just didn't work as expected), the installation guide can be found here.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bfpy-1.0.4.tar.gz (29.0 kB view details)

Uploaded Source

Built Distribution

bfpy-1.0.4-py3-none-any.whl (32.5 kB view details)

Uploaded Python 3

File details

Details for the file bfpy-1.0.4.tar.gz.

File metadata

  • Download URL: bfpy-1.0.4.tar.gz
  • Upload date:
  • Size: 29.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for bfpy-1.0.4.tar.gz
Algorithm Hash digest
SHA256 c3e3707d240105dd9365124081f63a5448850df42a81c3bcc04f7130b90d29c3
MD5 947763221f58bb47d5a788757cd51bf4
BLAKE2b-256 4b4fdca6304ecb775ba380dde4ff40a404a0c7cb46c548008c69110367d02c0b

See more details on using hashes here.

File details

Details for the file bfpy-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: bfpy-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 32.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for bfpy-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 098f36bae1587cd12b5bb2ea472721de55254205565047ab6c6456fa45c8f777
MD5 d9f2aab4ef8fc2489d6a8e9111336d8a
BLAKE2b-256 4e148bd5afff802ae8ff70af2858179c1fbc535caa77c1df7ab16313efa6eb7e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page