5 ms·
Redbean and Cosmopolitan is like magical alien technology that unites all computing on earth! Now we have a visual debugging method, good work kind ladies & gen
by AMICABoard 4y ago
Redbean and Cosmopolitan is like magical alien technology that unites all computing on earth! Now we have a visual debugging method, good work kind ladies & gentleman!
The team is like nuts aliens and I admire their brains.
- giraffe_lady 4y agoI love redbean and am actively using it on a project, completely in awe. BUT I'm a little put off by the claims that it is so universal when it doesn't support arm. This would have been a reasonable claim even a few years ago but specifically because of m1 macs arm is becoming much more common. It also prevents it from being used in one of the situations where you would most want a high performance standalone binary server & environment: raspberry pi. There are technical solutions to this limitation and they are fine. But they significantly break the universality illusion and benefits.
- jart 4y agoRedbean runs on M1 Macs with ARM. Daniil Kulchenko pulled off an impressive hack to make that possible. https://github.com/jart/cosmopolitan/issues/429 https://github.com/jart/cosmopolitan/issues/429 Redbean also works great on Windows ARM https://youtu.be/CQ7Npip88Yw https://youtu.be/CQ7Npip88Yw As for Linux ARM, we're working on it. If you can point me to any place where we've claimed it's "universal" rather than "runs on nearly all PCs and servers" then let me know and I'll correct the language. It wasn't my intent to put Redbean on the same level as Turing's universal machine. Systems engineering isn't the same thing as computer science, but I think Redbean will help elevate it as a field.
- giraffe_lady 4y agoOh interesting, I didn't realize it was supposed to work on arm. It crashes for me after a minute or two and I didn't see arm explicitly mentioned so figured it wasn't supported. I'll open an issue about it.
- jart 4y agoRaspberry Pi is only supported with Windows. We intend to support RasPi + Linux in the future. So any time you invest in Redbean today, will pay dividends as support expands in the future.
- tepitoperrito 4y agoMy question is, how portable is the lua code written for redbean to a GNU/Systemd environment running something like LuaJIT or whichever interpreter would be more compatible. Forgive my lack of knowledge of the lua ecosystem, and not checking out more of the redbean docs.
- giraffe_lady 4y agoI may not be understanding the concern correctly so forgive me if not. Lua code pretty much always ends up tightly coupled to the embedding environment and the API exposed by it. Running a bare lua script against an unmodified interpreter supplied by the OS is just not the normal use case, though certainly possible. So it's as portable as all lua code, which is up to you but there's rarely a reason to prioritize that too highly. For example the two kinds of lua I've done professionally are web servers and industrial automation. What does it even mean for code to be "portable" between those two? A web server doesn't have a motor and so doesn't expose functions to control one. A conveyor belt doesn't handle http requests so has no functions to send one. You can definitely come up with library code-type functionality that you'd want in both, and if you write it carefully not to depend on anything outside of the core lua implementation it will run on both. Nothing special about redbean here among the many many other niche uses of lua.
- jart 4y agoRedbean embraces and extends Lua. That's good since Lua by itself is the most austere language. For instance, here's Lua's standard library as shown by redbean auto-completion: https://redbean.dev/img/lua-stdlib.png https://redbean.dev/img/lua-stdlib.png It only covers stdio functionality, since that's traditionally the only thing that's been portable across platforms. What we did with Cosmopolitan Libc was make POSIX as a whole portable to things like Windows. Redbean uses it to offer you a much larger breadth of system functionality across platforms https://redbean.dev/img/redbean-unixlib.png https://redbean.dev/img/redbean-unixlib.png so you can benefit from the modern features of your operating system. We've also added language features to Lua that we borrowed from C and Python. https://redbean.dev/#enhancements https://redbean.dev/#enhancements If you want to move your code to a different Lua environment, then you can take our APIs with you. For instance, our enhancements to Lua are all open source and built on standardized interfaces. We even offer a 420kb build of just the lua command + our unix module, in the event you ever need just Lua but not the web server too. https://redbean.dev/lua.com https://redbean.dev/lua.com