We're in early February 2025 [edit:2026] and the article was written on Dec 23, 2025, which makes it less than two months old. I think it's ok not to include a year in the submission title in that case.
I personally understand a year in the submission as a warning that the article may not be up to date.
When I was reviewing such papers, I didn't bother checking that 30+ citations were correctly indexed. I focused on the article itself, and maybe 1 or 2 citations that are important. That's it. For most citations, they are next to an argument that I know is correct, so why would I bother checking. What else do you expect? My job was to figure out if the article ideas are novel and interesting, not if they got all their citations right.
Would those filters be keyword-based only? One benefit of an LLM-based filter I can imagine is that it has a much better understanding of the meaning of text.
Really simple fix: social pressure and expectations should be that every company that uses open source pays a fixed amount of their revenue (is 0.1% low enough to be negligible for the companies). Companies that don't should shunned.
In my dream world, you take that book plus information about yourself (how good of a programmer you already are), feed that into AI and get a customized version that is much better for you. Possibly shorter. Skips boring stuff you know. And slows down for stuff you have never been exposed to. Everyone wins.
This is interesting if quite incomplete (as noted in the end conclusion). CPU re-order buffers turn what you think as mostly sequential execution into a massively parallel engine. Data memory access, perfecting, speculative execution, etc. But if you are running a micro-bencmark with a tight loop of millions of iterations, then understanding the pipeline dependencies and dispatching can provide good insights.
That blog post left me hungry for more. I was expecting Daniel Lemire to provide a SIMD crazy optimized version that shows the default browser implementations are sub-optimal. But it's not in this article. Anyone knows?
That example is too simple for me to grasp it. How would you code a function that iterates over an array to compute its sum. No cheating with a built-in sum function. If you had to code each addition, how would that work? Curious to learn (I probably could google this or ask Claude to write me the code).
My definition of AGI is when AI doesn't need humans anymore to create new models (to be specific, models that continue the GPT3 -> GPT4 -> GPT5 trend).
By my definition, once that happens, I don't really see a role for Microsoft to play. So not sure what value their legal deal has.
Interesting. Is there a picture that explains how the layers talk to each other?
Is there a VM system? How does message passing work, what kinds of protections are between tasks?
I have had many ideas for such kernels over the years, but not the patience yet to implement any of them. I wonder if Claude could help me with generating a kernel in less than a day.
Instead of just saying: rsync on my system is version 3.2, have you tried copy/pasting rsync --help? In my experience, that would be enough for the AI to figure out what it needs to do and which arguments to use. I don't treat AI like an oracle, I treat it like an eager CS grad. I must give it the right information for the task.
There never was a problem generating documentation from code
That doesn't match my experience at all. Before AI, generating documentation from code was either getting some embedded comments for a function call, or just list a function's arguments.
AI reads the implementation, reads the callers and callees, and provides much smarter documentation, with context. Something sorely lacking from previous solutions. Is it sometimes not completely accurate? Probably. But still a giant step forward.
>This analysis would suggests a 2.7× speedup vs. hash tables: 128 bytes vs. 48 bytes of memory traffic per uint64
It's ok to waste bandwidth, it doesn't directly impact performance. However, the limitation you are hitting (which directly impacts performance) is the number of memory accesses you can do (per cycle for instance) and the latency of each memory access. With linear access, after some initial read, data is ready instantly for the CPU to consume. For scattered data (hash tables), you have to pay a penalty on every read.
So the bandwidth ratio is not the right factor to look at to estimate performance.
On modern cpus? Most likely. Those kinds of optimizations are done by the core with no compiler magic needed.
CPU implementation has become too complex to grasp. The only sure way to know how a CPU will behave for a given workload is to run the workload. It's good to have some basic expectations of performance, instructions/cycle, memory bandwidth, to detect if something is off. I guess I'm trying to say it's hard to keep in your head all the details of what ~1B transistors are doing together to run your code. It's just too big.
I have fond memories of the IRQ from the mouse card. It was the only source of regular interrupts you could get on the Apple II (that I'm aware of). So in 1987, I tried to write a preemptive switcher, so you could run two code paths at the same time.
The development of that code was very painful. At the time, there was no external debugger. The moment you enabled the interrupt, your interrupt handler would get called, and it would try to program a context switch (something the 6502 is definitely not supposed to do). If you had any bug in there, your Apple II would be completely frozen, all you could do is reboot, and try to guess what went wrong and try again.
Remember those startup pivots we used to make fun of on HN? When a pivot happens, it often means the initial idea ran its course, the startup is about to shut down because it's running out of money. However, the team seems to work reasonably well together, at least they get along and seem to have a decent balance of engineers and business people. A new idea comes along, some investors could be interested. But the condition for the investment is to reset the cap table and wipe out the previous investors. From the new investor's point of view, it makes sense: for all practical purposes, this is a brand new startup. From the founders' point of view, they don't really have a choice.
Appreciate this article that shows some failures on the way to a great result. Too many times, people only show how the polished end-result: look, I trained this AI and it produces these great results. The world dissolving was very interesting to see, even if I'm not sure I understand how it got fixed.
Yes, I find the language misleading. Recall to me is synonymous with call-back. Which means I have to bring back, return it. On your PC, when you do a software update, you are not returning your operating system, you are rebooting your PC. Return vs. reboot. Quite a difference.
I would add one more: the address you are dereferencing could be non-zero, it could be an offset from 0 because the code is accessing a field in a structure or method in a class. That offset can be quite large, so if you see an error accessing address 0x420, it's probably because you do have a null pointer and are trying to access a field. As a bonus, the offending offset may give you a hint as to which field and therefore where in your code the bad dereferencing is happening.