<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: waddlesplash</title><link>https://news.ycombinator.com/user?id=waddlesplash</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 15 May 2026 10:13:56 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=waddlesplash" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by waddlesplash in "Haiku"]]></title><description><![CDATA[
<p>(Haiku developer here.)<p>> Am I missing something?<p>Haiku's not nearly as well-tested for security as most other OSes. We have a lot of the basic features (ASLR, NX bit, safety checks for kernel/userland data copies, some use-after-free detection in malloc, etc.) but things haven't been seriously audited or pentested the way other OSes are. We fix security bugs when they get found, but not too many people are looking for them that I know of.<p>> What do they mean by "infrastructure" here?<p>The web/internet infrastructure: software depot (has accounts for people to post ratings/reviews), forums, bug tracker, code review, etc. And it contains all the usual "sensitive personal data": IP addresses, email addresses, some private communications, and so on.<p>> If I'm happy with my Linux DE and so on, why would I choose Haiku?<p>Well, I guess the question is, are you really happy with your Linux DE? Because every time I've run desktop Linux, I have to spend what feels like 5-10% (or sometimes more) of my time fixing things that randomly break, or otherwise don't do or behave the way they're expected to, usually by finding some obscure configuration file and changing some random option.<p>On Haiku, since the system is designed and developed by one team, it all goes together in a way that Linux DEs can't really achieve. The downside is that, of course, we can't reuse much of the Linux's work (we have lots of Linux software ports, but the base system is all us), so we have a lot more to do than your average Linux distro, and so we're quite a ways from general feature parity with the Linux desktop (but the gap does decrease year over year, at least in some areas...)</p>
]]></description><pubDate>Thu, 14 May 2026 04:33:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48131130</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=48131130</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48131130</guid></item><item><title><![CDATA[New comment by waddlesplash in "VitruvianOS – Desktop Linux Inspired by the BeOS"]]></title><description><![CDATA[
<p>> And things such as ruby don't work on it.<p>What doesn't work about it? We have Ruby in the software repositories, and Ruby is required to build WebKit (and we build WebKit on Haiku), so clearly it works for that much at least. I don't see any open tickets at HaikuPorts about bugs in the port, either.</p>
]]></description><pubDate>Wed, 25 Mar 2026 16:10:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47519346</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=47519346</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47519346</guid></item><item><title><![CDATA[New comment by waddlesplash in "Learning to Program with Haiku"]]></title><description><![CDATA[
<p>It's Unicode code points. I don't know why you say this is "tragic", it's a logical unit to work in here.</p>
]]></description><pubDate>Fri, 11 Apr 2025 02:15:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=43649858</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=43649858</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43649858</guid></item><item><title><![CDATA[New comment by waddlesplash in "Learning to Program with Haiku"]]></title><description><![CDATA[
<p>> with new techniques and materials on top of old work done in a way that was usual at the time.<p>But is there any long-lived project for which this isn't true? Linux and the BSDs surely have many components that fall into this category.<p>> For example there's BString and BList.<p>BString is a much nicer string class to work with (IMO) than std::string. It lacks some modern conveniences, and it has some unfortunate footguns where some APIs return bytes and some return UTF-8 characters (the former should probably all be considered deprecated, indeed that's a BeOS holdover), but I don't think there's any intent to drop it.<p>BList could be better as well, but it's still a nicer API in many ways than std::vector. Our other homegrown template classes also are nicer or have particular semantics we want that the STL classes don't, so I don't think we'd ever drop them.<p>> Haiku also has seams of BSD code where there'd be a project to do Whatever (WiFi, TLS, drivers, etc.) "properly" in a way unique to Haiku<p>What would be the point of implementing WiFi drivers from scratch "uniquely" for Haiku? Even FreeBSD has started just copying drivers from Linux, so that may be in our future as well. I don't know that anyone ever really considered writing a whole 802.11 stack for Haiku; there was some work on a "native" driver or two at one point, but it was for hardware that we didn't have support for from the BSDs, and it still used the BSD 802.11 stack. Writing our own drivers there just seems like a waste of time; we might as well contribute to the BSD ones instead.</p>
]]></description><pubDate>Thu, 10 Apr 2025 13:53:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=43643793</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=43643793</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43643793</guid></item><item><title><![CDATA[Haiku R1/beta5 has been released]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.haiku-os.org/get-haiku/r1beta5/release-notes">https://www.haiku-os.org/get-haiku/r1beta5/release-notes</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41532540">https://news.ycombinator.com/item?id=41532540</a></p>
<p>Points: 104</p>
<p># Comments: 8</p>
]]></description><pubDate>Fri, 13 Sep 2024 16:10:22 +0000</pubDate><link>https://www.haiku-os.org/get-haiku/r1beta5/release-notes</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=41532540</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41532540</guid></item><item><title><![CDATA[New comment by waddlesplash in "KDE Asking for Donations"]]></title><description><![CDATA[
<p>(One of the Haiku developers here. Thanks for your support!)</p>
]]></description><pubDate>Fri, 30 Aug 2024 21:01:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=41404395</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=41404395</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41404395</guid></item><item><title><![CDATA[New comment by waddlesplash in "Hardware Virtualization"]]></title><description><![CDATA[
<p>Have you read the User Guide on these subjects? <a href="https://www.haiku-os.org/docs/userguide/en/workshop-filetypes+attributes.html" rel="nofollow">https://www.haiku-os.org/docs/userguide/en/workshop-filetype...</a></p>
]]></description><pubDate>Thu, 22 Aug 2024 21:07:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=41324403</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=41324403</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41324403</guid></item><item><title><![CDATA[New comment by waddlesplash in "Firefox Browser Ported to HaikuOS"]]></title><description><![CDATA[
<p>The RISC-V port was done almost entirely by one developer who took an interest in it. It wasn't as though the project got together and decided to prioritize RISC-V over ARM; it was just that someone did a port, and then it got (mostly) upstreamed. Nobody has taken an equivalent interest in ARM, in large part because, well, the developers are all running x86 machines as you might expect, so that's what Haiku gets developed on. If someone comes along (or one of the existing developers takes interest) in working on the ARM port more, we will hardly reject the patches!</p>
]]></description><pubDate>Sun, 11 Aug 2024 22:39:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=41219799</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=41219799</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41219799</guid></item><item><title><![CDATA[New comment by waddlesplash in "Haiku OS: The Open Source BeOS You Can Daily Drive in 2024"]]></title><description><![CDATA[
<p>Well, there's nothing preventing it from happening if that's what you mean. It's just a difficult thing to do, and requires effort (and expertise.)<p>I might take a crack at porting the KMS/DRM drivers from Linux eventually, but it's not near the top of my TODO list.</p>
]]></description><pubDate>Tue, 16 Jan 2024 17:14:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=39015804</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=39015804</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39015804</guid></item><item><title><![CDATA[New comment by waddlesplash in "Haiku OS: The Open Source BeOS You Can Daily Drive in 2024"]]></title><description><![CDATA[
<p>Haiku's "raison d'être" is to be a fully-fledged desktop operating system for general use. So, if there aren't native applications to fulfill daily tasks, then Linux ones tend to get ported.<p>Anyway, as for the question "why Haiku, if it's just ported Linux apps?" well, because Haiku is a much more cohesive system than any Linux distro. Even if every app you are running on it is from Linux (besides Tracker and Deskbar), the entire system underneath those applications remains tightly integrated.</p>
]]></description><pubDate>Tue, 16 Jan 2024 02:24:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=39008675</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=39008675</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39008675</guid></item><item><title><![CDATA[New comment by waddlesplash in "Haiku OS: The Open Source BeOS You Can Daily Drive in 2024"]]></title><description><![CDATA[
<p>There's a "flat" decorator which makes things look more 'modern', if that's what you want: <a href="https://github.com/unarix/haiku_darkstyle#darkflat">https://github.com/unarix/haiku_darkstyle#darkflat</a><p>(Available in the Depot; install "haiku_extras" package.)</p>
]]></description><pubDate>Tue, 16 Jan 2024 02:11:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=39008574</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=39008574</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39008574</guid></item><item><title><![CDATA[New comment by waddlesplash in "Haiku OS: The Open Source BeOS You Can Daily Drive in 2024"]]></title><description><![CDATA[
<p>(Haiku developer here.) There is one hardware accelerated driver, for Radeon Southern Islands; but it's third-party, out-of-tree, and not particularly simple to set up and get running. So, not really.</p>
]]></description><pubDate>Tue, 16 Jan 2024 02:09:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=39008559</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=39008559</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39008559</guid></item><item><title><![CDATA[New comment by waddlesplash in "r9: Plan 9 in Rust"]]></title><description><![CDATA[
<p>(Haiku developer here.) This is a pretty common misconception, but it isn't true; Haiku doesn't have a "POSIX compatibility layer", it's just natively POSIX under the hood. You can find some elaboration on an old forum thread: <a href="https://discuss.haiku-os.org/t/is-haiku-a-unix-like-os/8801/4?u=waddlesplash" rel="nofollow">https://discuss.haiku-os.org/t/is-haiku-a-unix-like-os/8801/...</a></p>
]]></description><pubDate>Sun, 21 May 2023 21:07:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=36024707</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=36024707</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36024707</guid></item><item><title><![CDATA[New comment by waddlesplash in "Haiku's (Kernel) Condition Variables API: Design and Implementation"]]></title><description><![CDATA[
<p>> The Alpha doesn't promise that there's any coherent ordering at all unless you've imposed one<p>Yes. But why did you bring this up in this thread about API <i>usage</i>? It's the implementation's problem to make this work out. "Add()" should be the equivalent of a full memory barrier (at least for the condition variable's memory) no matter how that happens internally.<p>> This price isn't unique to Haiku, but the choice to pay it (almost) everywhere is, at least in terms of operating systems people would be using today.<p>Haiku is, in many ways, poorly optimized when compared on such details with Linux or FreeBSD, all the developers know this fact, and we make no secret of it. If this was your entire point in the first place, why not just say so?<p>By the way, as far as I can tell, OpenBSD's kernel atomics (sys/atomic.h) do not have different versions for different memory orderings; in fact they use the older-style GCC builtins and not the C++11-style ones, so they are also using sequential consistency everywhere they use atomics. Is OpenBSD not a "modern operating system people would be using today"?</p>
]]></description><pubDate>Tue, 25 Apr 2023 14:29:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=35701007</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=35701007</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35701007</guid></item><item><title><![CDATA[New comment by waddlesplash in "Haiku's (Kernel) Condition Variables API: Design and Implementation"]]></title><description><![CDATA[
<p>> Your "no possible way" is assuming Sequential Consistency,<p>I am assuming events cannot finish before they are started, yes! I am pretty sure that even the (in)famous DEC Alpha could not possibly have time-traveling results.<p>Once again: there is a distinction between the API itself, and the API's implementation. Once the "Add" function returns, the "Entry" is now waiting on the "Variable". How the "Add" function ensures that is entirely abstracted away from the consumers of the API.<p>The implementation of "Add", at least, is synchronized using a very standard spinlock, just like similar operations are for mutexes, semaphores, etc. not just on Haiku, but on all the BSDs and Linux. We don't even need to think about CPU operations ordering for that, the spinlock takes care of it for us.<p>I am pretty sure Linux (and every other operating system, ever) would be in all kinds of trouble if you could read stale values from memory protected by spinlocks, so I don't know why you are casting doubt on these things.<p>> It's possible that the vaguely named "atomic" operations in Haiku provide you with adequate ordering<p>Hey, you already wrote a comment elsewhere in this thread about this point, and I replied to your comment with a bunch of information proving definitively: they do, in fact, provide that ordering. But in the cases I described in the parent comment here, <i>it does not matter</i>, because here we are talking about API <i>consumption</i>, not <i>implementation</i>.</p>
]]></description><pubDate>Tue, 25 Apr 2023 04:13:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=35696420</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=35696420</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35696420</guid></item><item><title><![CDATA[New comment by waddlesplash in "Haiku's (Kernel) Condition Variables API: Design and Implementation"]]></title><description><![CDATA[
<p>Haiku uses the System V ABI (mostly.) So, we're doing the same things Linux and the BSDs are here, simply by using GCC or Clang without any special tuning here.<p>> I reckon that before trying to claim you've innovated here it might be a good sense check to compare baseline.<p>The baseline is "what are other operating systems' kernel- and userland-level condition variables APIs?" And none of the ones I looked at had anything like what Haiku has here, they all have something which is the more classical "lock-switched condvars" just like POSIX has.<p>The API itself does not depend on what memory ordering semantics are any more than a "mutex_lock()" API does. The implementation will be somewhat contingent on it, of course, but those are two separate matters.<p>> What exactly are the Haiku atomic operations, in terms of the C++ 11 Memory Model?<p>The atomic_() functions are (on most architectures, x86 included) implemented using GCC/Clang's __atomic_* functions, with various __ATOMIC_* orderings chosen as appropriate. You can see them defined in the system header here: <a href="https://github.com/haiku/haiku/blob/master/headers/os/support/SupportDefs.h#L260">https://github.com/haiku/haiku/blob/master/headers/os/suppor...</a><p>> because you're innovating before 2011, you're inventing the model<p>No, not really? GCC has had atomic builtins since at least 4.1.0 in 2006. The documentation (<a href="https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html" rel="nofollow">https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins...</a>) says: "In most cases, these builtins are considered a full barrier. That is, no memory operand will be moved across the operation, either forward or backward." -- which is basically equivalent to today's __ATOMIC_SEQ_CST.<p>> so Haiku is off in the jungle on its own and everybody else has a map now, figure out where you are on that map first.<p>We already did that years ago. The atomic_*() functions linked above in SupportDefs.h have been implemented using the C++11-standard GCC builtins since 2014, and the older __sync_* builtins for years before that.<p>Anyway, the algorithm described in this article, even if Haiku's atomic functions were not 1:1 with C++11-standard definitions (which they are, as noted above), is clearly portable to other OS kernels. So I am not sure what basis your comment has, regardless.</p>
]]></description><pubDate>Tue, 25 Apr 2023 03:31:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=35696231</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=35696231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35696231</guid></item><item><title><![CDATA[New comment by waddlesplash in "Haiku's (Kernel) Condition Variables API: Design and Implementation"]]></title><description><![CDATA[
<p>You are correct that deadlocks can be caused by signals occurring before the wait starts, and thus some sort of mechanism to ensure this does not happen is needed, but I explained as much in the article. The point of this API is that the atomic lock-switch is not restricted to just locks; and further, in some situations, no lock-switch is needed at all.<p>The former is simple enough, and directly equivalent to what FreeBSD's API allows you to do (and what Haiku's API provides as "convenience methods", as the article notes), and is "atomic" -- it just pushes the atomicity up a level and lets the programmer control it more directly:<p><pre><code>    ConditionVariableEntry entry;
    gSomeConditionVariable->Add(&entry);
    mutex_unlock(&someLock);
    /* (I could unlock more locks here, if needed, I'm not limited to 1) */
    entry.Wait();
    mutex_lock(&someLock);
</code></pre>
The latter case is the more interesting and unique one, and the article references one place it is actually used in practice (team/process creation), though it doesn't give a pseudocode example, so let me try to give one here:<p><pre><code>    ConditionVariableEntry entry;
    someLongRunningOperation.conditionVariable->Add(&entry);
    someLongRunningOperation.start();
    /* (I can do whatever I want here, no need to Wait immediately) */
    entry.Wait();
</code></pre>
Since this "long-running operation" is not even started until after the local Entry has been Add'ed to the Variable, there's no possible way for this operation to complete and signal before we have started 'waiting' (because, even if the Wait() call is at the end, it's the Add() call that counts.)</p>
]]></description><pubDate>Tue, 25 Apr 2023 02:47:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=35696001</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=35696001</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35696001</guid></item><item><title><![CDATA[Haiku's (Kernel) Condition Variables API: Design and Implementation]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.haiku-os.org/blog/waddlesplash/2023-04-24_condition_variables/">https://www.haiku-os.org/blog/waddlesplash/2023-04-24_condition_variables/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=35690656">https://news.ycombinator.com/item?id=35690656</a></p>
<p>Points: 121</p>
<p># Comments: 16</p>
]]></description><pubDate>Mon, 24 Apr 2023 17:31:10 +0000</pubDate><link>https://www.haiku-os.org/blog/waddlesplash/2023-04-24_condition_variables/</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=35690656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35690656</guid></item><item><title><![CDATA[New comment by waddlesplash in "SheepShaver: macOS run-time environment for BeOS and Linux"]]></title><description><![CDATA[
<p>That's not normal behavior (these days, anyway!) A lot of users are able to go months without kernel panics, especially on certain kinds of older hardware.<p>Did you report any of these panics?</p>
]]></description><pubDate>Wed, 22 Mar 2023 18:00:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=35264782</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=35264782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35264782</guid></item><item><title><![CDATA[New comment by waddlesplash in "AmigaOS 3.2"]]></title><description><![CDATA[
<p>(Haiku developer here.) The correction is wrong; while some select portions of BeOS were released as open-source (most notably Tracker, Deskbar), the OS as a whole was not, and Haiku is thus largely a clean-room reimplementation.</p>
]]></description><pubDate>Tue, 07 Mar 2023 04:55:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=35051731</link><dc:creator>waddlesplash</dc:creator><comments>https://news.ycombinator.com/item?id=35051731</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35051731</guid></item></channel></rss>