The Zig programming language has been ported to SerenityOS
twitter.com
twitter.com
He also gave an in-person talk about Zig on SerenityOS at Software You Can Love 2022, there's a video of the talk here: https://www.youtube.com/watch?v=Ug3p8vELJqQ
I remain hopeful that one day some company will acquire Serenity and ship SerenityOS to millions and millions of people. Idk if that is even aligned with what the people of SerenityOS wish for, but I think it would be very cool if that was to happen :D
JS interpreter on Start Menu when?
Who would want to acquire this exactly? This frankly sounds like the most devoid of all comments I have ever read and the furthest from reality.
Any hobbyist OS fanatic would have said the exact same thing about GNU/Hurd, Haiku, HelenOS, ToaruOS, RedoxOS, etc. This is not 2005 anymore.
As brilliant as SerenityOS is, it's still missing huge swaths of functionality people take for granted these days. Things like WiFi and GPU drivers and good audio/video decoders in the web browser, for example.
So for example C freestanding or Rust "no-std" will "work" but you can't do very much, freestanding doesn't have this idea of you "running" a program since that implies the existence of some supervisory agent, the resulting machine code generally gets burned into a ROM, or whatever.
The full blown hosted C, or Rust's std needs a bunch of porting, each is separate, the fact you made C's fopen() work doesn't magically make Rust's File APIs work so the fact Zig stuff works doesn't make Clang or rustc deliver their hosted/ std environments.
So yeah, there's a big step from compiling machine code to working correctly with a particular OS.
So in a sense, yes, they are toys for grown ups.
It's perfectly possible to build freestanding Linux programs. The only thing you need is exactly one system call function to get access to every single Linux kernel functionality. All this function needs to do is move parameters to specific registers, execute a system call instruction and return the result. With this single function, a freestanding program can do anything.
This is possible on Linux because it has a stable system call ABI. Other systems don't have that, they make people link to system libraries. Not sure what SerenityOS does but I assume they provide C++ OS libraries.
For example in this video Andreas implements palette support for commands (commands are usually shown in the menu bar or contextual menus) and it has the nice side effect of immediately enabling them on every GUI program, even the desktop itself!
https://www.youtube.com/watch?v=LAqGLkRCFb8
I think Zig can be a polite guest in SerenityOS thanks to Zig's general interest in supporting uncommon targets, but the hosts are C++ and Jakt.