Feather Virtual Machine (FVM)
Project description
FVM bitcode evaluator
Feather Virtual Machine (FVM) is a bitcode-based VM in development by @wryl.
This is a simplified version of FVM that interprets ascii representations of a future bitcode.
The bitcode
This version of FVM runs ASCII representations of the bitcode.
The bytecode (or rather bitcode) is an 8-instruction virtual machine that manipulates a circular tape of bits. The tape is dynamically resizable, and > internally is ideally modeled as a deque. Instructions:
0
: Insert a0
bit to the left of the tape head.1
: Insert a1
bit to the left of the tape head.<
: Move the tape head left.>
: Move the tape head right.[
: Consume the bit under the tape head. If it's a1
, proceed forward by one instruction. If it's a0
, proceed to the next matching]
.]
: Proceed to the previous matching[
.^
: Consume and send a bit to the outside world.v
: Receive a bit from the outside world.I/O is blocking. Something needs to acknowledge the send, and execution pauses on receive until something is sent.
Running FVM
Just Python
You can use the fvm-nerfed.py
file locally.
Docker Hub
https://hub.docker.com/r/booniepepper/fvm
Packaging is performed by GitLab CI.
PyPI
Packaging is performed by GitLab CI.
As a discord bot
This docker image is the FVM runtime used for a discord bot running on the concatenative programming discord server.
As of 2024-04-18 details on the discord bot can be found here:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fvm-0.1.2.tar.gz
.
File metadata
- Download URL: fvm-0.1.2.tar.gz
- Upload date:
- Size: 2.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1eb1252742d44b9c6a1c4e61622b2c877048fe29aad53c5277af913c7fff93d8 |
|
MD5 | b0356a247ddd7bb6cd6b4b85db5356e0 |
|
BLAKE2b-256 | e7b552367bdf49866de63f18640e409824b5ef0e42ff5b03c2225e9868282c78 |
File details
Details for the file fvm-0.1.2-py2.py3-none-any.whl
.
File metadata
- Download URL: fvm-0.1.2-py2.py3-none-any.whl
- Upload date:
- Size: 3.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c90dfa7c0fc48063b3e1cf1572c0747eee854cd4095fbd59a73390565f678d22 |
|
MD5 | 9cb18e22b2c7b887f2d3601556d65a11 |
|
BLAKE2b-256 | c76d651a0c43a2a29806e9364d0f1e0ba32fe071be01127066eb256658f5afc0 |