<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: sigsev_251</title><link>https://news.ycombinator.com/user?id=sigsev_251</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 08 Apr 2026 00:20:49 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=sigsev_251" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by sigsev_251 in "WorstFit: Unveiling Hidden Transformers in Windows ANSI"]]></title><description><![CDATA[
<p>> Outdated documentation is pretty normal unfortunely, even .NET suffers from that nowadays.<p>That's really unfortunate.<p>> Not as bad as Apple nowadays though, quite far from Inside Inside Macintosh days.<p>Funny story, I know a guy who wanted to write a personal Swift project for an esoteric spreadsheet format and the quality of the documentation of SwiftUI made him ragequit. After that, he switched to kotlin native and gtk and he is much happier.<p>> Personally, I think that with the improvements on low level coding and AOT compilation from managed languages, we are reaching local optimum, where C and C++ are good enough for the low level glue, C23 and C++23 (eventually C++26 due to static reflection) might be the last ones that are actually relevant.<p>I agree on the managed language thing but, I mean, the fact that other languages are getting more capable with low level resources does not mean that improvements in C/C++ are a bad idea and will not be used. In fact, I think that features like the transcoding functions in <stdmchar.h> in C2y (ironically those are relevant to the current HN post) are useful to those languages too! So even if C, C++ and fortran are just used for numerical kernels, emulators, hardware stuff, glue code and other "dirty" code advancements made to them are not going wasted.</p>
]]></description><pubDate>Fri, 10 Jan 2025 15:43:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=42656595</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=42656595</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42656595</guid></item><item><title><![CDATA[New comment by sigsev_251 in "WorstFit: Unveiling Hidden Transformers in Windows ANSI"]]></title><description><![CDATA[
<p>I think the documentation is outdated given that C11 atomics [1] and threads [2] are available for more than a year now. Same goes for pretty much everything MSVC frontend related stuff (I've yet to try which C++23 features are supported at the moment, but they've secretly added support for C23 features like typeof and attributes, as well as GNU Statement Expressions).<p>[1]: <a href="https://devblogs.microsoft.com/cppblog/c11-atomics-in-visual-studio-2022-version-17-5-preview-2/" rel="nofollow">https://devblogs.microsoft.com/cppblog/c11-atomics-in-visual...</a><p>[2]: <a href="https://devblogs.microsoft.com/cppblog/c11-threads-in-visual-studio-2022-version-17-8-preview-2/" rel="nofollow">https://devblogs.microsoft.com/cppblog/c11-threads-in-visual...</a></p>
]]></description><pubDate>Fri, 10 Jan 2025 12:26:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=42655029</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=42655029</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42655029</guid></item><item><title><![CDATA[New comment by sigsev_251 in "Some programming language ideas"]]></title><description><![CDATA[
<p>Why would you need multiple allocations?<p>edit:
Isn't it just:<p><pre><code>  float (*arr)[m][n] = malloc(sizeof(*arr));</code></pre></p>
]]></description><pubDate>Thu, 09 Jan 2025 17:27:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=42647835</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=42647835</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42647835</guid></item><item><title><![CDATA[New comment by sigsev_251 in "Some programming language ideas"]]></title><description><![CDATA[
<p>Yes, but is one allowed to move a pointer inside it as they see fit? On a one-dimensional array, one can iterate through it starting with a pointer pointing to the first element and ending with a pointer pointing one position past the last element (which the user is not allowed to dereference). For multidimensional arrays, the element type is an array too (with a smaller rank than the original one), so one could perform that type of iteration with a pointer to an array. My question is whether a pointer to the underlying scalar type can freely move inside the multidimensional array without UB, since it may have to actually leave the array it was originally part of. If that's not allowed, how could one build slices and other view types?</p>
]]></description><pubDate>Thu, 09 Jan 2025 17:02:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=42647596</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=42647596</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42647596</guid></item><item><title><![CDATA[New comment by sigsev_251 in "Some programming language ideas"]]></title><description><![CDATA[
<p>Are C multidimensional arrays guaranteed to be contiguous in memory? In practice they are, but can one iterate through them just by incrementing a pointer which points to the first element without UB?</p>
]]></description><pubDate>Thu, 09 Jan 2025 16:46:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=42647417</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=42647417</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42647417</guid></item><item><title><![CDATA[TinyCC Memory and Bounds Checks]]></title><description><![CDATA[
<p>Article URL: <a href="https://bellard.org/tcc/tcc-doc.html#Bounds">https://bellard.org/tcc/tcc-doc.html#Bounds</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42115264">https://news.ycombinator.com/item?id=42115264</a></p>
<p>Points: 8</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 12 Nov 2024 13:23:08 +0000</pubDate><link>https://bellard.org/tcc/tcc-doc.html#Bounds</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=42115264</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42115264</guid></item><item><title><![CDATA[New comment by sigsev_251 in "The Swift compiler is slow due to how types are inferred"]]></title><description><![CDATA[
<p>Thank you!</p>
]]></description><pubDate>Fri, 14 Jun 2024 15:06:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=40681588</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=40681588</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40681588</guid></item><item><title><![CDATA[New comment by sigsev_251 in "The Swift compiler is slow due to how types are inferred"]]></title><description><![CDATA[
<p>Do you happen to have any source/book on why you can't use anything but a conservative gc on C-like languages? I would really like to know why that's the case.</p>
]]></description><pubDate>Fri, 14 Jun 2024 12:47:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=40680386</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=40680386</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40680386</guid></item><item><title><![CDATA[Mitigating Unexpected Arithmetic Overflow]]></title><description><![CDATA[
<p>Article URL: <a href="https://lore.kernel.org/lkml/202404291502.612E0A10@keescook/">https://lore.kernel.org/lkml/202404291502.612E0A10@keescook/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40337769">https://news.ycombinator.com/item?id=40337769</a></p>
<p>Points: 10</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 12 May 2024 21:33:27 +0000</pubDate><link>https://lore.kernel.org/lkml/202404291502.612E0A10@keescook/</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=40337769</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40337769</guid></item><item><title><![CDATA[New comment by sigsev_251 in "Java 23: The New Features Are Officially Announced"]]></title><description><![CDATA[
<p>There is a compatibilty chart:
<a href="https://www.graalvm.org/python/compatibility/" rel="nofollow">https://www.graalvm.org/python/compatibility/</a></p>
]]></description><pubDate>Wed, 17 Apr 2024 14:27:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=40065124</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=40065124</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40065124</guid></item><item><title><![CDATA[New comment by sigsev_251 in "Cranelift code generation comes to Rust"]]></title><description><![CDATA[
<p>There is always qbe if you need something simpler</p>
]]></description><pubDate>Mon, 18 Mar 2024 16:18:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=39746444</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=39746444</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39746444</guid></item><item><title><![CDATA[New comment by sigsev_251 in "What part of Rust compilation is the bottleneck?"]]></title><description><![CDATA[
<p>> At least it does generics now<p>Not in gccgo</p>
]]></description><pubDate>Sat, 16 Mar 2024 19:20:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=39728682</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=39728682</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39728682</guid></item><item><title><![CDATA[New comment by sigsev_251 in "What part of Rust compilation is the bottleneck?"]]></title><description><![CDATA[
<p>Maybe cranelift will help with this. Faster compile times is one of its selling points.</p>
]]></description><pubDate>Sat, 16 Mar 2024 14:29:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=39726269</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=39726269</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39726269</guid></item><item><title><![CDATA[New comment by sigsev_251 in "What part of Rust compilation is the bottleneck?"]]></title><description><![CDATA[
<p>> using LLVM backends<p>Wait, there is an LLVM based Go toolchain? I thought the Go crowd was known for their NIH obsession.</p>
]]></description><pubDate>Sat, 16 Mar 2024 14:24:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=39726205</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=39726205</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39726205</guid></item><item><title><![CDATA[A comparison of C compilers targetting STM8]]></title><description><![CDATA[
<p>Article URL: <a href="http://www.colecovision.eu/stm8/compilers.shtml">http://www.colecovision.eu/stm8/compilers.shtml</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=39726132">https://news.ycombinator.com/item?id=39726132</a></p>
<p>Points: 19</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 16 Mar 2024 14:15:31 +0000</pubDate><link>http://www.colecovision.eu/stm8/compilers.shtml</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=39726132</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39726132</guid></item><item><title><![CDATA[New comment by sigsev_251 in "Compiling History: A brief tour of C compilers"]]></title><description><![CDATA[
<p>- Though freeware and not foss, there is also pellesc over at Windows land, with almost full C23 support.<p>- For small 8 bit systems, SDCC is an excellent choice, supporting even C23 features! Also its lead maintainer is a committee member with really useful contributions to the standard.<p>- I have heard the RiscOS compiler is pretty cool and supports modern standards. That one uses the Norcroft frontend.<p>I agree with you in that we need a production level C compiler written in C. Though that is not a simple task and the C community nowadays prefers to engage on infighting over pedantic issues or rust rather than working together. A simple example of this is the lack of a modern library ecosystem, while everyone and their mother has their own custom build system. Even though C is sold as a performant language, there isn't a single parallelism library like OneTBB, Kokkos or HPX over at C++. Don't get me started on vendors not offering good standard support (Microsoft, macos-libc, OpenBSD libc)...<p>One correction though, cparser uses libfirm as a backend, not qbe. Also the author of chibicc has stopped writing that book AFAIK.<p>Bonus non-c based entries:
- The zig community is working on arocc. Judging by the awesomeness of zig cc, these are really good news.
- Nvidia offers their EDG based nvc with OpenACC support for free these days, which is cool.<p>Edit: formatting</p>
]]></description><pubDate>Wed, 14 Feb 2024 08:25:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=39367719</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=39367719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39367719</guid></item><item><title><![CDATA[New comment by sigsev_251 in "The C bounded model checker: criminally underused"]]></title><description><![CDATA[
<p>A possible answer is that one could modify n inside the function body, which means that the length is lost. But honestly, one could just use const to avoid this. Though, pointers to VLAs are really useful and convenient when allocating dynamic arrays, especially multidimensional.</p>
]]></description><pubDate>Thu, 01 Feb 2024 09:53:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=39214296</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=39214296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39214296</guid></item><item><title><![CDATA[New comment by sigsev_251 in "The C bounded model checker: criminally underused"]]></title><description><![CDATA[
<p>I get what you mean and I'm not saying that not having extra operators is a dealbreaker that will make spans unusable. I just find it more pleasant/convenient for the following reasons:
1. Helps clarify intent
2. Makes teaching the feature easier, since it's name is closer to what the user wants to write. Also, rejecting pointers helps people not make mistakes.
3. Keeps sizeof consistent. The operator sizeof is supposed to return the size of the storage occupied by the object. A span is a pointer and some sizes (one could also design a span to be strided, meaning more integers to the mix), so sizeof could just return the size of that pointer ond the integers. Having sizeof be somewhat overloaded for spans could be surprising to nome people.
But again, just having sizeof is fine</p>
]]></description><pubDate>Thu, 01 Feb 2024 09:45:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=39214248</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=39214248</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39214248</guid></item><item><title><![CDATA[New comment by sigsev_251 in "The C bounded model checker: criminally underused"]]></title><description><![CDATA[
<p>Very nice comment. This was a blocking point I fell onto too. There is another option, to not allow spans on the return channel, but I don't know how people who handle resources with lifetimes that exceed the function scope will take this. Just like you, I'm curious to see what how this will be solved.</p>
]]></description><pubDate>Thu, 01 Feb 2024 09:30:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=39214151</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=39214151</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39214151</guid></item><item><title><![CDATA[New comment by sigsev_251 in "The C bounded model checker: criminally underused"]]></title><description><![CDATA[
<p>(Just to be clear, I am not the author of the draft I posted in the parent comment, but it's the feature I want the most to be added in C2y. I was actually meaning of writting a proposal, but realized that I don't know a thing about compilers and language design.)
I have examined many other ways one could add such functionality in C. I found that the most pleasant one is a combination of your syntax and some runtime operators to retrieve the length. As for the lack of implementation burden, I would send an email to thephd in your position. I think that having that comment coming from you would be really beneficial for the paper.</p>
]]></description><pubDate>Wed, 31 Jan 2024 04:15:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=39199834</link><dc:creator>sigsev_251</dc:creator><comments>https://news.ycombinator.com/item?id=39199834</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39199834</guid></item></channel></rss>