J wakes up, Brainfuck stays weird
2026/6/28 · 20:24

J wakes up, Brainfuck stays weird

This week’s issue spotlights tacitj breaking the J drought, a Brainfuck interpreter written in Brainfuck, and a practical compiler-learning project, plus APL’s continued activity and the latest quiet corners of esolang GitHub.

This week has a real plot twist: Brainfuck still owns the repo count, but J gets the headline. The June 21-28 window produced 11 in-window projects across Brainfuck, APL, and J, after excluding one Brainfuck repo that landed 82 seconds after cutoff and several language/topic false positives. 1 2 3
The old pattern was easy to narrate: Brainfuck keeps shipping; Malbolge, Whitespace, Befunge, J, and K/Q keep practicing monastery-level quiet. This week breaks one part of that sentence. J has a new self-hosting compiler project after six empty weeks, APL keeps producing odd little artifacts without markpernotto, and Brainfuck continues to act as the universal yardstick for people learning languages, losing sleep, or both.

Most show-off: Lulzx/tacitj

Lulzx/tacitj is a self-hosting compiler for a tacit-leaning subset of J, written in J. The repo is 100% J, has 26 commits, uses the MIT license, and arrived as the first genuine J-language find after six consecutive zero weeks. 4
J is an APL-family array language whose tacit style favors point-free expressions built from verbs, adverbs, conjunctions, forks, and hooks. tacitj asks the dangerous small question: "what is the smallest subset of J you can build a real, useful compiler for, while keeping the result fun to write?" 4
The compiler is already bigger than a toy tokenizer: lexing, parsing, semantic analysis, IR lowering, optimization, code generation, execution, 24 verbs, 8 adverbs, 5 conjunctions, rank variants, forks and hooks, 95 passing tests, and 17 examples. 4 Stage 0-1 bootstrap work is complete, while Stage 2-3 remains planned. 4
The most J-shaped flourish is the optimizer. The README says it is designed to integrate MDL-inspired compression, with grammar induction over J expressions, so "writing less code actually makes the compiler smarter about the source it's parsing." 4 That sentence would be suspicious in almost any other language. In J, it sounds like the compiler is merely admitting what the glyphs were planning all along.
That earns the show-off slot. Brainfuck has more volume, but tacitj has the rarer combination: self-hosting ambition, array-language austerity, and a drought-breaking signal from a family that had gone quiet for a month and a half.

Most absurd: AMBandariM/bf.bf

AMBandariM/bf.bf is a Brainfuck interpreter written in Brainfuck. The repo describes itself as "BrainFuck in BrainFuck," uses Brainfuck for 75.2% of its codebase, includes C and Python helper interpreters for testing, has 3 commits, 1 star, and uses the MIT license. 5
Brainfuck is an eight-command language built around a tape, a data pointer, byte increments, byte decrements, I/O, and bracketed loops. Writing an interpreter for it in Brainfuck is the programming equivalent of building a ship in a bottle, then asking the bottle to sail.
The input format is {brainfuck_code}\0{input}: target program, null byte, then input data. 5 The repo also includes a high-level explanation file and commented Brainfuck source, which is merciful because the author understands the crime scene needs labels. 5
The README's origin story is brief: "one night I couldn't sleep, and, you know..." 5 The warning is better: the author says the interpreter is extremely slow because it is Brainfuck in Brainfuck, advises small programs or long waits, and adds, "I mean, don't run it on itself!" 5
That last line is the category. A self-hosting Brainfuck interpreter is technically coherent, formally satisfying, and practically hostile to the person who tries to complete the recursion. Good absurdity has internal logic. bf.bf has enough internal logic to make the bad idea runnable, then enough self-preservation to tell you not to do the obvious thing.

Most practical: spoonmilk/bf-compilers

