Sign in

Jonathan Müller

@foonathan.fosstodon.org.ap.brid.gy
79 followers 0 following 59 posts

C++, compilers, and programming languages. Software engineer @ LSEG, chair for std::ranges @ C++ standardization committee. 🌉 bridged from ⁂ fosstodon.org/@foonathan, follow @ap.brid.gy to interact

PostsRepliesMedia
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 06/08/2026
If and hos would you simplify this #cpp code? The code duplication is bugging me. ``` if constexpr (foo<T>) { obj.disableX(); } else if (bar(t)) { obj.disableX(); } else { obj.setX(t.x); } ``` You need an `if constexpr` for the first one, because if `foo<T>` is true, `.x` doesn't exist […]
fosstodon.org
Original post on fosstodon.org
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 19/07/2026
RE: mastodon.social/@cppnow/11694724083… This was a really good talk.
mastodon.social
001
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 18/06/2026
Current status: rsync'ing .git folders to a remote machine. Because that's how version control works, right?
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 26/05/2026
C++, the programming language where a hypothetical proposal titled "Make <meta> constexpr" would actually add support for runtime reflection.
011
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 12/05/2026
"The problem is that the docs system is writing in Sphinx, and I don't know any Sphinx" - "Yeah, the people who set it up left." - "You mean, they were left in the pyramids after completion."
010
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 11/05/2026
The state of tech 2026 is best amplified by "The company travel booking tool keeps randomly redirecting to Microsoft Copilot 365 because something in the SSO is broken."
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 14/04/2026
Time since the last timezone bug: -2 hours.
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 18/03/2026
RE: mastodon.social/@cppnow/11625083133… I'll be there, hope to see you too!
mastodon.social
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 14/03/2026
Apparently, even though you are at an airport, your checked bags are somewhere on a conveyor belt at the airport, and you have a rebooked flight to your destination, there's nothing the baggage tracking office can do to ensure that your bag also makes it to the destination on that flight. You […]
fosstodon.org
Original post on fosstodon.org
100
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 13/03/2026
The big three US airlines are United, Delta, and American. Missed opportunity for Delta to call itself States.
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 11/03/2026
RE: mastodon.social/@Sdowney/1162102843… And I'll be talking about allternatives, contravariant functors, and lenses!
mastodon.social
000
Reposted by Jonathan Müller
Niki @nikitonsky.mastodon.online.ap.brid.gy · 03/03/2026
Gotta give it to Claude Code developers: they are exceptionally brave. I would’ve been straight up embarrassed to show stats like this. Reminder: Claude Code is a thin CLI client that reads input from your terminal, sends it to Antrhopic servers and prints back the response.
Tweet by @trq212 about Claude Code rendering scene graph in 11 ms and printing it to terminal in 5 msTweet by @jarredsumner about Claude Code memory usage growing from 10 Gb in January to 68 Gb to 1.7 Gb now
71740
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 19/12/2025
Reddit blog post discussing a problem. Commenter A: Can't you just do X? Commenter B:: No, because Y. Commenter A: But if you do X, then Z happens, so Y shouldn't be an issue. I didn't read the blog post. Commenter B: As the blog post explains, Z does not happen!
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 19/11/2025
@vitaut Feels like -0°.
Screenshot of a weather app, the temperature is 4° but it feels like -0°.
010
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 08/11/2025
RE: fosstodon.org/@foonathan/1154968336… Thankfully not, after all.
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 08/11/2025
Achievement unlocked: if consteval { if constexpr (foo) { if (bar) { throw error; } } }
000
Reposted by Jonathan Müller
dgelessus @dgelessus.mastodon.social.ap.brid.gy · 05/11/2025
when compiling C code, enable the -fPIE option to compile to Proto-Indo-European, for maximum compatibility with all CPU architectures developed on the Eurasian continent
35034
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 05/11/2025
From the standardization committee that brought you keywords such as `co_return`, `decltype`, and `reinterpret_cast`, now for your consideration: `trivially_relocatable_if_eligible` and `replacable_if_eligible`! C++ - you're gonna need a bigger column limit.
121
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 22/10/2025
I'm hoping a cobus is enough like a bus in that it gets me to my destination.
Photo of a sign in a bus saying the name of the manufacturer/model:

