<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: vocx2tx</title><link>https://news.ycombinator.com/user?id=vocx2tx</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 15:42:31 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=vocx2tx" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by vocx2tx in "10 years ago, someone wrote a test for Servo that included an expiry in 2026"]]></title><description><![CDATA[
<p>These fake-time environments let you set the time, so you can test how the code will behave in 2039 without waiting for 13 years. For Go's synctest, 1-1-2000 is just the default initial value for now().</p>
]]></description><pubDate>Mon, 20 Apr 2026 20:15:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47839906</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=47839906</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47839906</guid></item><item><title><![CDATA[New comment by vocx2tx in "10 years ago, someone wrote a test for Servo that included an expiry in 2026"]]></title><description><![CDATA[
<p>But still a kludge. Better: use something equivalent to Go's testing/synctest[0] package, which lets you write tests that run in a bubble where time is fixed and deterministic.<p>[0] <a href="https://pkg.go.dev/testing/synctest" rel="nofollow">https://pkg.go.dev/testing/synctest</a></p>
]]></description><pubDate>Mon, 20 Apr 2026 15:50:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47836075</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=47836075</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47836075</guid></item><item><title><![CDATA[New comment by vocx2tx in "Why I forked httpx"]]></title><description><![CDATA[
<p>The reason is simple: they'd like to reap all the benefits of a permissive licence (many people and companies won't or can't touch GPL code), without any of the downsides; but these downsides are the very reason behind the rules in more 'restrictive' licenses like the GPL.<p>This usually doesn't work, and in the end all they can do is complain about behaviours that their license choice explicitly allowed.</p>
]]></description><pubDate>Wed, 25 Mar 2026 11:59:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47516181</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=47516181</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47516181</guid></item><item><title><![CDATA[New comment by vocx2tx in "What Julia has that Rust desperately needs"]]></title><description><![CDATA[
<p>Go did exactly that, where Maven's 'Project group identifier' is an URL you control, e.g. github.com/<your-account> but also <your-website>/go-pkg or whatever you want. Other languages did this too. Flat namespaces are more of a Rust issue (among newer languages).</p>
]]></description><pubDate>Mon, 06 Oct 2025 06:16:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=45488171</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=45488171</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45488171</guid></item><item><title><![CDATA[New comment by vocx2tx in "What Julia has that Rust desperately needs"]]></title><description><![CDATA[
<p>The real issue here is Rust's flat namespace. In Go, for example, there's no ffmpeg crate, there's github.com/someone/ffmpeg and gitlab.com/someone-else/ffmpeg, and so on. There's no blessed, unique 'ffmpeg' package, you can't squat names, and if the first package gets abandoned, you can fork it under a new path while keeping the 'ffmpeg' name. Only the import path changes.</p>
]]></description><pubDate>Mon, 06 Oct 2025 06:14:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=45488158</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=45488158</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45488158</guid></item><item><title><![CDATA[New comment by vocx2tx in "F-Droid build servers can't build modern Android apps due to outdated CPUs"]]></title><description><![CDATA[
<p>Looking at the issue their builders seem to be Opterons G3 (K10?)[0]<p>[0] <a href="https://en.wikipedia.org/wiki/AMD_10h" rel="nofollow">https://en.wikipedia.org/wiki/AMD_10h</a></p>
]]></description><pubDate>Wed, 13 Aug 2025 06:05:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44885099</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=44885099</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44885099</guid></item><item><title><![CDATA[New comment by vocx2tx in "1B nested loop iterations"]]></title><description><![CDATA[
<p>64 bit mod is much slower than 32 bit mod. Your C program uses int32_t everywhere, while your Go program uses int (which is probably 64 bit on you machine); so this is not a fair comparison. Changing the Go program to use int32 everywhere makes it 35% faster on my machine.</p>
]]></description><pubDate>Wed, 27 Nov 2024 07:18:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=42253744</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=42253744</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42253744</guid></item><item><title><![CDATA[New comment by vocx2tx in "Has anyone noticed how overrun by bots Reddit has become?"]]></title><description><![CDATA[
<p>Agree. And of course it's always something "surface level and uncontroversial", anything else gets you downvoted. Most subreddits (with a few exceptions) are huge echo-chambers.</p>
]]></description><pubDate>Wed, 04 Sep 2024 11:17:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=41444305</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=41444305</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41444305</guid></item><item><title><![CDATA[New comment by vocx2tx in "Mpv – A free, open-source, and cross-platform media player"]]></title><description><![CDATA[
<p>It uses yt-dlp as the download backend, so it works with anything that yt-dlp handles.</p>
]]></description><pubDate>Sat, 17 Aug 2024 20:46:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=41277824</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=41277824</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41277824</guid></item><item><title><![CDATA[New comment by vocx2tx in "Mpv – A free, open-source, and cross-platform media player"]]></title><description><![CDATA[
<p>> The worst GUI (none) out of the box.<p>That's funny, for me that's exactly the <i>best</i> GUI out of the box. I actually did some tinkering to reduce the GUI parts even more, and added more keyboard shortcuts.</p>
]]></description><pubDate>Sat, 17 Aug 2024 20:45:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=41277816</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=41277816</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41277816</guid></item><item><title><![CDATA[New comment by vocx2tx in "[dead]"]]></title><description><![CDATA[
<p>Of course everything in the "Generic Programming" section is now outdated.</p>
]]></description><pubDate>Fri, 31 May 2024 14:27:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=40535634</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=40535634</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40535634</guid></item><item><title><![CDATA[New comment by vocx2tx in "The Unhinged Nature of GTA V Source Code [video]"]]></title><description><![CDATA[
<p>> and who was “she”?<p>The structure, probably. In gendered languages objects have a grammatical gender, and "structure" is feminine in at least French, Italian, and Spanish (they all derived from Latin "structura", which is feminine). Non-native English speakers will sometime carry over a noun's gender when writing in English.</p>
]]></description><pubDate>Sun, 07 Jan 2024 09:49:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=38899896</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=38899896</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38899896</guid></item><item><title><![CDATA[New comment by vocx2tx in "Emacs-copilot: Large language model code completion for Emacs"]]></title><description><![CDATA[
<p>Unrelated to the plugin but wow the is_prime function in the video demonstration is awful. Even if the input is not divisible by 2, it'll still check it modulo 4, 6, 8, ... which is completely useless. It could be made literally 2x faster by adding a single line of code (a parity check), and then making the loop over odd numbers only. I hope you people using these LLMs are reviewing the code you get before pushing to prod.</p>
]]></description><pubDate>Sun, 31 Dec 2023 18:03:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=38826055</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=38826055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38826055</guid></item><item><title><![CDATA[New comment by vocx2tx in "Backward Compatibility, Go 1.21, and Go 2"]]></title><description><![CDATA[
<p>> The setting is opt-out, requiring manual intervention.<p>No. If a module's go.mod files declares go1.21, the compiler will use go1.21 semantics when building it, even if 1.22 has already been published and the module is being used from a 1.22-enabled program. This is explicitly mentioned in the blog post.</p>
]]></description><pubDate>Mon, 14 Aug 2023 17:55:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=37124224</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=37124224</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37124224</guid></item><item><title><![CDATA[New comment by vocx2tx in "File for divorce from LLVM"]]></title><description><![CDATA[
<p>> I feel like Go already went through a whole saga of this where the community started with "LLVM and SSA are bad and slow"<p>I've been a contributor since the Go compiler was a tree-based C program and I've never heard anyone say that. What they said (and it's in the Go FAQ page) is: "At the beginning of the project we considered using LLVM for gc but decided it was too large and slow to meet our performance goals." [1]<p>If you're building a language with the explicit goal to make it compile fast, it's objectively true that starting out with LLVM is not the best approach. You'll get incredible runtime performance of the generated code since the early days, but NOT fast compilation. The Go makers choose a different tradeoff.<p>> and they end up building their own SSA IR<p>They switched to a SSA IR because it was a good idea to begin with, after an initial phase with the tree-base prototype. I've also never heard anyone argue that "SSA is bad", despite what you claim. The first compiler was tree-based because they reused a simple tree-based C compiler from plan9.<p>> building their own SSA IR and  spending a bunch of time trying to bring compilation time closer to what it was before as it made everything much slower<p>The new compiler was ported to Go (machine-rewritten from C) and that's the main reason it was ~2x slower than the old compiler. It's not due to the switch to a SSA-IR.<p>[1] <a href="https://go.dev/doc/faq#Implementation" rel="nofollow noreferrer">https://go.dev/doc/faq#Implementation</a></p>
]]></description><pubDate>Fri, 30 Jun 2023 07:14:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=36531563</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=36531563</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36531563</guid></item><item><title><![CDATA[New comment by vocx2tx in "The curious case of a memory leak in a Zig program"]]></title><description><![CDATA[
<p>> a bump allocator freeing its tip is an optimisation<p>That's kinda my point? free is there and <i>does</i> something, but also silently does nothing if you violate a fairly subtle invariant. Kinda the definition of "error-prone", and the whole blog post seems to prove it, as the leak was essentially caused by the author not realizing that free was silently doing nothing. I understand why bump-allocators exist, I'm just saying this particular one's API has quite the footgun.</p>
]]></description><pubDate>Sun, 19 Mar 2023 09:19:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=35217339</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=35217339</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35217339</guid></item><item><title><![CDATA[New comment by vocx2tx in "The curious case of a memory leak in a Zig program"]]></title><description><![CDATA[
<p>An allocator that silently does nothing on free if you violate one if its invariants (freeing an allocation that wasn't the latest) seems an incredibly error-prone design? It should probably return an error or panic (if free's API allows it, I guess).</p>
]]></description><pubDate>Sun, 19 Mar 2023 08:38:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=35217120</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=35217120</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35217120</guid></item><item><title><![CDATA[New comment by vocx2tx in "Some of the internal programming and debugging tools we use to make video games"]]></title><description><![CDATA[
<p>Neat. I'd have liked to hear more about their custom programming language and its toolchain's implementation.</p>
]]></description><pubDate>Fri, 24 Feb 2023 19:41:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=34929031</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=34929031</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34929031</guid></item><item><title><![CDATA[New comment by vocx2tx in "The size of things in bytes"]]></title><description><![CDATA[
<p>He probably ran ls on /usr/local/go (it's 477MB on my machine). But that's the size of the entire Go download after unarchiving, which includes the runtime's and <i>all</i> the standard library's 1) source code and 2) precompiled object files, both in normal and race-mode.<p>So no, that's not the actual size of "the Go runtime" for any meaningful definition of "the Go runtime".</p>
]]></description><pubDate>Sun, 01 Jan 2023 22:39:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=34211831</link><dc:creator>vocx2tx</dc:creator><comments>https://news.ycombinator.com/item?id=34211831</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34211831</guid></item></channel></rss>