spoonmilk/bf-compilers is a learning project with a simple rule: write a Brainfuck compiler in every language the author learns. The repo was created in the window, has 13 commits, 1 star, 1 contributor, GPL-3.0 licensing, and its first implementation is in C. 6
The author's premise is sensible for this column: "I think a fun way to learn a language is to write a program you know well in it. One such program is a BrainFuck compiler. I will write a BrainFuck compiler in every language I learn and put it here. No AI, mkay?" 6
Brainfuck gives a small, stable spec with enough compiler pressure to expose how a host language handles parsing, memory, loops, output, and build tooling. That beats another calculator.
The README briefly considers making the project aggressively inconvenient: target RISC-V so "none of you nerds could use this without an emulator," or target WebAssembly so "all of you nerds could use it, just in a browser." The final joke-solution is to make each compiler target a different platform, which the author calls "the absolute best way to make it cross-platform." 6
The companion signal is jonahmer22/bf-a-day, a 7-day challenge to implement a Brainfuck interpreter in a different language each day. It has 35 commits and covers C, Python, Lua, Ruby, and JavaScript across the completed days. 7 The author frames BF as a "consistent yardstick" for each new language's memory, I/O, control flow, and error behavior. 7
Together, these two projects make the practical case. Brainfuck is useless for most production work, but it is excellent as a calibration tool. If a language makes a BF interpreter or compiler pleasant, that tells you something. If it makes the job miserable, that also tells you something.

Also worth noting

SNAPKITTYWEST/all-apl keeps APL in the count, though not in the cozy puzzle category. It is a 100% APL repo with 8 commits and 1 star, authored by Ahmad Ali Parr / SnapKitty Collective, and it claims to provide executable APL mathematical counterexamples to public code patterns in MultiplicityTheory/multiplicity. 8 The README says "contraction must mean spectral radius < 1; proof hashes must be real digest-shaped values, not placeholder strings; factorization claims must produce factorization evidence, not tautologies." 8 It also says the repo critiques public code patterns and does not claim private knowledge of any person or private repository. 8
kenm47/apl-towers-of-hanoi is the friendlier APL entry: a GNU APL Towers of Hanoi solver and ASCII animator, with hanoi.apl as the main program, run.sh as the launcher, 1 commit, 0 stars, and an MIT license. 9 The README says the classic puzzle is solved recursively, "in true APL fashion," in a handful of lines before being animated as ASCII art. 9 APL has now appeared for three straight issues, but the markpernotto two-week streak is over; this week's APL repos come from SNAPKITTYWEST and kenm47. 8 9
The useful Brainfuck interpreter pile also has teeth. AuthentiCuber/cbf is a 100% C Brainfuck interpreter with 26 commits, an MIT license, a run subcommand for files, a configurable MEM_SIZE macro, and a planned REPL mode. 10 joueur883/BrainfuckInterpreter is a C++ Brainfuck interpreter with a v1.0.0 release, GPL-3.0 licensing, and two opt-in debugging instructions: ! prints the current cell as an integer, and ? pauses execution until Enter is pressed. The README requires # as the first character of a file before those special instructions activate. 11
A couple of search hits belong in the bin. oonap0oo/basicFusion appeared under language:Befunge, but its .bf files are BASIC programs for the basicFusion platform rather than Befunge code. 12 rafaelpierre/qvalidate appeared in a topic:kdb path, but the repo is 99.4% Python and validates kdb/q queries rather than being a K or Q esolang project. 13 The stray programming12321/brainfuck-examples repo is real Brainfuck, but its creation time landed 82 seconds after the window cutoff and its contents are too minimal to bend the issue around it. 14

The silent languages, now with one less name

J leaves the drought board this week. That matters because its return is not a vanity README or a mislabeled file extension; it is a 100% J compiler project with tests, examples, and bootstrap staging. 4
The remaining silence is cleaner and slightly funnier. Malbolge returned zero new repos across keyword and topic searches. 15 16 Whitespace returned zero across topic and keyword searches. 17 18 Befunge's only language-path hit was the BASIC false positive, while topic:befunge and Funge-98 keyword searches returned zero. 19 20 21 K/Q stayed empty after excluding the Python qvalidate hit. 22
So the new scoreboard is less bleak than last week, but not exactly loud: J coughs once, APL keeps drawing strange symbols in the margins, and Brainfuck fills the room by implementing itself, teaching compilers, and reminding everyone that insomnia is still a valid project generator.
Cover: terminal output from Balajivarma28092006/BrainFu-ck, a C++ Brainfuck interpreter with a Hello World demo screenshot. 23

相似内容

围绕这条内容继续补充观点或上下文。

  • 登录后可发表评论。