cobus 3000
100
Reposted by Jonathan Müller
Markus Werle @markuswerle.nrw.social.ap.brid.gy · 28/08/2025
As co-organizer of the C++ User Group #Aachen, I am thrilled to announce our program for next Wednesday, September 3, 2025. We will meet at SLB starting at 6:30 p.m., and the talks will begin at 7:00 p.m.. If possible, please pre-register at […] [Original post on nrw.social]
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 21/08/2025
LLVM bitcode is not good designed if you want to generate it efficiently. For example, you need to define all types that a module is using without duplicates. This is easily done with a hash table and ideally you could use the binary serialization as key: Serialize into a buffer, do lookup in […]
fosstodon.org
Original post on fosstodon.org
110
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 19/08/2025
Another day, another #if 0 ... #endif bisect to find the code that crashes MSVC.
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 17/08/2025
Got tired of linking with LLVM so I've written something to emit bitcode directly. The blocks and records are conveniently defined in a little X macro file which then is used to stamp out a fully type safe builder API.
X Macro definition file:

//=== identification block ===//
LLVM_BC_DEFINE_BLOCK (IDENTIFICATION, 13)

LLVM_BC_DEFINE_RECORD (IDENTIFICATION, STRING, 1, (String, str))
LLVM_BC_DEFINE_RECORD (IDENTIFICATION, EPOCH, 2, (llvm_BcEpoch, epoch))

//=== module block ===//
LLVM_BC_DEFINE_BLOCK(MODULE, 8)

LLVM_BC_DEFINE_RECORD (MODULE, VERSION, 1, (llvm_BcModuleVersion, version))
LLVM_BC_DEFINE_RECORD (MODULE, SOURCE_FILENAME, 16, (String, name))

Usage example of the API:

auto identification = llvm_bc_block(IDENTIFICATION, ctx, memory.task);
{
    llvm_bc_record(
        IDENTIFICATION_STRING, ctx, identification, memory.task, .str = zstring("my-producer")
    );
    llvm_bc_record(
        IDENTIFICATION_EPOCH, ctx, identification, memory.task, .epoch = LLVM_BC_EPOCH
    );
}

auto module = llvm_bc_block(MODULE, ctx, memory.task);
{
    llvm_bc_record(MODULE_VERSION, ctx, module, memory.task, .version = LLVM_BC_MODULE_VERSION);
    llvm_bc_record(MODULE_SOURCE_FILENAME, ctx, module, memory.task, .name = zstring("input"));
}

llvm_bitcode(ctx, memory.task, identification, module, out);
010
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 18/07/2025
@vitaut I've got a good chuckle when I saw that I contributed to the "hello world foundation" algora.io/profile/foonathan
algora.io
foonathan | Algora
Algora connects companies and engineers for full-time and contract work
000
Reposted by Jonathan Müller
maybeanerd @maybeanerd.bumscode.com.ap.brid.gy · 11/07/2025
Enjoyed the talk by @foonathan at #weAreDevelopers on how to do functional programming in C++ a lot I don't even use C++, but it was so well presented that I felt I still understood
Jonathan on stage answering questions from the aduience
111
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 02/07/2025
Today I rebased my stuff after spending two weeks on conferences only to discover that we've introduced an `use_iter_move_on_xvalue_dereference_index` customization point.
010
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 23/06/2025
Can anybody I know invite me to lobste.rs?
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 04/06/2025
I've used the `*---*x` operator today.
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 29/05/2025
I've tagged a new release of lexy, my C++ parser library. The last release was December 2022, so this was long overdue: github.com/foonathan/lexy #cpp #cplusplus
github.com
GitHub - foonathan/lexy: C++ parsing DSL
C++ parsing DSL. Contribute to foonathan/lexy development by creating an account on GitHub.
001
Reposted by Jonathan Müller
Christian Lawson-Perfect @christianp.mathstodon.xyz.ap.brid.gy · 29/05/2025
When you finish writing your parser
A sign saying "end of token section"
1510
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 24/04/2025
I love how fixing audio issues on various linux devices has become as simple as `pacman -S pipewire-pulse` or `pacman -S pipewire-alsa`.
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 24/04/2025
Next week, I'm going to be attending C++Now, and I'm going to be giving my two favorite talks of all time: First, a repeat of my "Overenginering max(a, b)" talk, which is just a bunch of fun metaprogramming to solve a safety problem. Then, a new talk "Missing (and future?) range concepts" […]
fosstodon.org
Original post on fosstodon.org
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 12/03/2025
I'm going to be speaking about missing and potentially future C++ range concepts at C++Now: schedule.cppnow.org/session/2025/mi… #cpp #cplusplus
schedule.cppnow.org
Missing (and Future?) C++ Range Concepts – C++Now Schedule
010
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 09/03/2025
I've been programming in C for a small project, a couple of thoughts: * -Wimplicit-fallthrough isn't enabled by -Wall -Wextra in clang, which has bitten me. * I got tired of `Foo foo = (foo)x`, so I'm using C23 and auto, sorry, not sorry. * I spend a lot less time thinking about interface […]
fosstodon.org
Original post on fosstodon.org
100
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 28/02/2025
I published my trip report about the Hagenberg meeting last week: www.think-cell.com/en/career/devblo… It was pointed out to me that I was wrong about the potential for dangerous optimizations with contracts and ODR. It is in fact […]
fosstodon.org
Original post on fosstodon.org
010
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 21/02/2025
I've written a trip report about last week's C++ committee meeting in Hagenberg, Austria www.think-cell.com/en/career/devblo… #cpp #cplusplus
think-cell.com
Trip Report: Winter ISO C++ Meeting in Hagenberg, Austria | think-cell
020
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 13/02/2025
I will be giving a keynote about functional programming at @cpponline! cpponline.uk/keynote-spotlight-func… #cpp #cplusplus
cpponline.uk
Keynote Spotlight - Functional Programming in C++ By Jonathan Müller - C++Online
010
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 24/01/2025
I'm going to be speaking at the C++ meetup in Helsinki on February 4th! Overengineering `max(a, b)`: Mixed Comparison Functions, Common References, and Rust's Lifetime Annotations www.meetup.com/cpphelsinki/events/3… #cpp #cplusplus
Meetup #10
Tuesday 4 February 2024 Maijansali, Oodi Helsinki Central Library Doors: 17:00 Talks start: 18:00
Sponsored by: think-cell

