Show HN: Making a Compiler to Prove Tmux Is Turing Complete
willhbr.net
willhbr.net
We joked that it was our very own proof that recursion and iteration are equivalent
But, now, let's go with examples from another view point:
Let's say there are different levels of support teams in an infra, and you (root) make a custom tool, so other teams can run something (and only that thing).
And that thing, has a config file. I don't want to give sudo to lua, I want to give sudo only to my tool.
It's like if we say "Don't provide the final user with a User Interface, just let them connect to the database as admin so they can do everything by themselves"
In this case, doesn't apply (sudo tmux == sudo bash).
Or another point of view:
tmux is 981K on my system, adding... lua? for the config, could increase it's size by maybe at least 30%? It's not the same to add an scripting lang to a 230GB game, than to every little tool.
Depending on context, an scripting language is ok. However, not always as a rule of thumb.
It’s the most user friendly thing you could do.
There's a big big difference to the user here, people who use tmux are power users.
> And that thing, has a config file. I don't want to give sudo to lua, I want to give sudo only to my tool.
Understandable, but tmux itself has run, which forks to /bin/sh, so what's your pick? /bin/sh and everything that entails? or a scripting language with built-in sandboxing?
> tmux is 981K on my system, adding... lua? for the config, could increase it's size by maybe at least 30%? It's not the same to add an scripting lang to a 230GB game, than to every little tool.
Binary size wise, sure, its an increase, but the resulting binary size would still be less than a hello world static binary written in go.
Also, there are more scripting languages than lua, there's jimtcl, guile and a couple of obscure ones.
[0]: https://willhbr.net/2024/01/18/the-code-config-continuum/
https://news.ycombinator.com/item?id=30189780 - Accidentally Turing-Complete (2022-02-05)
> tmux -c $DOOM