Skip to main content

About

This python module “backrooms” is an Esolang.

Backrooms is inspired by:
  • Backrooms Creepypasta/MEME

  • ASCIIDOTS Esolang

  • CISC Architecture

Backrooms is designed to be:
  • Hackable VIA memory overflow attacks and poor error handling.

  • Visually pleasing.

  • Enjoyable to write small/medium programs.

  • Capable of rewriting all of a program at run-time.

Hello World

hello_world.brs

~GATE
/rs"Hello World!"e~ha

Python Installation

pip install backrooms

Console Interface

backrooms hello_world.brs
backrooms

positional arguments:
  file                  path to main file

optional arguments:
  -h, --help            show this help message and exit
  -a, --author          get author of backrooms
  -b, --builtins        don't include built-in libraries
  -c, --core_dump       enables CoreDump rule "?"
  -e, --error-on-space  errors if portal lands on a space
  -p, --profile         profiles backrooms
  -s, --system-out      don't write to stdio
  -v, --version         get version of backrooms
  --lost-count LOST_COUNT
                        set lost count
  --lost-rule-count LOST_RULE_COUNT
                        set lost rule count
  --profile_range PROFILE_RANGE
  --whisper WHISPER     set the log level [notset, debug, info, warning, error, critical]

Documentation

Bottles

bottles.brs

~GATE
/ri10ibri99>ers" bottles of beer on the wall, "epers" bottles of beer."epzez-V
/V".llaw eht no reeb fo selttob "srepe" ,dnuora ti ssap dna nwod eno ekaT"sr.<
/e>e~ha    1 >rs"1 bottle of beer on the wall, 1 bottle of beer."epers"Take one"epV
/pp        p pVe".llaw eht no reeb fo selttob erom on ,dnuora ti ssap dna nwod "sr<
/ze        . p>peers"No more bottles of beer on the wall, no more bottles of beer"V
/>...eezd-N^.^                                                                    e
/ ^".llaw eht no reeb fo selttob 99 ,erom emos yub dna erots eht ot oG"srepe"."srp<

Turing

turing.brs

~GATE
/cicOvZVpri1V
/    p >.e>NV~ha
/    >ri1e^e<

Fibonacci

fibonacci.brs

~GATE
/V         ah~<
/>ri0>dri18isZ^pdrs"FIB"V
/    ^+pe" "srpech......<
~FIB
/>ZVdri3isLVpd-rs"FIB"hcz--rs"FIB"hciahr
/rh<rh1irpp<

Tic Tac Toe

tic_tac_toe.brs

~GATE
/>ri0>...+dri10isNVpprs"x"k0pri10ibrs"Tic Tac Toe!"epepri0V
/.   .            p           a                    >p+....>dri9isNVpprs"E_BOARD"hcrs"Cats!"ep...V
/.   .            d           h   >..rs"C_BOARD"hcZ^rs"E_BOARD"hceprs" won!"epri10ibeppVpebi01ir<
/.   ^..hujbz"k"sr<           ~   ^................huch"DRAOB_U"sr<                    .
/^...........................p^Zeb"a"srcpe+ >>+srpebi01irpe+!niaga yalp ot "a" retnE+sr<
# Echo board
~E_BOARD
/>ri10ibrs"#"s1epes2epes3epzezeeeeezezs4epes5epes6epzezeeeeezezs7epes8epes9eppephr
# Update board
~U_BOARD
/>rs"rs+"s0bjrs"+k"bjV                      >pbjrs"prs+"bjs0rs"x"beZVprs"o">bjrs"+k0p">bjhr
/  Vpe0sch"DRAOB_E"sr<.pebi01irpe"RORRE"srpp^Nib"123456789"sr<      >prs"x"^
/  >rs": "epcdri10ibeprs"1~2~3~4~5~6~7~8~9"biZVpdrs"s"zbjuh..^
/                    ^....ebi01irpe"RORRE"srpp<
# Check for winner
~C_BOARD
/V                         >ppzphr
/>s5ds1beNVpd.....V    >beN^ppp..V                  >ppzphr
/         >pds9beZVphr ^oupp<    3            V..ppp^Neb<
/                 >pds3beNVpd.....V           .    >ppuo^
/                         >pds7beZVphr  V+....<pppp^Nebou..hujbz"s"srai3ir<
/                           2     >ppri0>dri3isNVpprs""hr                 z
/         >rs"s"zbjuh..uobeN^pppp>d+....drs"s"z1pbjuh..zri3iadrs"s"zbjuh..^
/         ^+z..hujbz"s"srd+z..hujbz"s"srd+mi3ird<

Build Executable

git clone https://github.com/cmcmarrow/backrooms.git
pip install -e .[dev]
python build.py

API

backrooms_api.py

from backrooms.backrooms import backrooms_api, StringHandler


main_brs = """
~GATE
/rs"Hello World"e~ha
"""

main_handler = StringHandler("main", main_brs)
backrooms_api(main_handler)()
info: An API to backrooms.
:param code: Union[str, Handler, Handlers]
    str: Will treat str as main file and load its dir.
    Handler: Will load just the single Handler.
    Handlers: Will load the Handlers.
:param inputs: Optional[Union[Tuple[str, ...], List[str]]]
:param feeder: bool
:param sys_output: bool
:param catch_output: bool
:param lost_count: int
:param lost_rule_count: int
:param error_on_space: bool
:param error_on_no_rule: bool
:param br_builtins: bool
    Only adds builtins if code is str or Handler.
:param core_dump: bool
:param yields: bool
:param rules: Optional[Union[Tuple[Type[Rule], ...], List[Type[Rule]]]]
:param whisper_level: str
:return: Portal

Release files for backrooms 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for backrooms 1.0.1
File Size Uploaded
backrooms-1.0.1.tar.gz 29.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for backrooms 1.0.1
File Interpreter ABI Platform
backrooms-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 66.7 kB

Release files / backrooms-1.0.1.tar.gz

Download URL backrooms-1.0.1.tar.gz
Size 29.7 kB
Tags Source
SHA-256 checksum
How to use checksums
ec1a73e6631bfa264a2ba141fc3fd922d2e277298a1e01daabdae0834860653c
BLAKE2b-256 checksum
How to use checksums
17073867914542f34bb3e07fcdbce48480df0b1fe9c5b59ae242eb0acdf82c2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

Release files / backrooms-1.0.1-py3-none-any.whl

Download URL backrooms-1.0.1-py3-none-any.whl
Size 37.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c80db6cd64e3fbddb928b881b53cec661e96702e7f2ba1a0b1c61f9f4c78d6d0
BLAKE2b-256 checksum
How to use checksums
a2923f2ffe4d28dd044c1699098e182b2584ab70d72790512b68da654f894c71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

0.4.0

2 release files

0.3.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page