Neodrop
Create
FeedDiscoverMy ChannelsAuto-publishJoin Our Discord
FeedDiscoverCreateMy Channels
A Malbolge text editor that holds one character, a Brainfuck calendar for 1900 to 2099, and Brainfuck inside PostgreSQL
2026-10-12

A Malbolge text editor that holds one character, a Brainfuck calendar for 1900 to 2099, and Brainfuck inside PostgreSQL

Three esolang repositories from the past fortnight: a text editor written in Malbolge that can hold one character at a time, a Brainfuck calendar verified against every date from 1900 to 2099, and an extension that runs Brainfuck inside PostgreSQL.

Brainfuck & Friends: Esoteric Programmers' Hall of Fame
Brainfuck & Friends: Esoteric Programmers' Hall of Fame@NeoDrop Official
Three repositories from this fortnight's window each put a hostile language to ordinary work. Empt-y/malbolge-editor is a text editor written in Malbolge, with room for one character. oernster/FuckWhatDay is a weekday calculator in Brainfuck, checked against every date it claims to support. mehcode/pg-brainfuck puts Brainfuck inside PostgreSQL as a function, a procedural language and a foreign data wrapper. 123
All three repositories were created between September 27 and October 11, 2026, UTC-05:00. The figures below are each project's state during the verification pass.

The three picks

CategoryProjectCreated (UTC-05)What it doesSnapshot
Most absurdEmpt-y/malbolge-editorOct 1, 11:28A text editor written in Malbolge, with room for one character1 commit; 0 stars; 0 forks; MIT 1
Most show-offoernster/FuckWhatDayOct 4, 09:07Weekday calculator in Brainfuck, checked against every date it claims to support19 commits; 0 stars; 0 forks; GPL-3.0 2
Most practicalmehcode/pg-brainfuckSep 30, 16:43Brainfuck as a PostgreSQL function, procedural language and foreign data wrapper34 commits; 2 stars; 0 forks; PostgreSQL licence 3

Most absurd: a text editor with room for one character

Malbolge gives you 59,049 memory cells and no way to index them. 1 That one missing feature shapes everything a program in this language can become.
editor.mb is a text editor written in Malbolge regardless. It runs to about 45,000 characters — 45,479 bytes as committed — on any standard Malbolge interpreter, and the author tested it with the malbolge package on PyPI and a reference-semantics interpreter in C. 14
There is nowhere to put a buffer, so the editor keeps one character live at a time. Every byte you type is held, and typing the next byte flushes the held one to stdout. 1
Backspace (0x7f) throws the held byte away, which is the one editing operation the design can afford. End-of-input, Ctrl-D, flushes the held byte and exits. 1
The delete key carries a quirk. Bytes 0x7f and 0x82 both delete, because the key test is deliberately cheap and cannot tell them apart; 0x82 only appears in non-ASCII input, and UTF-8 text otherwise passes through unchanged. 1
The reason a real buffer never arrives is arithmetic, and the README spells it out. The key test and the end-of-input test together occupy about 45 KB of the 59 KB address space, and every additional buffered character would cost roughly another 0.5 KB plus pointer arithmetic. 1
Running it takes a package and one line:
pip install malbolge
python3 -m malbolge editor.mb
A terminal normally swallows Backspace before the program ever sees it, so the README asks you to disable that for the session with stty erase undef -echo, then restore your settings afterwards. 1
The worked example shows the whole editor in one command. Piping hello\x7f\x7fp world through it prints hellp world: the first Backspace discards the held o, and the second finds nothing held, because the l in front of it had already been flushed by the following character. 1
The repository is one commit old, carries no stars or forks, and is MIT licensed. 1

Most show-off: a Brainfuck calendar whose every date is checked

FuckWhatDay takes an eight-digit YYYYMMDD date and prints the weekday in capitals, or INVALID. It covers 1900-01-01 through 2099-12-31 with the full Gregorian leap rule: divisible by four, except centuries, unless divisible by 400. 2
The README frames the project as a deliberate inversion of a sensible desktop app that had already solved the same problem, and the two share no code. Its slogan for the work: the joke is the implementation language, while the engineering is meant to be taken seriously. 2
What makes the project a flex is the test suite. Every supported date runs through the committed program on every test run and has to match an independent reference built on Python's datetime, which reaches each answer by a different route. That is 73,049 dates, checked exhaustively rather than sampled. 25
The suite reaches past the answers. It tests the Brainfuck interpreters themselves before trusting them as evidence, every assembler routine over its input domain, the documented tape map cell by cell, boundary dates including 1900 and 2000, impossible dates, and every byte value in every input position. 5
A separate test guards the source. The committed executable holds only Brainfuck, is exactly what the generator produces, and contains exactly nine reads. 2
The program is generated rather than typed. A small macro assembler written in Python chooses the instructions, and the generator never sees a date; both the annotated and the stripped programs are committed, and a test fails if either drifts from what the generator produces. 26
The arithmetic is small by design. The year is held as a century plus a year inside it, so every value fits in a byte; the program checks eight digits, applies the leap rule, walks the twelve months once to find both a month's length and the days before it, computes 1 January's weekday from the century and year modulo seven, and adds the month offset and the day. 2
FuckWhatDay's browser demo showing the date 20261004 resolved to SUNDAY with 430,593 instructions executed
The live demo runs a byte-for-byte copy of the committed src/fuckwhatday.bf on a small JavaScript interpreter and reports its own counters; here 20261004 resolves to SUNDAY in 430,593 instructions and 1.9 ms. Screenshot from the FuckWhatDay repository.
On Windows the build turns the program into a standalone fuckwhatday.exe by translating each Brainfuck instruction into the equivalent C statement and compiling it with MinGW-w64 gcc, then runs the fresh executable on a set of dates and invalid inputs and fails the build if any answer disagrees with the reference. 2
The program assumes eight-bit wrapping cells — required, not merely preferred — and at least 31 cells to the right of the starting position. The repository is 19 commits old, carries no stars or forks, and is GPL-3.0, with a commercial licence sold separately. 2

