frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Makefiles, Metalanguages, Matrioshka Automata

https://robot-wranglers.github.io/compose.mk/
2•robot-wrangler•2h ago
Immediately buried last time, so reposting for your lazy Sunday.

This project is a strange labor of love, practically guaranteed to inspire horror and delight. It's also tough to summarize. Partly it's very practical and involves familiar tools, but part of it is also a new programming language with esolang roots. I'll start with the practical and move towards the peculiar.

The one-sentence summary: compose.mk brings docker-fluency, polyglots, and a capable standard library to Makefiles. A more in-depth elevator pitch from the main landing page is below, and some related links at the end in footnotes 1-5.

> Meet compose.mk, a tool / library / framework for Makefile-based automation, scripting, and lightweight orchestration. Native support for docker, docker-compose, workflow primitives, JSON IO, TUI elements, and more, all provided by a single file with no dependencies beyond what's already in your development environment. Typical use-cases include general project automation, especially decoupling your CI/CD from different kinds of platform lock-in. Other superpowers include the ability to quickly incorporate foreign tools and foreign code as first-class objects, which provides unique and powerful capabilities for quickly assembling console applications, systems prototyping, and component-oriented design experiments in general. Definitely not the Makefiles of your ancestors.

Here's where it starts to get more weird and fun. Building the ideal environment for zero-dependency automation and pesky "glue code" moves in a certain direction. So it happens that compose.mk moonlights as an interpreter / compiler / packaging tool for a new kind of programming language. CMK-lang (or just CMK) is multiparadigm with diverse influences, from functional to concatenative, ultimately specializing in things like extensibility, interoperability, DAGs, and dispatch. CMK is a superset of Makefile that can be transpiled to vanilla Makefile. And it is what is known as a matrioshka language. Paraphrasing the definition from esolangs-wiki:

> A matrioshka language is formed by bundling one or more meta-languages with one or more language descriptions. They can be identified by their program forms, which have multiple, distinct 'phases' with different syntactic and semantic rules. There are often two phases; the first gives a set of rules, and the second provides objects on which those rules are to be applied.

In CMK-lang, matrioshka "objects" are things like container-runtimes or foreign interpreters, and "rules" are DAGs in the form of tasks, task-groups, or foreign code. For those interested in matrioshkas and topics in PLT, I suggest the alternate landing pages at footnotes 6-9.

Love it or hate it, I think you'll agree that compose.mk is easily the biggest, baddest, most highly powered mutant Makefile the world has ever seen. If it helps you can think of CMK-lang as a PoC that's waiting for another back-end implementation ;) Playing around with it has convinced me though that the gap is real, and the world really needs containers-first matrioshka languages that work locally, and aren't tightly coupled to bulky remote platforms or infrastructure. It also needs languages that are capable of aggressively reusing and recombining existing code and existing tools.

[1]: https://robot-wranglers.github.io/compose.mk/standard-lib [2]: https://robot-wranglers.github.io/compose.mk/bridge [3]: https://robot-wranglers.github.io/compose.mk/container-dispa... [4]: https://robot-wranglers.github.io/compose.mk/demos/polyglots [5]: https://robot-wranglers.github.io/compose.mk/json [6]: https://robot-wranglers.github.io/compose.mk/matrioshka [7]: https://robot-wranglers.github.io/compose.mk/language [8]: https://robot-wranglers.github.io/compose.mk/compiler [9]: https://robot-wranglers.github.io/compose.mk/demos/packaging

Show HN: Built a tool solve the nightmare of chunking tables in PDF vs. Markdown

https://github.com/2dogsandanerd/smart-ingest-kit
2•2dogsanerd•15m ago•0 comments

Show HN: OhNiceRepo – Easily discover trending GitHub gems and repos

https://ohnicerepo.pages.dev
2•behnamazimi•25m ago•0 comments

Show HN: Genesis DB now provides a full gRPC API alongside HTTP

https://www.genesisdb.io/blog/posts/2025-11-23/grpc-endpoint
2•patriceckhart•1h ago•0 comments

Show HN: Forty.News – Daily news, but on a 40-year delay

