Run programs written in the Bespoke esolang.
bespokelang
is installable from PyPI:
pip install --upgrade bespokelang
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.
- 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 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.
- Make
DO ROT
/DO ROTINVERSE
with negative numbers behave as documented
- Fixed bug where
Undefined function
would not show the function which was undefined - Improved auto-flushing of output buffer
- Program is now assumed to be in UTF-8
- Fixed behavior of
DO ROTINVERSE
with an argument outside the range from 1 to the stack size
- Fixed behavior of
DO TURNOVERN
with an argument of 0
- Fixed behavior of
CONTROL B
andCONTROL RETURN
when not nested - The output buffer is now flushed every 0.5 seconds
- Added
--debug
option to CLI, for displaying stack/heap contents after program execution - Added
BespokeInterpreter.from_file()
method - Fixed bug where
Specifier was expected, but none found
would not show the command which expected a specifier - Fixed behavior of
STACKTOP POW
with a second argument of 0 BespokeInterpreter
no longer writes error message to STDERR when used as a context manager- Many properties of
BespokeInterpreter
objects are now private, or have getters/setters - CLI now handles file-opening errors
- Changed
CONTROL RESETLOOP
toCONTROL OTHERWISE
- Fixed error on empty program
- Fixed behavior of
CONTINUED
numbers
- Fixed behavior of
DO ROT
andDO ROTINVERSE
with negative numbers
Initial release.