Top all-time · #2182
nikic
Personal blog · npopov.comprogramming
nikic's personal blog at npopov.com covers programming. Since 2021, 37 different Hacker News readers have linked it 44 times, most often “Regular expressions with backreferences are NP-complete (2012)”. It is still writing: the last post was on 2026-01-31, and you can follow it by feed.
Most-linked posts?
- /2020/05/10/Make-LLVM-fast-again.html7 people · 7 mentions · first linked 2021-04-27
- Regular expressions with backreferences are NP-complete (2012)6 people · 6 mentions · first linked 2022-07-03
- Design Issues in LLVM IR3 people · 3 mentions · first linked 2021-06-03
- LLVM: The Bad Parts3 people · 3 mentions · first linked 2026-01-11
- LLVM: Scalar Evolution (SCEV)3 people · 3 mentions · first linked 2023-10-03
- This Year in LLVM (2024)3 people · 3 mentions · first linked 2025-01-05
- /aboutMe.html2 people · 2 mentions · first linked 2022-01-11
- This Year in LLVM2 people · 2 mentions · first linked 2024-01-01
- Are PHP developers functophobic? (2012)2 people · 2 mentions · first linked 2021-06-01
- How PHP Opcache Works2 people · 2 mentions · first linked 2021-10-15
What Hacker News says?
> but compiling code will still be faster I don't know about that, LLVM is getting slower with each new release too [1]. Same for Xcode: startup is very noticeably slower than a few years ago on the same machine. Starting into a debugging session for the first time is much slower (it used to be instant, now it's multiple seconds). The new build system in Xcode is most definitely slower than the old one, at least for…
Comment linking /2020/05/10/Make-LLVM-fast-again.html
on “Apple's follow-up to M1 chip goes into mass production for Mac”Submitted Design Issues in LLVM IR as a story · 168 points
HN discussionOpcache is integrated into PHP since 5.5. It's been stable for around two decades. https://www.npopov.com/2021/10/13/How-opcache-works.html
Comment linking /2021/10/13/How-opcache-works.html
on “I still love PHP and JavaScript”Submitted How PHP Opcache Works as a story · 151 points
HN discussionThat's great to hear. I found some info about it which looks promising. https://www.npopov.com/2020/05/10/Make-LLVM-fast-again.html
Comment linking /2020/05/10/Make-LLVM-fast-again.html
on “What's bad about Julia?”Submitted This Year in LLVM as a story · 9 points
HN discussionYou may be interested in the current initiative around compiler plugins [1]. One of the explicit design goals is offload to alternative backends like GPUs or Wasm, but you could see how that would extend to something like Cranelift as well. That said, LLVM codegen performance is very much a tail wagging the dog thing, and I wish upstream put a significantly larger focus on it [2] [1] https://hackmd.io/bVhb97Q4QTWeBQ…
Comment linking /2020/05/10/Make-LLVM-fast-again.html
on “What's bad about Julia?”Submitted Design Issues in LLVM IR as a story · 4 points
HN discussion> no PHP dev will be think about memory management at all Not nowadays, for sure. In 2009-2010 it was still something to keep in mind, and careful array handling was common so the it wouldn't baloon hundreds of megabytes for not so large data structures. I wasn't working on big data (tm) at that time, but running database imports via ETL processes in PHP required a few optimization passes. I really can appreciate no…
Comment linking /aboutMe.html
on “PHP in 2022”Submitted Regular expressions with backreferences are NP-complete (2012) as a story · 4 points
HN discussionAlso a lot of the positive changes were do to the efforts of Nikita Popov[1] who has now left. It's led to the creation of the PHP foundation.[2] I haven't kept up to date with the foundation's efforts. [1]: https://www.npopov.com/aboutMe.html [2]: https://blog.jetbrains.com/phpstorm/2021/11/the-php-foundati...
Comment linking /aboutMe.html
on “PHP – The Right Way”Submitted This Year in LLVM (2025) as a story · 3 points
HN discussionIt is but what they mean is that many implementations (e.g. PCRE) are not actually regular languages, they're more powerful: https://www.npopov.com/2012/06/15/The-true-power-of-regular-...
Comment linking /2012/06/15/The-true-power-of-regular-expressions.html
on “GitLab Security Incident: Attempted Exploitation of CVE-2026-97229”Submitted This Year in LLVM (2024) as a story · 3 points
HN discussion> that was around PHP 7.0 7.0 is when php switched to open addressing: https://www.npopov.com/2014/12/22/PHPs-new-hashtable-impleme...
Comment linking /2014/12/22/PHPs-new-hashtable-implementation.html
on “A Tale of Java Hash Tables”Submitted The Opcache Optimizer as a story · 3 points
HN discussionPHP does at least have an optimised internal representation for arrays with sequential integer keys, where it can avoid having a hash table and just do linear indexing: https://www.npopov.com/2014/12/22/PHPs-new-hashtable-impleme... But a tradeoff in that design is it still has to keep track of keys and update them if you remove stuff from the start of the array. Adding and removing elements at the end is very fast,…
Comment linking /2014/12/22/PHPs-new-hashtable-implementation.html
on “Algorithms in PHP: Deques”Submitted Design Issues in LLVM OR as a story · 3 points
HN discussionPersonally, I think interactive usage has improved quite a bit. I don't "feel" it that badly in 1.7. It was bad enough earlier in the 1.0 series that I stopped using it for a while (I used it before <1.0 as well). I think the problems were from: 1) llvm itself getting dramatically slower over time, before more focus upstream on compiler speed more recently: https://www.npopov.com/2020/05/10/Make-LLVM-fast-again.html…
Comment linking /2020/05/10/Make-LLVM-fast-again.html
on “Which programming language or compiler is faster”Submitted LLVM: The Bad Parts as a story · 2 points
HN discussionLLVM has been negligent about compile time for a long time, but they are improving recently. See https://www.npopov.com/2020/05/10/Make-LLVM-fast-again.html for an example.
Comment linking /2020/05/10/Make-LLVM-fast-again.html
on “On Proebsting's Law”Submitted LLVM: The Bad Parts as a story · 2 points
HN discussionThere was actually a really good push to both optimize LLVM and prevent regressions last year. See https://www.npopov.com/2020/05/10/Make-LLVM-fast-again.html
Comment linking /2020/05/10/Make-LLVM-fast-again.html
on “LLVM has become a sweathog, time to start over”Submitted Are PHP Developers Functophobic? as a story · 2 points
HN discussionNote that Nikita has had a hand in many of the improvements that have made PHP much more pleasant since the fractal-of-bad-design days: https://www.npopov.com/aboutMe.html#accepted-php-proposals
Comment linking /aboutMe.html
on “Rustlantis: Semantic fuzzing of the Rust compiler and interpreter [pdf]”Submitted How to Reduce LLVM Crashes as a story · 2 points
HN discussionHTML is not regular, so it can't be recognised by a "theoretical" regular expression, such as introduced in a theoretical CS class. Modern regex engines however, are more powerful and can recognise non-regular languages too. Then there's a distinction to be made between recognising a language and parsing it. This article goes into more detail: https://www.npopov.com/2012/06/15/The-true-power-of-regular-...
Comment linking /2012/06/15/The-true-power-of-regular-expressions.html
on “Oh Yes You Can Use Regexes to Parse HTML”Submitted LLVM: The middle-end optimization pipeline as a story · 2 points
HN discussionhttps://www.npopov.com/2023/10/03/LLVM-Scalar-evolution.html “basic and essential” are interesting ways to describe the field of compiler optimization research. Are you suggesting that the discovery and implementation of SCEV in LLVM is basic and essential? Or that summing integers in a range is basic and essential?
Comment linking /2023/10/03/LLVM-Scalar-evolution.html
on “When Compilers Surprise You”Submitted This Year in LLVM (2022) as a story · 2 points
HN discussion