https://forty.news
382•foxbarrington•1d ago•147 comments

Show HN: Makefiles, Metalanguages, Matrioshka Automata

https://robot-wranglers.github.io/compose.mk/
2•robot-wrangler•2h ago•0 comments

Show HN: Build the habit of writing meaningful commit messages

https://github.com/arpxspace/smartcommit
93•Aplikethewatch•22h ago•115 comments

Show HN: A tool to safely migrate GitHub Actions workflows to Ubuntu-slim runner

https://github.com/fchimpan/gh-slimify
65•r4mimu•1w ago•3 comments

Show HN: An OKLCH-based perceptually uniform color system/theme builder

https://colorphreak.com
5•kurainox•3h ago•1 comments

Show HN: I built a wizard to turn ideas into AI coding agent-ready specs

https://vibescaffold.dev/
61•straydusk•22h ago•33 comments

Show HN: Wealthfolio 2.0- Open source investment tracker. Now Mobile and Docker

https://wealthfolio.app/?v=2.0
658•a-fadil•2d ago•207 comments

Show HN: Curious about tones in Chinese? An extension for language learners

https://github.com/mreichhoff/ChineseLearningExtension
2•mreichhoff•2h ago•0 comments

Show HN: Dank-AI – Ship production AI agents 10x faster

https://www.dank-ai.xyz/
3•deltadarkly•13h ago•3 comments

Show HN: My hobby OS that runs Minecraft

https://astral-os.org/posts/2025/10/31/astral-minecraft.html
234•avaliosdev•5d ago•32 comments

Show HN: PolyGPT – ChatGPT, Claude, Gemini, Perplexity responses side-by-side

https://polygpt.app
22•ncvgl•1d ago•13 comments

Show HN: better-env – A Secure, Developer-Friendly Alternative to .env

https://better-env.dev/docs
6•harish3304•11h ago•2 comments

Show HN: 32V TENS device from built from scratch under $100

https://littlemountainman.github.io/2025/11/17/tens/
68•autonomydriver•6d ago•25 comments

Show HN: Search London StreetView panoramas by text

https://london.publicinsights.uk
25•dfworks•3d ago•11 comments

Show HN: Vibe Prolog

https://github.com/nlothian/Vibe-Prolog
44•nl•4d ago•9 comments

Show HN: Server Survival – Tower defense game for learning cloud architecture

https://github.com/pshenok/server-survival
6•pshenok•13h ago•2 comments

Show HN: F32 – An Extremely Small ESP32 Board

https://github.com/PegorK/f32
299•pegor•3d ago•51 comments

Show HN: I made a down detector for down detector

https://downdetectorsdowndetector.com
584•gusowen•4d ago•169 comments

Show HN: I built a synth for my daughter

https://bitsnpieces.dev/posts/a-synth-for-my-daughter/
1275•random_moonwalk•1w ago•209 comments

Show HN: HN Insights – HN front page summaries

https://hn-insights.com
8•mobrienv•22h ago•1 comments

Show HN: Eidos – AI IDE that generates and edits game prototypes instantly

https://kaausia45-jpg.itch.io/eidos-ai-prototype-ide
4•symbol_reasoner•17h ago•0 comments

Show HN: Awesome J2ME

https://github.com/hstsethi/awesome-j2me
79•catstor•3d ago•54 comments

Show HN: RowboatX – open-source Claude Code for everyday automations

https://github.com/rowboatlabs/rowboat
130•segmenta•5d ago•41 comments

Show HN: Onlymaps, a Python Micro-ORM

https://github.com/manoss96/onlymaps
4•werden-wissen•1d ago•0 comments

Show HN: ESPectre – Motion detection based on Wi-Fi spectre analysis

https://github.com/francescopace/espectre
213•francescopace•6d ago•50 comments

Show HN: A privacy-first, client-side toolbox (PDF, Imgs, Dev) no server uploads

https://linu.li
3•immineal•22h ago•0 comments

Show HN: HN Buffer – A read-it-later site for your HN favorites

https://hnbuffer.com
5•shaarmar•22h ago•0 comments