<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: squeek502</title><link>https://news.ycombinator.com/user?id=squeek502</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 18 Apr 2026 03:53:44 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=squeek502" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by squeek502 in "Windows drive letters are not limited to A-Z"]]></title><description><![CDATA[
<p>That would only interact with the shell, as `%` is not actually part of the environment variable name, it's just a way to tell the shell you want it to get the value of an environment variable. The environment block itself is a NULL terminated list of NULL terminated WTF-16 strings of the format <key>=<value>, so `=` would be the more interesting thing to try.<p>And indeed, it looks like using `=` as a drive letter breaks things in an interesting way:<p><pre><code>    =:\> cd bar
    Not enough memory resources are available to process this command.

    =:\bar>
</code></pre>
`cd` exits with error code 1, but the directory change still goes through.<p>With a program that dumps the NULL terminated <key>=<value> lines of the environment block, it looks like it does still modify the environment, but in an unexpected way:<p>Before `cd /D =:\`, I had a line that looked like this (i.e. the per-drive CWD for C:\ was C:\foo):<p><pre><code>    =C:=C:\foo
</code></pre>
After `cd /D =:\`, that was unexpectedly modified to:<p><pre><code>    =C:==:\
</code></pre>
Funnily enough, that line means that the "working directory" of the C drive is `=:\`, and that actually is acted upon:<p><pre><code>    =:\foo> cd /D C:

    =:\>
</code></pre>
---<p>You might also be interested to know that '= in the name of an environment variable' is a more general edge case that is handled inconsistently on more than just Windows: <a href="https://github.com/ziglang/zig/issues/23331" rel="nofollow">https://github.com/ziglang/zig/issues/23331</a></p>
]]></description><pubDate>Mon, 01 Dec 2025 04:31:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=46103497</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=46103497</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46103497</guid></item><item><title><![CDATA[New comment by squeek502 in "Windows drive letters are not limited to A-Z"]]></title><description><![CDATA[
<p>They work just fine, as the drive-specific CWD is stored in the environment as a normally-hidden =<drive-letter>: environment variable which has all the same WTF-16 and case-insensitive properties as drive letters:<p><pre><code>    C:\> cd /D λ:\

    λ:\> cd bar

    λ:\bar> cd /D C:\

    C:\> echo %=Λ:%
    λ:\bar

    C:\> cd /D Λ:

    λ:\bar></code></pre></p>
]]></description><pubDate>Sun, 30 Nov 2025 19:03:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46099379</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=46099379</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46099379</guid></item><item><title><![CDATA[New comment by squeek502 in "Roblox is a problem but it's a symptom of something worse"]]></title><description><![CDATA[
<p>> Any Mods you create for Minecraft: Java Edition from scratch belong to you (including pre-run Mods and in-memory Mods) and you can do whatever you want with them, as long as you don't sell them for money / try to make money from them<p><a href="https://www.minecraft.net/en-us/eula" rel="nofollow">https://www.minecraft.net/en-us/eula</a></p>
]]></description><pubDate>Tue, 25 Nov 2025 20:24:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=46050310</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=46050310</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46050310</guid></item><item><title><![CDATA[New comment by squeek502 in "Zig 0.15.1"]]></title><description><![CDATA[
<p>0.15.0 was effectively skipped: <a href="https://github.com/ziglang/www.ziglang.org/commit/1be0f80b15d256d42411a21f10e208f9b269a5e2" rel="nofollow">https://github.com/ziglang/www.ziglang.org/commit/1be0f80b15...</a></p>
]]></description><pubDate>Wed, 20 Aug 2025 19:44:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=44965597</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=44965597</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44965597</guid></item><item><title><![CDATA[New comment by squeek502 in "Slightly better named character reference tokenization than Chrome, Safari, FF"]]></title><description><![CDATA[
<p>Good catch, that does indeed look like a mistake in the spec. Everything past the first sentence of that error description is suspect, honestly (seems like it was naively adapted from the example in [1] but that example isn't relevant to the missing-semicolon-after-character-reference error).<p>Will submit an issue/PR to correct it when I get a chance.<p>[1] <a href="https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state" rel="nofollow">https://html.spec.whatwg.org/multipage/parsing.html#named-ch...</a></p>
]]></description><pubDate>Fri, 27 Jun 2025 23:00:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=44401071</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=44401071</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44401071</guid></item><item><title><![CDATA[New comment by squeek502 in "Slightly better named character reference tokenization than Chrome, Safari, FF"]]></title><description><![CDATA[
<p>Appreciate it (I'm the author). I'd like to think there's a good bit of interesting stuff in here outside of the specific topic of named character reference tokenization.</p>
]]></description><pubDate>Fri, 27 Jun 2025 20:00:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=44399786</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=44399786</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44399786</guid></item><item><title><![CDATA[New comment by squeek502 in "Self-hosted x86 back end is now default in debug mode"]]></title><description><![CDATA[
<p>FWIW here's what that looks like for Zig: <a href="https://ziglang.org/news/2024-financials/" rel="nofollow">https://ziglang.org/news/2024-financials/</a></p>
]]></description><pubDate>Mon, 09 Jun 2025 11:42:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=44223446</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=44223446</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44223446</guid></item><item><title><![CDATA[New comment by squeek502 in "Self-hosted x86 back end is now default in debug mode"]]></title><description><![CDATA[
<p>Relevant: <a href="https://github.com/ziglang/zig/issues/4055#issuecomment-1646701374">https://github.com/ziglang/zig/issues/4055#issuecomment-1646...</a></p>
]]></description><pubDate>Mon, 09 Jun 2025 06:33:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=44221912</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=44221912</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44221912</guid></item><item><title><![CDATA[New comment by squeek502 in "Self-hosted x86 back end is now default in debug mode"]]></title><description><![CDATA[
<p>As far as I'm aware, using the self-hosted backend for anything other than Debug mode is a goal, but a far-future goal.<p>I believe the most relevant links are <a href="https://github.com/ziglang/zig/issues/16270">https://github.com/ziglang/zig/issues/16270</a> and <a href="https://github.com/orgs/ziglang/projects/2/views/1?pane=issue&itemId=75955123">https://github.com/orgs/ziglang/projects/2/views/1?pane=issu...</a> (as you can see, nothing is concrete yet, just vague mentions of optimization passes)</p>
]]></description><pubDate>Mon, 09 Jun 2025 06:23:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=44221856</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=44221856</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44221856</guid></item><item><title><![CDATA[New comment by squeek502 in "Zig 0.14.0 Release Notes"]]></title><description><![CDATA[
<p>I'm probably not describing it fully accurately. See the link for the proper explanation.</p>
]]></description><pubDate>Fri, 07 Mar 2025 02:48:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=43287043</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=43287043</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43287043</guid></item><item><title><![CDATA[New comment by squeek502 in "Zig 0.14.0 Release Notes"]]></title><description><![CDATA[
<p>My understanding is that Zig's incremental compilation will work on a much more granular level (i.e. functions, etc), so, for example, change one function and only that function (and its dependencies) will get recompiled/relinked (there's some linker trickery involved to avoid needing to relink everything IIUC).<p>More details here: <a href="https://ziggit.dev/t/how-zig-incremental-compilation-is-implemented-internally/3543/2" rel="nofollow">https://ziggit.dev/t/how-zig-incremental-compilation-is-impl...</a></p>
]]></description><pubDate>Wed, 05 Mar 2025 22:01:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=43273244</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=43273244</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43273244</guid></item><item><title><![CDATA[New comment by squeek502 in "Every bug/quirk of the Windows resource compiler (rc.exe), probably"]]></title><description><![CDATA[
<p>For the miscompilations, the fix wouldn't add a new compile error. Instead, rc.exe would just start doing the right thing in certain scenarios, so previously broken things would start working. For example, padding bytes that were previously missing would get properly added.<p>It's always theoretically possible that someone, somewhere is somehow relying on such a miscompilation, but for many of the ones detailed in the article, it seems extraordinarily unlikely.</p>
]]></description><pubDate>Sun, 13 Oct 2024 23:34:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=41832702</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=41832702</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41832702</guid></item><item><title><![CDATA[New comment by squeek502 in "Every bug/quirk of the Windows resource compiler (rc.exe), probably"]]></title><description><![CDATA[
<p>I think everything labeled 'miscompilation' could be fixed without breaking backwards compatibility, since triggering them always leads to an unusable/broken .res file. No clue how likely it is they'll be fixed, though.</p>
]]></description><pubDate>Sun, 13 Oct 2024 10:22:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=41826745</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=41826745</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41826745</guid></item><item><title><![CDATA[New comment by squeek502 in "Every bug/quirk of the Windows resource compiler (rc.exe), probably"]]></title><description><![CDATA[
<p>See <a href="https://www.ryanliptak.com/blog/zig-is-a-windows-resource-compiler/" rel="nofollow">https://www.ryanliptak.com/blog/zig-is-a-windows-resource-co...</a> for an example of using the Zig build system to cross-compile an existing Windows GUI program written in C from any supported host system.</p>
]]></description><pubDate>Sun, 13 Oct 2024 10:17:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=41826716</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=41826716</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41826716</guid></item><item><title><![CDATA[New comment by squeek502 in "Every bug/quirk of the Windows resource compiler (rc.exe), probably"]]></title><description><![CDATA[
<p>Apologies if I got the tone wrong there, I definitely wasn't trying to roast the other projects.<p>In terms of what I prioritized bug-for-bug compatibility on, I tailored it to getting <a href="https://github.com/squeek502/win32-samples-rc-tests">https://github.com/squeek502/win32-samples-rc-tests</a> passing 100%, and then also tried to take into account how likely a bug/quirk was to be used in a real .rc file (ultimately this is just a judgement call, though). The results of that test suite (provided in the readme) is also a better indication of how rc.exe-compatible the various resource compilers are in practice (i.e. on 'real' .rc files).</p>
]]></description><pubDate>Sun, 13 Oct 2024 05:16:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=41825351</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=41825351</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41825351</guid></item><item><title><![CDATA[New comment by squeek502 in "Every bug/quirk of the Windows resource compiler (rc.exe), probably"]]></title><description><![CDATA[
<p>Appreciate the added context!<p>> |-separated lists of numeric or NOT<p>Note that | is not the only operator that can be used in style parameters, & + and - are all allowed too.<p>> perhaps Windows versions that don't support DIALOGEX also don't support GROUPBOX<p>Seems possible for sure. From [1]:<p>> The 16-bit extended dialog template is purely historical. The only operating systems to support it were the Windows 95/98/Me series.<p>[1] <a href="https://devblogs.microsoft.com/oldnewthing/20040622-00/?p=38773" rel="nofollow">https://devblogs.microsoft.com/oldnewthing/20040622-00/?p=38...</a><p>> The examples below this also seem to have reversed the order of the input byte and the FF.<p>Good catch, fixed</p>
]]></description><pubDate>Sat, 12 Oct 2024 23:54:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=41823845</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=41823845</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41823845</guid></item><item><title><![CDATA[New comment by squeek502 in "Every bug/quirk of the Windows resource compiler (rc.exe), probably"]]></title><description><![CDATA[
<p>Thanks!<p>I'm actually pretty okay with where I've landed with FONT resources. The legwork has already been done in figuring things out, and with the strategy I've chosen, resinator doesn't even need to parse .fnt files at all, so the implementation is pretty simple (I wrote a .fnt parser, but it's now unused[1]).<p>[1] <a href="https://github.com/squeek502/resinator/blob/master/src/fnt.zig">https://github.com/squeek502/resinator/blob/master/src/fnt.z...</a></p>
]]></description><pubDate>Sat, 12 Oct 2024 23:40:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=41823756</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=41823756</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41823756</guid></item><item><title><![CDATA[New comment by squeek502 in "Every bug/quirk of the Windows resource compiler (rc.exe), probably"]]></title><description><![CDATA[
<p>I'm the author if anyone has questions</p>
]]></description><pubDate>Sat, 12 Oct 2024 21:52:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=41823024</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=41823024</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41823024</guid></item><item><title><![CDATA[New comment by squeek502 in "Zig Goals"]]></title><description><![CDATA[
<p>All of the listed goals have arguably been met, except:<p>- Auto-generating a `.h` file has temporarily regressed<p>- Friendly toward package maintainers is an ongoing goal<p>- "Memory zeroed by default" is not accurate, instead you must initialize all variables (to either some value or `undefined`)</p>
]]></description><pubDate>Fri, 07 Jun 2024 20:49:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=40612812</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=40612812</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40612812</guid></item><item><title><![CDATA[New comment by squeek502 in "I'm forking Ladybird and stepping down as SerenityOS BDFL"]]></title><description><![CDATA[
<p>SerenityOS's browser has never been named Ladybird AFAIK, it's always been just Browser.<p><a href="https://github.com/SerenityOS/serenity/tree/master/Userland/Applications/Browser">https://github.com/SerenityOS/serenity/tree/master/Userland/...</a><p>Ladybird was the name used for to the cross-platform version of the browser.<p><a href="https://awesomekling.github.io/Ladybird-a-new-cross-platform-browser-project/" rel="nofollow">https://awesomekling.github.io/Ladybird-a-new-cross-platform...</a></p>
]]></description><pubDate>Mon, 03 Jun 2024 10:38:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=40561286</link><dc:creator>squeek502</dc:creator><comments>https://news.ycombinator.com/item?id=40561286</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40561286</guid></item></channel></rss>