Run programs written in the Bespoke esolang.
Project description
bespokelang
Run programs written in the Bespoke esolang.
Installation
bespokelang is installable from PyPI:
pip install --upgrade bespokelang
What is Bespoke?
Bespoke is an esoteric programming language I created in January 2025, based loosely on my earlier language Poetic. The goal was to use the same encoding process as Poetic, but change the underlying structure of the language into something tolerable to write programs with.
I'm very happy with what I came up with; it's been a delight to write the included example programs, and they were much easier to write than most of the Poetic programs I've ever written.
Features of Bespoke
- Imperative paradigm
- Arbitrary precision integers
- A stack, for temporary number storage
- A "heap", for permanent number storage
- IF statements, looping, and functions!
- Comments (which weren't in Poetic, technically)
- Flexible syntax based on word lengths (e.g.
PUSH SEVENTH=tiny pythons)
Documentation
Documentation can be found on the GitHub wiki for this project. A tutorial on how to use each feature of the language is also on the wiki.
Changelog
v1.2.1 (2025-02-02)
- Fixed behavior of
CONTROL BandCONTROL RETURNwhen not nested - The output buffer is now flushed every 0.5 seconds
v1.2.0 (2025-01-31)
- Added
--debugoption to CLI, for displaying stack/heap contents after program execution - Added
BespokeInterpreter.from_file()method - Fixed bug where
Specifier was expected, but none foundwould not show the command which expected a specifier - Fixed behavior of
STACKTOP POWwith a second argument of 0 BespokeInterpreterno longer writes error message to STDERR when used as a context manager- Many properties of
BespokeInterpreterobjects are now private, or have getters/setters - CLI now handles file-opening errors
v1.1.0 (2025-01-17)
- Changed
CONTROL RESETLOOPtoCONTROL OTHERWISE
v1.0.2 (2025-01-15)
- Fixed error on empty program
- Fixed behavior of
CONTINUEDnumbers
v1.0.1 (2025-01-15)
- Fixed behavior of
DO ROTandDO ROTINVERSEwith negative numbers
v1.0.0 (2025-01-13)
Initial release.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bespokelang-1.2.1.tar.gz.
File metadata
- Download URL: bespokelang-1.2.1.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70f26749d487d724093e4780bebe0883fffa5b2ab7e215243f89909da453ed15
|
|
| MD5 |
cf8eca9a4915e875e79dc522c4ef6f53
|
|
| BLAKE2b-256 |
13267ba803f1f79c716213849830297442dd73b15af817acb98b9459031123a7
|
Provenance
The following attestation bundles were made for bespokelang-1.2.1.tar.gz:
Publisher:
python-publish.yml on WinslowJosiah/bespokelang
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bespokelang-1.2.1.tar.gz -
Subject digest:
70f26749d487d724093e4780bebe0883fffa5b2ab7e215243f89909da453ed15 - Sigstore transparency entry: 167983238
- Sigstore integration time:
-
Permalink:
WinslowJosiah/bespokelang@29d734c825e16e490fb8904e7bea78a8824df760 -
Branch / Tag:
refs/tags/v1.2.1 - Owner: https://github.com/WinslowJosiah
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@29d734c825e16e490fb8904e7bea78a8824df760 -
Trigger Event:
release
-
Statement type:
File details
Details for the file bespokelang-1.2.1-py3-none-any.whl.
File metadata
- Download URL: bespokelang-1.2.1-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ed6d201c2a806e583310ff2403d80e98122170607bd32eea0bbd936cb8fcbd0
|
|
| MD5 |
fc7c383c5f080f461ff2e9739dbe04ba
|
|
| BLAKE2b-256 |
35f0a7bdb206538510b46bf2d007ad771d6ccf1659d957f3c6b9c6a11b31cdb1
|
Provenance
The following attestation bundles were made for bespokelang-1.2.1-py3-none-any.whl:
Publisher:
python-publish.yml on WinslowJosiah/bespokelang
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bespokelang-1.2.1-py3-none-any.whl -
Subject digest:
8ed6d201c2a806e583310ff2403d80e98122170607bd32eea0bbd936cb8fcbd0 - Sigstore transparency entry: 167983241
- Sigstore integration time:
-
Permalink:
WinslowJosiah/bespokelang@29d734c825e16e490fb8904e7bea78a8824df760 -
Branch / Tag:
refs/tags/v1.2.1 - Owner: https://github.com/WinslowJosiah
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@29d734c825e16e490fb8904e7bea78a8824df760 -
Trigger Event:
release
-
Statement type: