<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: inkyoto</title><link>https://news.ycombinator.com/user?id=inkyoto</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 06 Jun 2026 23:45:33 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=inkyoto" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by inkyoto in "Aging and Eye Problems"]]></title><description><![CDATA[
<p>> I got my first bifocals last year. I got the "no line" variety and, so far, I hate them.<p>They are called progressives (or multi-focal – depending on whom you speak with).<p>Progressives come in a few «ranges»: near-range, mid-range and all-purpose. There are also «premium» options available, although I am not entirely sure how much different they actually are.<p>I have found that having two separate pairs of progressives (near-range for reading, laptop use and all-purpose for everything else) works the best. All of them can also be had as the transition variety and with different tint colours, thus obviating the need for a separate pair of shades.<p>In fact, when I first tried the near-range progressives some 5 years ago, it was an eye-opener in the almost literal sense of the word – the laptop screen flattened and became bigger despite obviously not changing its physical size. It was something that I had struggled with for a long time before the progressives entered mainstream. At high prescription numbers, the lenses for myopia start distorting the true shape of objects which creates mild to substantial visual discomfort, and near-range progressives fix that.<p>Another source of discomfort might be the suboptimal «Add» number on the script for progressives. This can be fixed by going to an optometrist clinic rather that a street optometrist (or find a reputable and good one first). If the «Add» is too small, the progressives will make little difference compared to conventional lenses, and, if it is too big, they will make it difficult to see in the distance.<p>Based on own subjective experience, I can't recommend the progressives enough, although a little bit of fine-tuning might be required (none in my case).</p>
]]></description><pubDate>Sat, 06 Jun 2026 02:48:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=48420922</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=48420922</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48420922</guid></item><item><title><![CDATA[New comment by inkyoto in "Consequences of passing too few register parameters to a C function"]]></title><description><![CDATA[
<p>The vast majority of virtual machines, including JVM and .NET, are stack based.<p>And, whilst compiling C and C++ the JVM / .NET CLR byte codes is very uncommon, both VM's have become very popular compilation targets for other programming languages.</p>
]]></description><pubDate>Thu, 30 Apr 2026 12:55:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47961699</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47961699</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47961699</guid></item><item><title><![CDATA[New comment by inkyoto in "Consequences of passing too few register parameters to a C function"]]></title><description><![CDATA[
<p>Rotating register windows are a distinguishing feature of the Berkeley RISC design, which predates VLIW by at least a decade.</p>
]]></description><pubDate>Thu, 30 Apr 2026 12:36:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47961497</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47961497</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47961497</guid></item><item><title><![CDATA[New comment by inkyoto in "GPT-5.5"]]></title><description><![CDATA[
<p>> "PLEASE COME FROM" is one of the eldritch horrors of software development.<p>The most enigmatic control flow statements in INTERCAL, however, remain PLEASE GIVE UP and DO ABSTAIN FROM – a most exalted celebration of pure logic and immaculate reason.</p>
]]></description><pubDate>Fri, 24 Apr 2026 12:00:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47889047</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47889047</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47889047</guid></item><item><title><![CDATA[New comment by inkyoto in "OpenBSD on Motorola 88000 Processors"]]></title><description><![CDATA[
<p>Once again – respectfully – this remains largely twaddle as the facts themselves state otherwise.<p>Even at the microarchitecture level, the hard part is not raw CISC-ness but irregularity and compatibility baggage. In that respect x86 was usually the uglier customer.<p>High-end x86 implementations ultimately scaled further because Motorola had less market pressure and fewer resources than Intel to keep throwing silicon at the problem, not because m68k was somehow harder to optimise.<p>Later high-performance m68k cores did what later x86 cores also did: translate the architected variable-length instruction stream into a more regular internal form. Motorola’s own MC680<i>60</i> manual says the variable-length M68000 instruction stream is internally decoded into a fixed-length representation and then dispatched to dual pipelined RISC execution engines. That is not evidence of an ISA that was uniquely resistant to microarchitectural optimisation. It is evidence that Motorola used the same broad trick that became standard elsewhere: hide ISA ugliness behind a cleaner internal machine.<p>There is also a deeper point. The m68k ISA was rich, but it was comparatively regular and systematic at the architectural level. The m68k manuals show a clean register model and – <i>notably</i> – consistent condition-code behaviour across instruction forms. That kind of regularity is exactly what tends to help both compiler backends <i>and hardware decode/control design</i>. By contrast, x86’s biggest hardware pain historically came not from being «less CISC» than m68k, but from being more irregular and more burdened by backward compatibility.<p>Lastly, but not least importantly, CPU's were not the core business of Motorola – it was a large communications-and-semiconductors company, with the CPU's being just one product family within a much larger semiconductor business.<p>There was no clear understanding within the company of the rising importance of CPU's (and computing in general), hence the chronic underinvestment in the CPU product line – m68k did not see the light of highly advanced, performant designs purely because of that.</p>
]]></description><pubDate>Sun, 29 Mar 2026 20:14:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47566797</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47566797</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47566797</guid></item><item><title><![CDATA[New comment by inkyoto in "OpenBSD on Motorola 88000 Processors"]]></title><description><![CDATA[
<p>Respectfully, this is nonsense.<p>«More CISC-y» does not by itself mean «harder to optimise for». For compilers, what matters far more is how regular the ISA is: how uniform the register file is, how consistent the condition codes are, how predictable the addressing modes are, and how many nasty special cases the backend has to tiptoe around.<p>The m68k family was certainly CISC, but it was also notably regular and fairly orthogonal (the legacy of the PDP-11 ISA, which was a major influence on m68k). Motorola’s own programming model gives one 16 programmer-visible 32-bit registers, with data and address registers used systematically, and consistent condition-code behaviour across instructions.<p>Contrast that with old x86, which was full of irregularities and quirks that compilers hate: segmented addressing, fewer truly general registers (5 general purpose registers), multiple implicit operands, and addressing rules tied to specific registers and modes. Even modern GCC documentation still has to mention x86 cases where a specific register role reduces register-allocation freedom, which is exactly the sort of target quirk that makes optimisation more awkward.<p>So…<p><pre><code>  68k: complex, but tidy

  x86: complex, and grubby
</code></pre>
What worked for x86, though, was the sheer size of the x86 market, which resulted in better compiler support, more tuning effort, and vastly more commercial optimisation work than m68k. But that is not the same claim as «68k was harder to optimise because it was more CISC-y».</p>
]]></description><pubDate>Sun, 29 Mar 2026 18:06:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47565546</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47565546</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47565546</guid></item><item><title><![CDATA[New comment by inkyoto in "Migrating the American express payment network, twice"]]></title><description><![CDATA[
<p>> Since when were payment networks latency sensitive?<p>Since the advent of e-commerce, POS-networking and fraud detection systems in 1990's-2000's.<p>User-facing and authorisation path are highly latency sensitive. It includes tap-to-pay, online checkout, issuer authorisation, fraud decisioning, and instant payment confirmation – even moreso for EFT payments.<p>> […] 2-5 seconds more from card presentation to getting approval back.<p>This is the mid-1990's level QoS when smaller merchants connected the acquirer bank via a modem connection, and larger ones via ISDN.<p>Today, payments are nearly instant in most cases, with longer than one-second card payment flows falling into the exceptions territory or inadequate condition of the payment infrastructure.</p>
]]></description><pubDate>Mon, 23 Mar 2026 07:07:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47486296</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47486296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47486296</guid></item><item><title><![CDATA[New comment by inkyoto in "Centuries of selective breeding turned wild cabbage into different vegetables"]]></title><description><![CDATA[
<p>As well as to eggplant and belladonna.</p>
]]></description><pubDate>Sun, 15 Mar 2026 06:08:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47384748</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47384748</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47384748</guid></item><item><title><![CDATA[New comment by inkyoto in "RISC-V Is Sloooow"]]></title><description><![CDATA[
<p>PDP-11 was a major source of inspiration for m68k architecture designers. The influence can be seen in multiple places, starting from the orthogonal ISA design down to instruction mnemonics.<p>It is quite likely that not allowing the misaligned access was also influenced by PDP-11.</p>
]]></description><pubDate>Wed, 11 Mar 2026 10:09:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47333707</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47333707</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47333707</guid></item><item><title><![CDATA[New comment by inkyoto in "RISC-V Is Sloooow"]]></title><description><![CDATA[
<p>PDP-11, m68k – to name a few, did not allow misaligned access to anything that was not a byte.<p>Neither are RISC nor modern.</p>
]]></description><pubDate>Wed, 11 Mar 2026 06:59:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47332441</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47332441</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47332441</guid></item><item><title><![CDATA[New comment by inkyoto in "RISC-V Is Sloooow"]]></title><description><![CDATA[
<p>If I'm not mistaken, microcode is a thing at least on Intel CPU's, and that is how they patched Spectre, Meltdown and other vulnerabilities – Intel released a microcode update that BIOS applies at the cold start and hot patches the CPU.<p>Maybe other CPU's have it as well, though I do not have enough information on that.</p>
]]></description><pubDate>Wed, 11 Mar 2026 05:28:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=47331998</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47331998</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47331998</guid></item><item><title><![CDATA[New comment by inkyoto in "Modernizing swapping: virtual swap spaces"]]></title><description><![CDATA[
<p>> In Linux the default swap behaviour is to also swap out the memory mapped to the executable file, not just memory allocated by the process […] I believe both Windows and macOS don't swap out code pages, so the applications remain responsive, at the of (potentially) lower swap efficiency<p>Linux does not page out code pages into the swap. You might be conflating page reclamation with swapping instead.<p>In Linux, executable «.text» pages are mapped[0] as file-backed pages, not anonymous memory, so when the kernel needs to reclaim RAM it normally drops those pages and reloads them from the executable file on the next page fault once they are accessed again (i.e. on demand) rather than writing them to swap.<p>In this particular regard, Linux is no different from any other modern UNIX[1] kernel (*BSD, Solaris, AIX and may others).<p>[0] Via mmap(2) in argv[0], essentially.<p>[1] Modern UNIX is mid-1990's and onwards.</p>
]]></description><pubDate>Sun, 08 Mar 2026 06:05:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47294953</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47294953</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47294953</guid></item><item><title><![CDATA[New comment by inkyoto in "Modernizing swapping: virtual swap spaces"]]></title><description><![CDATA[
<p>> In 1970 it might have been the only way to provide a flexible API, but nowadays we have a great variety of extensible serialization formats better than "struct".<p>Actually, fork(2) was very inefficient in the 1970's and for another decade, but that changed with BSD 4.3 which shipped an entirely new VMM in 1990 in 4.3-Reno BSD, which – subsequently – allowed a CoW fork(2) to come into existence in 4.4 BSD in 1993.<p>Two changes sped fork (2) up dramatically, but before then it entailed copying not just process' structs but also the entire memory space upon a fork.</p>
]]></description><pubDate>Sun, 08 Mar 2026 02:17:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47293692</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47293692</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47293692</guid></item><item><title><![CDATA[New comment by inkyoto in "Ada 2022"]]></title><description><![CDATA[
<p>What are we comparing Ada to… PHP?</p>
]]></description><pubDate>Sat, 07 Mar 2026 05:28:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47284769</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47284769</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47284769</guid></item><item><title><![CDATA[New comment by inkyoto in "Reading English from 1000 AD"]]></title><description><![CDATA[
<p>I do not need to search the internet as I am fluent at German as well.<p>The knowledge of Modern High German helps little to none as far as the comprehension of Old English is concerned. From a modern German speaker's perspective, Old English – with a relatively small number of exceptions – is gibberish.</p>
]]></description><pubDate>Mon, 02 Mar 2026 10:58:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47216356</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47216356</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47216356</guid></item><item><title><![CDATA[New comment by inkyoto in "Reading English from 1000 AD"]]></title><description><![CDATA[
<p>> The "German cognate is closer" is not helpful!<p>It is not helpful because comparing English from 1000 AD with Modern High German is the wrong premise to start off with.<p>The correct and more interesting comparison would be with Old High German from around the same time although it did not indicate the umlaut in the spelling at the time (which would happen 400-500 years later) – even though the i-umlaut had already developed.<p>So «schön» was «scōni» (or «sconi») in OHG. Also, ö and ü developed from /o/ and /u/, so juxtaposing them with English ē is likely incorrect.</p>
]]></description><pubDate>Sat, 28 Feb 2026 07:02:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47191455</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47191455</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47191455</guid></item><item><title><![CDATA[New comment by inkyoto in "New accounts on HN more likely to use em-dashes"]]></title><description><![CDATA[
<p>Before the wide adoption of Unicode in mainstream operating systems, quite a few people used -- (two ASCII minus signs) to differentiate between a hyphen and a dash (of either pedigree), and some people used -- in emails and online where a dash was required.<p>Most think that it came from TeX, which had -- (for an en dash) and --- (for an em dash, although I don't think I have ever observed it out in the wild outside TeX), but in fact, the habit well predates TeX and goes all the way back to typewriters where typists habitually hit two hyphens in a row to approximate an em dash. The approximated em dash was described in hard-copy manuscript preparation rules such as The Chicago Manual of Style.<p>So, if you have ever used a typewriter or TeX, you can claim an even richer than 20 years’ heritage of using the em dash.</p>
]]></description><pubDate>Thu, 26 Feb 2026 05:47:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47162338</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47162338</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47162338</guid></item><item><title><![CDATA[New comment by inkyoto in "-fbounds-safety: Enforcing bounds safety for C"]]></title><description><![CDATA[
<p>> […] C optimization tricks are hacks, the fact godbolt exists is proof that C is not meant to be optimizable at all, it is brute force witchcraft.<p>> At a certain point though, something's gotta give, the compiler can do guesswork, but it should do no more, if you have to add more metadata then so be it it's certainly less tedious than putting pragmas and _____ everywhere, some C code just looks like the writings of an insane person.<p>There is not even a single correct or factual statement in cited strings of words.<p>C optimisation is not «hacks» or «witchcraft»; it is built on decades of academic work and formal program analysis: optimisers use data-flow analysis over lattices and fixed points (abstract interpretation) and disciplined intermediate representations such as SSA, and there is academic work on proving that these transformations preserve semantics.<p>Modern C is also deliberately designed to permit optimisation under the as-if rule, with UB (undefined behaviour) and aliasing rules providing semantic latitude for aggressive transformations. The flip side is non-negotiable: compilers can't «guess» facts they can't prove, and many of the most valuable optimisations require guarantees about aliasing, alignment, loop independence, value ranges, and absence of UB that are often not derivable from arbitrary pointer-heavy C, especially under separate compilation.<p>That is why constructs such as «restrict», attributes and pragmas exist: they are not insanity, they are explicit semantic promises or cost-model steering that supply information the compiler otherwise must conservatively assume away.<p>«metadata instead» is the same trade-off in a different wrapper, unless you either trust it (changing the contract) or verify it (reintroducing the hard analysis problem).<p>Godbolt exists because these optimisations are systematic and comparable, not because optimisation is impossible.<p>Also, directives are not new, C-specific embarrassment: ALGOL-68 had «pragmats» (the direct ancestor of today’s «pragma» terminology), and PL/I had longstanding in-source compiler control directives, so this mechanism is decades older than and predates modern C tooling.</p>
]]></description><pubDate>Sat, 21 Feb 2026 01:25:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47096452</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=47096452</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47096452</guid></item><item><title><![CDATA[New comment by inkyoto in "Europe's $24T Breakup with Visa and Mastercard Has Begun"]]></title><description><![CDATA[
<p>Visa/MC cozied up to major national banks in different countries (not just in the EU) and offered them a sweet deal the banks could not resist: ditch the national payment network in favour of our own cards and we will give a slice of each transaction fee. The transaction fees are tiered, with one part of it going to the payment network (Visa/MC) and the bank (card issuer) keeping the other part. For cross-border transactions, there is also (of course) the exchange rate that comes into play, and this is where each bank buffs its transaction profit margin up even further (as each bank sets its own exchange rate rather than using the interbank exchange rate), so…<p>… banks saw big, no, BIG $$$ and lost their minds. The transition was rather swift: between the very late 2000's and approximately 2015 (give or take a few years), the transition had been complete. Credit cards became a massively profitable and booming business for the banks, with all sorts of loyalty programmes and bonuses (at consumers’ expense, of course, as the banks also jacked up interest rates on revolving credits). Note that all of this took place before national governments stepped in to regulate the transaction fees.<p>This coincided with the growing allergy of Western governments to owning any critical infrastructure (including payment networks) and the rising trend of outsourcing as much as possible to the private sector. As it is easy to imagine, it did not take long for the national banks already being in bed with Visa/MC to convince their respective national governments to stop investments in maintenance and enhancement of domestic payment networks and delegate the payment processing to the cartel: «they can do it better than you do».<p>… all of which has led us to where we are right now. Technically, national payments are still alive, but they are more in the contained mode of operation and not in active use or development.</p>
]]></description><pubDate>Wed, 11 Feb 2026 00:49:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=46969316</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=46969316</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46969316</guid></item><item><title><![CDATA[New comment by inkyoto in "Software factories and the agentic moment"]]></title><description><![CDATA[
<p>The math is a bit off.<p>One day amounts to 24 hours.<p>Assuming no overtime, one day translates into 3x 8 hour shifts, or 3x engineers. Suddenly, $260k a year buys 3x engineers.<p>Now, assuming that the dark factory stuff can actually work as conjectured, it will work 24x7, 365 days a year, it does not require annual leave, sick leave, observance of public holidays etc. So $365k (adjusted for 24x7, 365) works out to be a cheap deal.</p>
]]></description><pubDate>Sun, 08 Feb 2026 05:36:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46931613</link><dc:creator>inkyoto</dc:creator><comments>https://news.ycombinator.com/item?id=46931613</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46931613</guid></item></channel></rss>