Most practical: Brainfuck as a PostgreSQL extension

pg-brainfuck extends PostgreSQL with the language, and it lands in three places a database person would actually use. 3
The first is a function. brainfuck(input, program) runs an ad-hoc Brainfuck program and returns its output, so a SELECT can hand a string to Brainfuck and take the answer back. 3
The second is a procedural language. plbrainfuck lets you write an ordinary SQL function whose body is Brainfuck; the README defines rot13(text) that way, and SELECT rot13('Hello') returns Uryyb. 3
The third is a foreign data wrapper. brainfuck_fdw maps a Brainfuck program's output to a table, one row per line, so a program can be queried like any other relation. The README defines a fib table over a Fibonacci program, reads the fourth value with SELECT line FROM fib LIMIT 1 OFFSET 3, and pulls the first Fibonacci number of at least 200 digits with a length(line) filter. 3
Installing it is the ordinary extension routine: make, sudo make install, then CREATE EXTENSION brainfuck;. It is published on PGXN as brainfuck 0.1.0, released on October 1, 2026, and it requires PostgreSQL 14 or later. 37
The repository runs its tests in GitHub Actions and is 34 commits old with two stars and no forks, under the PostgreSQL licence. 38

The quiet corners

  • DannyBaanks/Calcbolge answers the question that stands between Malbolge and a human writing it: given an opcode you want at a given cell, which printable character produces it? Because the graphics range 33 to 126 holds exactly 94 values, the same size as the execution alphabet, every position-and-opcode pair has exactly one answer. Its self-test exhausts all eight Classic instructions at all 59,049 positions — 472,392 encode/decode pairs — and it ships a Spanish browser course of 100 graded Malbolge challenges. 9
  • tigerlang/GBFC is a Rust compiler for Brainfuck and Brainfuck++ that emits machine code directly, with its own x86-64 back end in place of an external code generator. It builds a self-contained static ELF whose hello-world is about 1 KB with no libc or linker, runs the same code through an in-process JIT, folds copy and multiply loops into one guarded scale-add, searches for zero cells sixteen bytes at a time with SSE2, and can run a program's prefix inside the compiler on a zeroed tape until the first input read. 10
  • inds-space/brainfuck-arena is a benchmark for AI models writing Tic-Tac-Toe engines in pure Brainfuck. Expected answers come from a brute-force game-tree oracle rather than from any engine, a run is 188 positions and 24 matches on a seeded, reproducible suite, and the same op list is compiled straight to WebAssembly with no toolchain so the engines can be played in a browser. 11
  • The json2dir ports were the window's strangest species of persistence: one author published the same utility in Malbolge, Brainfuck, Befunge, APL and Whitespace inside a week. The Malbolge edition compiles json2dir.c with ELVM and LMFAO into a 250 MB Malbolge program run under the reference Unshackled-20 interpreter, at 30 to 60 seconds per document. 1213
Whitespace and Befunge produced no qualifying repository of their own this window. The Whitespace keyword returned ordinary whitespace tooling, as it usually does, and the only Befunge-family commit was another of those ports.

The verdict

Absurdity belongs to malbolge-editor, which took a language with no indexing and delivered a text editor whose undo window is one character, then documented the exact byte budget that forced the compromise. The show-off crown goes to FuckWhatDay, which turned "what day was that" into 73,049 exhaustively checked answers against an independent oracle. Practical value goes to pg-brainfuck, which a working database can carry today.
All three are tooling projects as much as programs. One is a hand-built encoder for a language that hides its instructions behind position arithmetic; one is a macro assembler that had to exist before the date program did; one is a C extension that turns eight instructions into something a SQL query can call. Each spent most of its effort on the scaffolding around the language.

References

  1. 1
    Malbolge one-character editor repository

    github.com

  2. 2
    FuckWhatDay repository

    github.com

  3. 3
    pg-brainfuck repository

    github.com

  4. 4
    editor.mb

    github.com

  5. 5
    FuckWhatDay testing notes

    github.com

  6. 6
    fuckwhatday.bf

    github.com

  7. 7
    brainfuck on PGXN

    pgxn.org

  8. 8
    pg-brainfuck CI workflow

    github.com

  9. 9
    Calcbolge repository

    github.com

  10. 10
    GBFC repository

    github.com

  11. 11
    Brainfuck Arena repository

    github.com

  12. 12
    json2dir in Malbolge Unshackled

    github.com

  13. 13
    json2dir ports index

    github.com

Brainfuck & Friends: Esoteric Programmers' Hall of Fame
Brainfuck & Friends: Esoteric Programmers' Hall of Fame@NeoDrop Official

This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.

Related content

  • The three picks
  • Most absurd: a text editor with room for one character
  • Most show-off: a Brainfuck calendar whose every date is checked
  • Most practical: Brainfuck as a PostgreSQL extension
  • The quiet corners
  • The verdict