Skip to main content

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.6 (2025-09-05)

  • Make DO ROT/DO ROTINVERSE with negative numbers behave as documented

v1.2.5 (2025-02-16)

  • Fixed bug where Undefined function would not show the function which was undefined
  • Improved auto-flushing of output buffer

v1.2.4 (2025-02-06)

  • Program is now assumed to be in UTF-8

v1.2.3 (2025-02-03)

  • Fixed behavior of DO ROTINVERSE with an argument outside the range from 1 to the stack size

v1.2.2 (2025-02-03)

  • Fixed behavior of DO TURNOVERN with an argument of 0

v1.2.1 (2025-02-02)

  • Fixed behavior of CONTROL B and CONTROL RETURN when not nested
  • The output buffer is now flushed every 0.5 seconds

v1.2.0 (2025-01-31)

  • 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

v1.1.0 (2025-01-17)

  • Changed CONTROL RESETLOOP to CONTROL OTHERWISE

v1.0.2 (2025-01-15)

  • Fixed error on empty program
  • Fixed behavior of CONTINUED numbers

v1.0.1 (2025-01-15)

  • Fixed behavior of DO ROT and DO ROTINVERSE with negative numbers

v1.0.0 (2025-01-13)

Initial release.

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

bespokelang-1.2.6.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bespokelang-1.2.6-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file bespokelang-1.2.6.tar.gz.

File metadata

  • Download URL: bespokelang-1.2.6.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for bespokelang-1.2.6.tar.gz
Algorithm Hash digest
SHA256 72204b4459584ad928a975ba44624ce708197ff2278582c5bf76ee1e989b3b88
MD5 4b0d524727791f73693542015e57b6c8
BLAKE2b-256 be0603638dd1985f30430814f1766545f967adb490022eb14f3162659ac07e5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for bespokelang-1.2.6.tar.gz:

Publisher: python-publish.yml on WinslowJosiah/bespokelang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bespokelang-1.2.6-py3-none-any.whl.

File metadata

  • Download URL: bespokelang-1.2.6-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for bespokelang-1.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 27a21b1c313237b7e595e155c1e7307dea5e23b298e865c59edf1716f86fcc16
MD5 04c40cee77bd216f611e58beb8032174
BLAKE2b-256 f6d3d492c50b64d7bede340487c42cb32a7594e0717cee952c4bb0d7e5daea51

See more details on using hashes here.

Provenance

The following attestation bundles were made for bespokelang-1.2.6-py3-none-any.whl:

Publisher: python-publish.yml on WinslowJosiah/bespokelang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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