Main talk:Jonathan Müller “Overengineering max (a, b) Mixed comparison functions, X common references, and Rust's lifetime annotations”
020
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 15/01/2025
I will be giving a keynote about functional programming in C++ @ @cpponline: cpponline.uk/session/2025/functiona… #cpp #cplusplus #functional
cpponline.uk
Keynote: Functional Programming in C++ - C++Online
Functional programming is a declarative way of writing programs by composing functions. In many situations, this can lead to code that is easier to write and understand and less error-prone. However, it requires a shift to a more functional mindset. This talk gives an introduction to functional programming in C++ using the modern standard library. […]
011
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 09/01/2025
FYI: "advertisement for other languages" isn't a valid reason to report a post on r/cpp.
100
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 18/12/2024
Current status: Wishing the C preprocessor had lambdas to pass to a PP_FOR_EACH macro. Reflection can't get here soon enough.
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 18/12/2024
I've found a cool idiom for tagged unions of aggregates: Give each aggregate member a tag defaulted to the correct kind. That way, when you use designated initializers to construct the object, it will be automatically initialized correctly. godbolt.org/z/MYE91hGY6 #cpp #cplusplus
Picture of the code from the godbolt link
010
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 12/12/2024
Go is a programming language with a strange property: The more I learn about it over the years, the less I like it.
001
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 10/12/2024
Days since the last clang stack overflow due to high nesting of range adaptors: 0
000
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 05/12/2024
Company Christmas party, CEO is giving a retrospective of the year: "We have gained X new customers, closed Y tickets, and reported 25 compiler bugs!" Shoutout to MSVC, couldn't do it without you.
010
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 02/12/2024
"profiles are very easy to sell. They reassure people who don’t care about safety that they don’t have to, and they reassure everyone else that there is a path forward. And we can blame users or implementers when it ultimately fails to have a meaningful impact" […]
fosstodon.org
Original post on fosstodon.org
110
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 29/11/2024
I've written a trip report about the recent ISO C++ committee meeting: www.think-cell.com/en/career/devblo… #cpp #cplusplus
072
Jonathan Müller @foonathan.fosstodon.org.ap.brid.gy · 29/11/2024
We've got a new copy editor at work and he's great: > I expected this rejection: LEWG, the group responsible for designing the standard library, is historically not really sympathetic to people who don't want to use the standard library, but I am still disappointed.{{#Copy editor: That sucks […]
fosstodon.org
Original post on fosstodon.org
010