This is really cool. Reminds me of the original Unix was invented in a couple weeks while Ritchie's family went on vacation to CA to visit his in-laws.<p>Source: UNIX: A History and a Memoir Paperback – October 18, 2019
by Brian W Kernighan (Author)
> I also finally learned how signals work from top to bottom, and boy is it ugly. I’ve always felt that this was one of the weakest points in the design of Unix and this project did nothing to disabuse me of that notion.<p>Would love any resources that goes in more details, if any HN-er or the author himself knows of some!
I was interested in Hare until I found this immensely self-defeating FAQ item: <a href="https://harelang.org/documentation/faq.html#will-hare-support-windows-or-macos" rel="nofollow">https://harelang.org/documentation/faq.html#will-hare-suppor...</a><p>As a baseline, I support developers using whatever license they would like, and targeting whatever operating systems, indeed, writing <i>whatever</i> code they would like in the process.<p>That doesn't make this specific policy a good idea. Even FSF, generally considered the most extreme (or, if you prefer, principled) exponents of the Free Software philosophy, support Windows and POSIX. They may grumble and call it Woe32, but Stallman has said some cogent things about how the fight for a world free of proprietary software is more readily advanced by making sure that Free Software projects run on proprietary systems.<p>They do at least license the library code under MPL, so merely using Hare doesn't lock you into a license. But I wonder about the longevity of a language where the attitude toward 95+% of the desktop is "unsupported, don't ask questions on our forums, we don't want you here".<p>Ironically, a Google search for "harelang repo" has as the first hit an unofficial macOs port, and the actual SourceHut repo doesn't show up in the first page of results.<p>Languages either snowball or fizzle out. I'm typing this on a Mac, but I could pick up a Linux machine right now if I were of a mind to. But why would I invest in learning a language which imposes a purity test on developers, when even the FSF doesn't? A great deal of open source <i>and</i> free software gets written on Macs, and in fact, more than you might think on Windows as well.<p>From where I sit, what differentiates Hare from Odin and Zig, is just this attitude of purity and exclusion. I wish you all happy hacking, of course, and success. But I'm pessimistic about the latter.
Impressive, super cool, and inspiring!<p>Example of “creating something impressive in X days” requires a lot of experience and talent that is built over <i>years</i>.
It was really cool watching the ~daily updates on this on Mastodon - seeing how someone so skilled gradually pieces together a complex piece of software.
<i>The userspace is largely assembled from third-party sources.</i><p>That answered my initial surprise of clicking on the ISO and getting a <i>60MB</i> download.<p>For comparison, Linux 0.01 was a 71k download, but contained only the kernel source.
Hare looks like an interesting language.<p>Though this limitation will limit its adoption in this multicore age I think:<p>From the FAQ <a href="https://harelang.org/documentation/faq.html" rel="nofollow">https://harelang.org/documentation/faq.html</a><p>....<p>Can I use multithreading in Hare?<p>Probably not.<p>We prefer to encourage the use of event loops (see unix::poll or hare-ev) for multiplexing I/O operations, or multiprocessing with shared memory if you need to use CPU resources in parallel.<p>It is, strictly speaking, possible to create threads in a Hare program. You can link to libc and use pthreads, or you can use the clone(2) syscall directly. Operating systems implemented in Hare, such as Helios, often implement multi-threading.<p>However, the upstream standard library does not make reentrancy guarantees, so you are solely responsible for not shooting your foot off.
hey drew! did writing this project give you any Hare-y situations you hadn't run into before, or maybe - reached into corners not yet probed by Hare and gave you ideas for a new feature or edge case that was scary?
Are there "waypoint" commits for major milestones? Id really like to see those.<p>Like PC bootstrap, basic kernel action loops, process forking, yada yada
Impressive work but I feel this approach is the hard and brittle way to write an os. The easier and more portable way is to write the os as a guest in a host language. You start with a simple shell with the print command and build from there.