Theme

Daniel Lemire

Today

  • simdjson 5.0 is out

    Daniel LemireDaniel Lemire

    The simdjson library is a C++ library to parse and generate JSON. It is used in Node.js, ClickHouse, Meta Velox, StarRocks, Apache Doris, the Ladybird browser and many other systems. We released versi...

2026-09-26

  • A thesis isn’t enough for a PhD

    Daniel LemireDaniel Lemire

    To get a PhD, you typically have to enroll in a graduate program. Then you complete a few relatively easy courses.   You might need to pass a comprehensive examination that checks whether you have a b...

2026-09-25

2026-09-24

2026-09-22

  • A summer of AI optimization

    Daniel LemireDaniel Lemire

    I maintain and comaintain several open-source libraries. Some of them are widely used: ada parses URLs in Node.js, fast_float parses numbers in GCC’s standard library and in Chromium, simdjson p...

2026-09-21

  • More than a taken branch per cycle?

    Daniel LemireDaniel Lemire

    Our processors can execute many instructions per cycle; they are superscalar. But not all instructions are equal. Branches are particularly tricky. A branch occurs often when you use an if-then clause...

2026-09-20

2026-09-19

2026-09-18

2026-09-16

  • How fast is C++23’s std::flat_map?

    Daniel LemireDaniel Lemire

    C++23 added a new type to the standard library: std::flat_map. There is also a std::flat_set and other variants, but let me focus on std::flat_map. A flat map is a sorted vector of keys next to a vect...

2026-09-15

2026-09-11

2026-09-10

  • Fear Is Not an Argument

    Daniel LemireDaniel Lemire

    We are told that AI entities much like ChatGPT might soon kill us all. The statement is vague and unfalsifiable. It might be true, it might be false. People with credentials (e.g., Turing Award recipi...

2026-09-09

  • A quick overview of atomics in C

    Daniel LemireDaniel Lemire

    If you write in C, by default, you use a single thread. Extra cores do not help until you create more threads. However, if you include the header <threads.h>, you can pass a function to thrd_c...

2026-09-05

  • AI programming: a layered model

    Daniel LemireDaniel Lemire

    In the late 1960s and 1970s, people like David Parnas faced a problem. A decade earlier there were almost no programmers. Suddenly there were hordes of inexperienced ones. What could have been a golde...

2026-09-03

2026-08-29

2026-08-22

2026-08-19

2026-08-15

2026-08-12

  • AI programming : are you angry yet?

    Daniel LemireDaniel Lemire

    AI-assisted programming is fast evolving and there is a tension between ‘we no longer need to understand the code’ and ‘what is my purpose as a programmer’. I recorded a short...

2026-08-09

  • Profile-guided optimization in Go

    Daniel LemireDaniel Lemire

    When a compiler optimizes your program, it has to guess. Which functions are worth inlining? Which side of a branch is the common one? Which method does this interface call actually reach? At compile...

2026-08-02

  • How fast is C++26’s std::hive?

    Daniel LemireDaniel Lemire

    C++26 adds a new container to the standard library: std::hive. It is meant to occupy the ground between std::vector and std::list. Like a vector, it keeps its elements in contiguous blocks of memory,...

2026-07-25

2026-07-24

  • Does a PhD Pay Off?

    Daniel LemireDaniel Lemire

    Every week, I discuss with people who want to get a PhD. For years, I have been advising people not to pursue a PhD. It may come as a surprise to some. You would expect people with a PhD to earn more...

2026-07-22

2026-07-16

  • Using AI to build your own software

    Daniel LemireDaniel Lemire

    A few years ago, a friend of mine was stuck. He needed to quickly process over a hundred high-quality images according to a complicated sequence. He was using Photoshop, but it was going to take him d...

2026-07-11