<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: Blaisorblade0</title><link>https://news.ycombinator.com/user?id=Blaisorblade0</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 03 May 2026 00:13:25 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Blaisorblade0" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by Blaisorblade0 in "Contract for Sale of Soul"]]></title><description><![CDATA[
<p>> I have never run across anyone with legal training using "spirit" language.<p>I know what you mean (and agree), but some spirit language seems required by the subject matter :-)...</p>
]]></description><pubDate>Sat, 06 Nov 2021 09:04:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=29128614</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=29128614</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29128614</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "“Pack it in, mathematicians, someone owes LLVM a million bucks”"]]></title><description><![CDATA[
<p>Throwing away large chunks of code is what optimizers exist for! Sadly, most discussions of UB only show when it "goes wrong" (has surprising results), not when it goes right!</p>
]]></description><pubDate>Sat, 21 Aug 2021 01:51:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=28253352</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=28253352</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28253352</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "Kind: A Modern Proof Language"]]></title><description><![CDATA[
<p>Do you have a link? That might mean a set of different things, ranging from very hard to impossible; strictly speaking, this seems to go against Godel's theorems tho there are standard workarounds.<p>I'm familiar with <a href="https://coq.discourse.group/t/alpha-announcement-coq-is-a-lean-typechecker/581" rel="nofollow">https://coq.discourse.group/t/alpha-announcement-coq-is-a-le...</a>, which was just hard, but it does not prove Lean consistent, it only lets Coq process the Lean stdlib.</p>
]]></description><pubDate>Thu, 12 Aug 2021 20:40:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=28161151</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=28161151</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28161151</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "Are Covid Restrictions the New TSA?"]]></title><description><![CDATA[
<p>@ceilingcorner's main point is that, no matter how healthy you live, an obese person is more likely to infect you. I don't know if I buy that, but I agree none of your answers seem to be on point.</p>
]]></description><pubDate>Fri, 30 Jul 2021 17:35:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=28010339</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=28010339</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28010339</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "The LaTeX Font Catalogue"]]></title><description><![CDATA[
<p>AFAIK, Wikipedia's info on the Latin Modern regressions from Blue Sky is accurate. Neither version is the original CM font or has had as much fine-tuning put into it, but (EDIT) the Blue Sky version was at least worked on by paid professionals.<p><a href="https://en.wikipedia.org/wiki/Computer_Modern#Latin_Modern" rel="nofollow">https://en.wikipedia.org/wiki/Computer_Modern#Latin_Modern</a></p>
]]></description><pubDate>Thu, 22 Jul 2021 19:51:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=27923436</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=27923436</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27923436</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "A Provenance-aware Memory Object Model for C [pdf]"]]></title><description><![CDATA[
<p>Great example, can I please borrow that? Is a link sufficient attribution?</p>
]]></description><pubDate>Sat, 19 Jun 2021 18:44:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=27563165</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=27563165</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27563165</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "A Provenance-aware Memory Object Model for C [pdf]"]]></title><description><![CDATA[
<p>Should have been more careful — in C and C++ they were implementation-defined. But both theory and practice did not mandate a concrete model — GCC already violates that and implements a mishmash of PVI and PNVI.<p>From N2176, Sec. 6.3.2.3, p. 5-6:
> An integer may be converted to any pointer type. Except as previously speciﬁed, the result is implementation-deﬁned, might not be correctly aligned, might not point to an entity of the referenced type, and might be a trap representation.<p>> Any pointer type may be converted to an integer type. Except as previously speciﬁed, the result is implementation-deﬁned. If the result cannot be represented in the integer type, the behavior is undeﬁned. The result need not be in the range of values of any integer type.<p>AFAICT, that doesn’t even guarantee that a roundtrip is the identity — which C++ mandates and is still the case:
<a href="http://eel.is/c++draft/expr.reinterpret.cast#5" rel="nofollow">http://eel.is/c++draft/expr.reinterpret.cast#5</a><p>EDIT: GCC does have those restrictions in place already:
<a href="https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Arrays-and-pointers-implementation.html#Arrays-and-pointers-implementation" rel="nofollow">https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Arrays-and-poi...</a><p>and since a while (earliest relevant docs I could find easily):
<a href="https://gcc.gnu.org/onlinedocs/gcc-3.1.1/gcc/Arrays-and-pointers-implementation.html#Arrays%20and%20pointers%20implementation" rel="nofollow">https://gcc.gnu.org/onlinedocs/gcc-3.1.1/gcc/Arrays-and-poin...</a><p>EDIT2: LLVM doesn’t document this “implementation-defined behavior” (or most others), even if docs are explicitly required by the standard; but it does use pointer provenance in practice already, but not in a way that’s easy to explain.</p>
]]></description><pubDate>Sat, 19 Jun 2021 13:22:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=27560235</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=27560235</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27560235</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "A Provenance-aware Memory Object Model for C [pdf]"]]></title><description><![CDATA[
<p>Why don’t they just disable optimizations then? I think that’s because they also want performance, even when it requires pointers to <i>not</i> be just addresses.<p>And pointers weren’t addresses before either. My favorite example of “pointers aren’t addresses” is this kind of code:<p>int a[…];
int b[…];
/* … */
a[i] = 0;
b[j] = 1;
return a[i];<p>Ignoring this discussion for a moment, wouldn’t you expect `return a[i];` to optimize to `return 0;` here? After all, `a` and `b` are disjoint arrays! I’m sure many would be disappointed if the compiler did not do that optimization, right?</p>
]]></description><pubDate>Sat, 19 Jun 2021 13:13:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=27560182</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=27560182</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27560182</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "A Provenance-aware Memory Object Model for C [pdf]"]]></title><description><![CDATA[
<p>You forget that basically _all_ int<->ptr casts were undefined before <i>and</i> that compilers already violated the concrete semantics.<p>But kudos for finding an official source of misinformation.<p>What’s more, the committee <i>already</i> gave license to implementations to be “overzealous”, as you call them<i>. That did contradict the standard, but they never bothered to fix it.<p>So it’s not the first time the C committee contradicts
itself and doesn’t bother to resolve the contradiction. So yes, you’re entitled to feel you’ve been lied to before, they’re just being honest now.<p></i> GCC has been using <a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_260.htm" rel="nofollow">http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_260.htm</a> to justify its use of provenance, even when it contradicts the standard.</p>
]]></description><pubDate>Sat, 19 Jun 2021 12:59:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=27560080</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=27560080</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27560080</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "A Provenance-aware Memory Object Model for C [pdf]"]]></title><description><![CDATA[
<p>But you can’t compare to the concrete model, because it’s not the status quo. That ship already sailed with C89 and strict aliasing. Ptr2int casts were never legal, and support was inconsistent.<p>For instance, GCC sometimes tracks pointer provenance through integers; this proposed change will make that clearly illegal.</p>
]]></description><pubDate>Sat, 19 Jun 2021 12:48:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=27560008</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=27560008</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27560008</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "A Provenance-aware Memory Object Model for C [pdf]"]]></title><description><![CDATA[
<p>First, this change is reducing undefined behavior* (EDIT: see below), and that undefined behavior (most casts between pointers and integers) did _not_ work reliably in practice. And in fact, the semantics they chose is rather sensible.<p>But yes, some code with UB which works for now might break. But that’s true whenever you upgrade your C compiler or use optimizations, so for correctness you shouldn’t do either! People working on certified embedded software have known that for long.<p>The real problem is that C users have been lied to. They’ve been taught the lie that C pointers are just addresses, that memory is an array of bytes, that relying on this lie is robust, and that this combination is fast. But this combination is impossible.<p>EDIT: officially some behavior was implementation-defined, but implementations made it undefined anyway — either officially or via bugs; links in subthread.</p>
]]></description><pubDate>Sat, 19 Jun 2021 12:44:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=27559985</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=27559985</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27559985</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "Renaming Coq"]]></title><description><![CDATA[
<p>> Some professionally oppressed people contact a project, provide mostly secret evidence to members of the project's progressive faction.<p>> After the re-naming they are never heard of again.<p>Beyond all other corrections, the people complaining here are professional Coq users of both genders.</p>
]]></description><pubDate>Fri, 09 Apr 2021 02:23:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=26746067</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=26746067</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26746067</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "Renaming Coq"]]></title><description><![CDATA[
<p>Coq’s name _was_ meant to be offensive to English speakers. And the team does want to avoid names that are offensive in other languages, as EVERYBODY does when choosing international brand names.</p>
]]></description><pubDate>Fri, 09 Apr 2021 02:09:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=26746014</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=26746014</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26746014</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "Renaming Coq"]]></title><description><![CDATA[
<p>We _know_ it doesn’t just come from Coquand’s name, because Gérard Huet very clearly said so.</p>
]]></description><pubDate>Fri, 09 Apr 2021 02:06:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=26746001</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=26746001</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26746001</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "Renaming Coq"]]></title><description><![CDATA[
<p>The thread is full of stories like “woman says she works on Coq and gets harassed” or “woman foresees this problem and avoids learning Coq” or “Coq teacher (male or female) struggles to talk about Coq because students are uncomfortable”.<p>You seem to suggest those people train everybody around them to change behavior.<p>Meanwhile, every company picking a brand name will do the smart thing and avoid anything ridiculous in any of their target market; yet somehow if this happens in public it’s a scandal.</p>
]]></description><pubDate>Fri, 09 Apr 2021 02:04:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=26745994</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=26745994</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26745994</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "Donald Knuth was framed"]]></title><description><![CDATA[
<p>Knuth also uses assembly in his book on algorithms.<p>But generally, algorithms researchers seem to not care about abstractions, as witnessed by TeX and LaTeX in multiple ways.<p>That's probably because <i>when you really need to invent a fancy algorithm</i> (which is their job), that will often not be built out of reusable components.</p>
]]></description><pubDate>Tue, 25 Feb 2020 14:09:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=22413290</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=22413290</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22413290</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "Where Sci-Hub Is"]]></title><description><![CDATA[
<p>That sounds weird; all journals I know are paid <i>either</i> by readers <i>or</i> by the submitter (the latter is called gold open access).</p>
]]></description><pubDate>Tue, 25 Feb 2020 13:50:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=22413141</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=22413141</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22413141</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "ZZ is a modern formally provable dialect of C"]]></title><description><![CDATA[
<p>"If it compiles it works" is just not true, just a very bad description for a true phenomenon. If there weren’t people repeating that seriously, you’d be attacking a strawman. People do say that, but that’s on those people, not Rust.</p>
]]></description><pubDate>Fri, 07 Feb 2020 11:32:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=22265017</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=22265017</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22265017</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "Arend: Theorem Prover Based on Homotopy Type Theory by JetBrains"]]></title><description><![CDATA[
<p>Good point, but never seen typeclass coherence with dependent types (in either Coq or the various versions of the Agda design). Not sure for Isabelle.</p>
]]></description><pubDate>Sun, 11 Aug 2019 11:13:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=20667594</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=20667594</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20667594</guid></item><item><title><![CDATA[New comment by Blaisorblade0 in "Arend: Theorem Prover Based on Homotopy Type Theory by JetBrains"]]></title><description><![CDATA[
<p>Having used both, Coq proof terms aren't Agda proof terms. Coq provides neither "real" dependent pattern matching nor edit-time tactics. Long-term, the vision in Agda would be to support metaprogramming closer to what you do in FP languages. But even now, there are domains where Agda is competitive (tho they seem to be in mechanizing mathematical  theories, as in, things designed by mathematicians to be compact). To prove software correct, you'll likely end up with  with proofs you'll want to automate.<p>Regarding compatibility: neither Coq nor Agda used to have much of it; nowadays Coq is maintained together with a large set of community projects, and code is much more stable. Still tons to do.</p>
]]></description><pubDate>Sun, 11 Aug 2019 11:01:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=20667556</link><dc:creator>Blaisorblade0</dc:creator><comments>https://news.ycombinator.com/item?id=20667556</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20667556</guid></item></channel></rss>