CppCast - Friends-and-Family Special
Episode Date: June 13, 2025Phil and Timur are joined by Jason Turner, Matt Godbolt, Anastasia Kazakova and Guy Davidson to celebrate 400 episodes of CppCast and catch up with the co-hosts that have helped us keep up for the las...t 50 of them! News Boost.Bloom has been accepted into Boost "Three types of name lookups in C++" - Sandor Dargo "How Compiler Explorer Works in 2025" - Matt Godbolt Links Episode 376 with Rainer Grimm Rainer's website and blog - with updates on his ALS journey
Transcript
Discussion (0)
Episode 400 of CBPcast, recorded 11th of June 2025.
In this episode, we talk about Boost Bloom,
the three types of name lookup in C++ and
how Compiler Explorer works under the hood these days.
Then we are joined by Jason Turner, Anastasia Kazakova, Matt Godbold and Guy Davidson for
our Family and Friends special episode. Welcome to episode 400 of CBPcast, the first podcast for C++ developers by C++ developers.
I'm your host, Timo Dummler, joined by my co-host, Phil Nash. Phil, how are you doing
today?
I'm actually very good today, thank you. How are you?
I'm not too bad either. So we got lots of guests today. I'm going to get into more about that later, but I just want to highlight one guest, in particular Jason Turner, one of the former hosts of the show, whom you all know, I think, if you've been listening to the show. And he is joining us today from an epic hike across the Netherlands. Is that right, Jason?
day from an epic hike across the Netherlands. Is that right, Jason?
That is right.
Thank you, Timor.
Yes, I am currently walking the Peter pod with my wife.
It starts in the very Northern tip of the Netherlands, works its way down to a very
Southern tip and it's supposed to be about 500 kilometers in total, but it looks like
in practice, it's maybe more like 560.
All right. Well, that's a lot of kilometers. How long is that going to take?
We are on day 16 and we have seven more days of walking left, including finishing today.
22, 21 total walking days.
That is so awesome. Thank you so much for dialing in under these circumstances. That's just great.
Thank you so much. So you're just like on your phone right now, aren't you? And you said you
probably have to drop out in a few minutes. Is that right? I should drop out. Yes. Because it's a little weird to be, you know, walking in the country
lanes and talking on my phone like a tourist.
So fair enough. But like we are so honored to have you here just for a few minutes to say hi.
That is really awesome.
I do want to take a second if you don't mind that I'm trying to take the opportunity while I'm doing this walk.
Yes.
Also bring some awareness to ALS and honor of Rainer Grimm, who has been dealing with
ALS for it's been a year and a half since his diagnosis.
I think that's about right.
It was September year previous. Anyhow, and so I just want
to encourage people to donate to ALS research if you have the means and opportunity to do
that. It's an underfunded field.
Yeah, thanks for that. I'll put a link to the episode with Reiner in the show notes.
Yeah, Reiner has this whole blog of all the things that he's dealt with
and how he's been progressing.
Yeah, we had him on on the show last year, February 24, right?
So he kind of openly talked about this, but a lot of stuff probably
has happened since then.
So, oh yeah, lots of updates.
That's for sure.
You should make sure you have a link to his
blog at the same time.
Yes, we will post that on the show notes. Thank you.
Well, thanks for having me on. I'm going to go ahead and go and let you talk to everyone.
All right, Jason, thank you so much for dialing in. It's great.
So have a great rest of your hike and we'll speak soon, I guess.
Thanks for having me.
All right. Okay so at the top of every episode we'd like to read a piece of feedback
and we do get emails but we also get feedback through other channels so we're not very active
on social media these days but there's also this bot that Rob Irving at some point wrote which I
think is still going right Phil is that still his bot that's doing that?
Uh, posting like every episode that we release on Reddit.
Yeah, that's still Rob's script.
I've actually started setting up now to automatically post to X and
master Don and then blue sky and Twitter will be coming soon as well.
So we should get the whole, whole suite, but it's still, still Rob's bot
that's keeping us going on Reddit.
So I checked because we didn't get emails this week.
So I just checked Reddit and kind of the last few episodes.
And I found one piece of feedback there on Reddit, which was about the second
to last episode, 398 with Jonathan Wakely.
And that feedback item is just a comment that reads Bojangles in my CBP subreddit.
And there wasn't any further comments. So I was very puzzled about all of this. And then I went
to like, like look up what Bojangles is. And apparently it's a US fast food chain that sells
fried chicken. Is that right? Matt, you live in the US, right?
I'm the nearest person on the nearest, most American person in this podcast.
I'd never heard of it. I looked it up actually, and it's somewhere in the southwest, so it's
nowhere near where I am. But yeah, no, it was news to me.
And then I was like, oh man, what's going on here?, where's the connection? The only one I could find is that their kind of corporate color
scheme is red and then John Wakely's hat was red.
And like the, I was like, where the hell is that?
I don't understand what's going on here, but then I also just fundamentally
don't understand subtext and humor and things like that.
So maybe somebody else has an idea what's actually going on.
Yeah.
I did a very simple check.
You know what I know always do. Sorry for that.
I asked Chetjipiti actually.
Oh, okay.
And so what does Chetjipiti say?
Chetjipiti told me that that reference is like some old internet meme, like
something ridiculous and in my place, more likely than you think.
So it means like that he puts something really, really out of the scope to the
scope and like trying to express the emotion.
So yeah, Ask Chet's GPT actually has quite nice explanation with a few examples.
So I didn't know anything about that and even the original meme, but yeah, Chet's
GPT is now sometimes smarter at least in memes than I.
So I'm astonished so far that none of you have mentioned the song Mr.
Bojangles. Mr. Bojangles.
Mr. Bojangles? Is that a UK thing?
No, it's an American song. I'm sure Matt knows it and will give us a rendition right now.
Who is Mr. Bojangles?
It's not ringing a bell actually. It's one of those things where I think...
Mr. Bojangles. No? All right. Okay. It's a song. I will not sing it now because...
I'm assuming it's, yeah, I'm just too young to remember it.
Oh, oh, a phallus, Sam is blown, Mr. Gumballs.
We do have a code of conduct for the podcast.
So, stick with that in mind.
All right.
You should find a clip of the song and add it to the end of the podcast.
So the one thing I can't figure out is whether that person actually liked the episode or
whether there was anything else he wanted us, he wanted to tell us. But maybe that doesn't matter as much right now. So yeah, maybe
if you want to send us feedback. Yeah, I think if you want better feedback items than this,
then it's your responsibility to send it in. So please get your feedback.
Yeah, please do. We'd like to hear your thoughts about the show. You can always email us at feedback at cvpcast.com and, uh, joining us today, as
I already said in the beginning, our Jason, who is no longer with us because he's
hiking, but still with us are Anastasia, Matt and Guy.
And, um, at this point, I usually read out the bio of our guests, but I'm not
going to read out your very impressive bios now instead, um, I wanted to just briefly talk about why we invited you here
and what your connection is to this show.
So obviously Jason, who is now hiking and no longer with us is one of the original
hosts, actually Rob Irving is the original host and he did like the first few episodes
on his own, then he got Jason on board and they were running the show for ages together.
And then Phil and I took over.
But also all of you, including Jason have been co-hosts on this show over the last
couple of years when Phil and I have been doing it.
So thank you so much for that.
And also Anastasia is I think also a key person in this whole thing, because at
the time Phil and I started the show, we were both working at JetBrains
where Anastasia is still working. And kind of we were trying to figure out, oh, you really want to
take over the show, but also we have this job. Is there any way we can like juggle that, maybe do that
in our work time? And would that be something that JetBrains would support? And Anastasia was very,
very helpful to get that set up.
So without you, we would never have actually taken over the show.
So I just want to say a huge thank you to you again.
We would not be here without you.
That's a great podcast.
So it's my pleasure.
Really love it.
And we actually also did another podcast with Phil.
You might remember that.
It was No Diagnostic Required, which name I really, really loved.
Like my favorite name for the podcast. I don't know which show I enjoyed more, but like the name
for Endiar was fantastic.
Yeah, I'll put a link to that in the show notes as well.
Yeah, thanks, Phil.
Right. So yeah, thank you so much again for your support throughout the years. It means
a lot. And of course, Matt and Guy, both have been as co-hosts here as well, and both are longstanding
friends of ours.
And thank you so much for being here.
Like you're the kind of big part of the CPP cast, the family.
So this is kind of what you want to do today.
Just have an episode with some family and friends.
That's kind of, I guess, the title of the episode.
I think one of the problems with having this particular panel as co-hosts from time to time
is you never actually get to interview them as guests. So this is her opportunity to do that.
So I think you've all been multiple times, right?
I think I've been twice as a guest and dance her all times as a co-host. At least I got my hoodie
with CPP cast as a guest been twice.
I still have it.
It's still like pretty nice.
Where?
Yeah.
You said it right.
Yeah.
There's a CPP Cast hoodie.
It was a CPP Cast hoodie and I still own it.
Oh, jealous now.
Oh, Phil, Phil, we really need to think about some new merch.
Like we haven't really done that since we took over.
That's just a great idea.
Yeah.
Yeah, it's cool.
It's cool. I never got a hoodie.. Yeah. Yeah, it's cool. It's cool.
I never got a hoodie fail. We need to figure something out.
This is terrible. Yeah, we should do that. Well, put it on the list.
I've got my, I've got my, I was just showing off earlier. I got my JetBrains swag through the mail
the other day, which was great. So thank you JetBrains for my nice new hat and bits and pieces.
But I have no CPP cast stuff.
So...
Not even a sticker?
Oh, I must have had a sticker at some point, but I am like several
laptops on now from where that were.
Oh yes, I have got a CPP cast on my old laptop.
I'm just looking under a pile of papers.
So, so to close the cycle here, Matt, thank you for the single most useful piece of tech
swag that I ever got.
Last time I saw you in person was at the ACC conference, where this year in April, where
I actually ran out of socks, which never had happened to me before on a business trip.
And Matt conveniently just pulled out a pair of Compiler Explorer socks from his bag and
said, here you go.
And that saved my day.
I think probably my penultimate pair of those as well.
I think I had somewhere like 200 pairs in total.
We had them for the 10 year anniversary of Compiler Explorer.
I sent them out to like our big patrons.
And then I had a number of them, which in fairness, a lot of them I used similarly,
I would pull them out of the bag when I ran out of socks myself.
Uh, and so slowly went through myself, but, uh, you know, glad to be helpful.
Well, at the risk of foreshadowing, maybe you should write a blog post on how
the compiler explorer socks are made.
I, I,
All right.
All right.
So this is a good segue into our news items.
Thank you. Is it a good segue?
I don't know. So let's get through this quickly because we're already quite a few minutes
in and we have a lot more stuff to talk about. So I'm just going to try and run through these
news items very quickly. I keep regularly failing at that, but let me try and do that quickly.
So I got three of them again today.
The first one is that there is a new Boost library called Boost Bloom,
which has just been accepted into Boost.
The author of that library is Joaquin Lopez Muñoz,
and there was an announcement on the Boost mailing list.
And there's also an article and a repository and docs,
and we're going to put all of those links there.
So what it does, it offers a class template called a boost,
colon, colon bloom, colon, colon filter.
And that is, or can be configured to implement a classical bloom filter.
And I have to admit, I had no idea what that is.
I had to go look it up, but it's really, really cool.
And it can also be configured to do all kinds of other things and variations
off the, on this theme that are discussed in the literature and elsewhere, such
as block filters, multi-block filters, and other very useful and cool stuff.
So yeah, bloom filter library.
Um, very, very cool.
The other thing that stood out is that, um, apparently it's a very high quality
library, so Boost has this community review process and, uh And the report said that nearly every reviewer recommends accepting Boost
Bloom into Boost, praising its code quality interface, SIMD optimizations
and documentation and the review manager, Arno Becheler, I hope I'm
pronouncing that right, notes that it could become essentially a model
library for future contributions.
That's how good it is.
It is high praise.
Yeah. Cool. New Boost library. So who wants to explain what a Bloom filter is?
I was going to say, Timore, the classic use of a Bloom filter is passing your Google
tech screening interview, I think. This seems like one of those technologies that's used
in about three places.
I somehow got away with never having to
pass any of those. Google interviews. Yeah, sounds cool.
It's useful in databases anywhere where it would be really
useful to have a local cache of is this thing present or not in
a maybe on a disk drive somewhere or so like if you've
got a key value store, and you want to do a quick local check with a small
map that tells you whether or not something is or is not
present. It does have some false positives. So it sometimes says
something's present when it isn't. But it doesn't have any
false negatives. It's, it's a cool data structure for that,
you know, Google uses all over the place like caching and
saying like, you know, if is it worth going out to big storage to go and fetch something when, um, cause I know
it probably is there, um, as opposed to not, that's a terrible explanation of it, uh,
but it'll have to do.
Right.
Well, that sounds very useful.
And now there's a very good boost library for it.
So that's great.
Um, I got two more news items.
So I haven't really found any like really big events in the C++ world, but there
were lots of new blog posts.
So I kind of had to pick which to mention.
There's like five or six that, you know, really stood out, but I'm just going to
mention two.
The first one was by Sandor Dargo, who keeps blogging great stuff.
This one is about the three types of name lookups in C++.
And we're going to put a link in the show notes.
It's a really good write-up in my opinion about like, yeah, the three types of name lookup in C++. And we're going to put a link in the show notes. It's a really good write-up,
in my opinion, about like the three types of name lookup in C++. So he really explains that
this is what qualified name lookup is, this is what unqualified name lookup is, and this is what
argument-dependent lookup is. And if you're not already an expert on that, which I assume most
people are not, including myself, it's a highly recommended read. It really helps understanding the stuff properly.
Like you're going to just be better at understanding templates and
overloads and all of these things.
Like what does your code actually do?
Why do you have this weird obscure bug?
Because the wrong function is being called or the wrong thing is
being referenced or whatever.
Very good stuff.
I think every C++ developer should read this.
So thanks Sandor for writing that up.
I think about half the questions on the CPP quiz basically boiled down to
some variation of name lookup.
Yeah, it is hard.
And actually for some other project, I have recently had to like look up
like lots of other programming languages and how do they do like this other thing.
And yeah, one recurring theme is that they don't really do this.
This seems to be like a C++ word somehow.
I have opinions on that.
All right.
So, and then the last blog up that I want to mention is actually
by Matt, who is here with us.
So Matt, thank you so much for writing that blog post.
And although actually, actually your blog post says that you haven't written it completely yourself. You actually have also used an LLM to help with that. So I have questions about that too. And also questions about this very pretty cat that's like on your lap right now, which our audio only listeners unfortunately don't see. But let's get to that in a minute. I
just want to very quickly mention what this blog post is
about. It is about how like Compile Explorer works under
the hood, what actually happens when you, you know, stop
typing, and then it goes off and starts, you know, compiling, and
then a few seconds later, you get like an output or assembly
or whatever it is that you're doing. So and that blog post
is really awesome. So like, go read it is that you're doing. And that blog post is really awesome. So go read it.
Oh, thank you.
And there's just so much going on.
So your code gets sent off to all of these other things,
and then there's this huge diagram with lots of arrows and boxes explaining what's actually going
on. You're talking about some interesting attacks that you had and how you mitigated them.
The fact that you have four terabytes full of compilers and how many millions
of like compilations you get like every day and 1.8 per week.
I remember the number is like mind blowing.
So, so this is just mind blowing stuff that this actually all works.
And apparently on a budget of what $3,000 per month.
Is that right?
About three grand. Yeah.
Considering the massive scale of this thing, it's just so much impressive stuff going on there. So
we touched upon some of this stuff last year when we had episode 377 with Patrick Quist, who is,
I guess, the person doing the most kind of work on this.
Yeah, they are one of the biggest contributors of Compiler Explorer.
I'm just the amusing and memorable name behind it.
Yeah, so we did have them on the show back in February 24, but I guess also stuff has
moved on since then.
So yeah, great blog post.
Thanks, Matt.
Thank you.
Yeah, no, it was fun to put together. I've, I've been, I've been rewriting, rather writing again from my blog, which has been,
you know, I used to keep one entry a year for many years.
And then I've now done like four or five in the last two or three months, mainly because
I've discovered I can dictate to an LLM while I'm walking my dog.
discovered I can dictate to an LLM while I'm walking my dog. So I will put my headphones on and I will brainstorm or think out loud while I'm walking along. And everyone thinks I'm talking
to somebody. And maybe I am, I don't know. It depends on your definition of somebody. But at
the other end of it, an LLM is listening. And then at the end of it, all I say, can you summarize
that? And then I go home and
fiddle around with it and put it into my blog. And yeah, so that's been my process. Although
in specifically for this particular post, I actually set it off on one of those like research
things and got the LLM to do a whole bunch of research and then corrected it. And then
it was pretty good, you know, but so anyway, it was, it certainly inspired me to corrected it. And then it was pretty good, you know, is it?
But so it was, it certainly inspired me to write it.
And it's been a while as you, you know, as you said, you had Patrick on explaining a
little bit about it, but I realized the last time I'd written about it was about 10 years
ago and a lot has changed.
Will you leave it around 10 years ago?
Yeah, we, we celebrated our 13th birthday last month. So yeah, somehow we've managed to make it 13 years
and still knock on wood, still going. And hopefully many years more to come. I've certainly
got no plans to stop doing it anytime soon. In fact, one of the other blog posts I wrote recently
is that for a couple of years, we used to use the old Google link
shortener. So if you remember, goo.gl was like Google's sort of
public link shortener, we didn't want to store any state ourselves
because that meant like storing other people's data and that has
all sorts of ramifications, not the not the least that you know,
I can lose it accidentally, and I'm not very good at this kind
of thing.
So what we used to do is we used to take the entire state of the compiler explorer, put
it in the URL, which you can still do if you do full URL, you get the whole thing with
all of the code sort of in the URL.
But then we would send it off to goo.gl to get back a goo.gl link.
That's what you would share.
Then Stack Overflow banned GU.GL. And so what we
did is we just rewrote GU.GL as godbolt.org slash G slash the number that the magic number
that GU.GL had. And that was fine for a while. So I was essentially just subverting Stack
Overflow's filter. But eventually we realized that we should probably own our own data.
And I did actually write a link shortener. So that's the godbolt.org slash Z slash whatever.
But we have all these.g ones that are around. And then Google shut down goo.gl. And then they
said, we'll keep it around forever though. So don't worry. It's read only from now onwards.
And then forever apparently is August 2025. So I'm now embarking on a...
It does, isn't it?
Yeah.
I mean, no politics, but you know, who...
It's not on my own calendar, isn't it?
It's actually the end of the world will be at this point.
Yeah, that's right.
But yeah, so we've been on a massive journey of trying to find all of the godball.org slash
g slash blah links
so that I can go and look them up using Google service before it goes away and install them
in my own database. So that has been a fun journey. That's an excellent, well, it's sort
of compressed, I suppose. And I think also probably, so internal to Google, a lot of the sort of internal services had a trailing Zed on them,
obviously pronounced Z in the, so like, you know, there'll be slash, uh, stat, stat Z and whatever,
all these sort of like URL endpoints would have a Zed on the end. Um, and I think that was vaguely
what I was thinking. I don't really remember. that is compressed, you know, like this in GZip,
but it's not really compressed. It's just Zlib, that kind of thing. Yeah. But it's not compressed. It's just the SHA-256 of your entire state document. And in the first few characters of that,
unikified if necessary. Although one of the one of them, I'm going to say amusing, but amusing isn't really the
right word after I looked up the exact particular case that caused this to happen. But we now
check when we generate that random shard, base64 encoded shard, that there isn't a rude
word in it by accident, because people have made short links and then shared them and
then gone, oh my gosh, it's got a word I don't want or, you know, like a Leet speak version of a word
in there. So we had to, we now actually scan it and then we'll add random data to your
document just to make it so that it doesn't come out as being, you know, like poo or something
silly like that in the URL or something far worse, which it was in this particular case,
which is why it's not actually that funny. It
was amusing that it happened. But yeah, so the things you
never think of, right? These are the stuff that happens at scale.
All right. All right. So we are now done with the news items.
So one thing that I was very curious about is to our guests,
where are you right now, actually? And what are you doing
right now? Like, what's the main thing
that you're kind of involved in or excited about or busy with
like right now?
Yeah, I can, I can start. So yeah, like I'm in Amsterdam, and
I hope that maybe Jason just passed by for coffee. I didn't
ask him. But I was just hoping that like he's not that far. You
know, Netherlands is actually quite small to ours in any I didn't ask him, but I was just hoping that he's not that far.
Netherlands is actually quite small to ours in any direction.
You're either in the sea or in the neighborhood country.
He could actually come for a coffee.
I would be happy to host him here.
I'm still with Jabrains as Tima mentioned.
It's been 11 and a half years already.
Not with the C++ team anymore for more than a year already.
I'm now mostly working with the.NET team.
It's also fun.
It's a nice ecosystem.
I just recently came from MS Belt in Seattle.
I really enjoyed Hanselman talking on stage and they had a very curious
keynotes, I mean, we should do that in C++, in C++
conferences, because like, you know, robotics is all about C++. They were doing that with.NET
and two AI agents, a couple of copilots. There was a Linux machine controlling the robot,
and the robot had to look at the table, identify the can of Coke at the table,
take it and bring it to Hanselman whom the robot should identify by a photo.
Well, they spent an hour coding with Copilot. So no code was written by Hans.
That was all like agentic stuff. And we were looking at the logs output, seeing how the
like robot detects something like, yeah, I've detected something at the table. output, seeing how the robot detects something.
Like, yeah, I've detected something at the table.
Yeah, this is the can.
Yes, now I see that there are two people on stage and one of that is actually Scott Hanselman.
So yeah, I need to get to this person.
Like obviously failed a couple of times.
And if you've ever seen Scott Hanselman on stage, that's the show.
So he was jumping around this robot, voting, shouting,
whatever, supporting the robot as it's a human being. By the end of the keynotes, literally the
very last minute, the robot managed to do the job. That was just a fantastic show. I don't know,
in terms of the technology, not that much you can learn from it, obviously,
because actually you couldn't even watch the code or the process because the setup, yeah,
you could observe that, but then it's too many things on stage, like three different laptops,
operating systems, robot, whatever. But it was fun. And I was thinking, why we don't do that
at C++ conferences? We are the robotics, because lots of this stuff is still in C and C++.
Why don't we do this fun?
It's such a cool keynote.
I really enjoy that.
So yeah, that's what I'm doing now.
Working a lot with the.NET team and yeah, disrupting everything with the YI for sure,
because that's what's happening around.
Yeah, kind of that's it.
I'm still a little bit of C++, as my friends and my husband says, you can get the girl
out of the C++, but you can't get C++ out of her.
So I'm still running a Dutch C++ Meetup as a co-host in Amsterdam.
We do a C++ conference here in the Netherlands, C++ under the sea.
Phil again, thank you for allowing us to use the kind of the name reference.
It's good.
It's like funny stuff. C++ under the sea is not actually under the sea, it's in Breda, which is above the
sea level, but if you come to the Netherlands, 75% of the country or something like that
is below the sea level.
So you'll feel good. It's a nice place. But if you come to the Netherlands, 75% of the country or something like that is below the sea level.
So you'll feel good.
It's a nice place.
And we do the conference second time, second edition will be in October 9 to 10.
And I want to use this couple of minutes to advertise you the call for paper, which is
still open and will be once the episode is live.
The call for paper is still mid-June.
June 15 is the due date. So please make sure you submit.
That's a great event. We already have a great set of submissions and I really enjoy that. We're
going to have two tracks this year, two days and two tracks. We're expanding. I said the whole
conference organizers that never put me in a condition that I have to pack all the submissions
into one day. It's like mission impossible.
Absolutely not that good at that.
So give me two days to pack amazing talks.
And we have a general C++ track and a GPU track.
So if you're into any of this, please submit.
We have announced the keynotes with Sean Perrant and Walter Brown.
There are more coming and there will be workshops.
So this is an amazing event.
Lots of local people, but also lots of people coming from like outside and
American people fly in, which is great.
And also lots of European people.
Well, there are lots of conferences in Europe for C++, so it's cool
to have the audience actually.
So yeah, that's what I'm doing.
So still a little bit of C++, but not as a main job.
But yeah, for sure is my heart is with the Celine team always.
And they know that.
Yeah, that's it.
So yeah, you will be hearing from my lawyers about the naming, but final call for papers.
I will put the link in the show notes, but as Anastasia said, time is running out.
Yeah, thank you, Phil.
Yeah, well, thank you for that. What about you, Guy?
Well, I can't remember the last time I was on the CPP cast. A lot has happened over the past two years to me.
The last time you were on was when you were talking about your book, Beautiful C++ on the 9th of December 2021.
Oh my. Yes, it's been a bit of a turbulent few years. So I've moved on from Creative
Assembly after 24 years and I'm now working for a company called Six Impossible Things before
breakfast. We're making a game engine. It's called Bloom. So that's exciting. We've now
got some name look up for people to do.
That's a, come on.
That's a callback.
Thank you.
That's a callback joke.
I did get the Alice, I did get the Alice reference though.
Oh, you did?
Good, good, good.
Yes, yes, yes, yes.
But not the joke.
I'm sorry.
I'm just really bad at this.
I'm sorry.
Don't worry.
We still love you.
It's okay.
So yes, I'm working at Six Impossible Things. I'm the head of engineering there. I seem to be mainly doing documentation and training leaders and stuff like that, but which is great. I love that sort of stuff. We are yet to actually publish the product. It'll be here real soon now, I'm sure. And everyone's gonna love it. I'm almost certain. I've also become the chair of...
Before breakfast.
Sorry, what was that?
Before breakfast.
Before breakfast. I've just had breakfast. So because right now I'm in Frankfurt rather than
in my beloved Breitern and Hove, I'll be addressing a meetup this evening where I'll be talking about
floating point arithmetic, which is my big thing right now. One of the impossible things
that we're trying to attempt is to solve the problem of reproducible floating point arithmetic.
If you're running a simulation on two platforms with different compilers, so
you're running different binaries, then the floating point arithmetic just, well,
it will diverge under anything but the most trivial circumstances.
And I'm trying to fix the standard so that we can have reproducible floating
point arithmetic, which has many applications besides divergent simulations.
There's also testing financial things where you're moving to different containers and
suddenly all your mass falls apart.
That's really awkward.
So it's a problem that needs solving.
So I'm talking about that quite a lot at the moment.
I've also become the chair of the ACCCU conference, which was a bit of a surprise
that happened last year.
Indeed, indeed.
And you did a great job.
It was an amazing conference.
Thank you so much again for that.
I very much enjoyed it.
I love the positive affirmation because, you know, it's difficult.
It's difficult to know.
You look out there and it's like, see your faces thinking, well,
are they all having a good time?
Engineers don't jump and shout andatter. Yeah, this is brilliant.
Except for Matt and me.
You know, some people do.
Yeah.
Because if we need more robots in the keynote, maybe we need more robots.
OK, I'm going to get in touch with Scott Hanselman for next year's keynote.
Yeah, so I'm enjoying chairing ACC.
He's coming with his own set of problems.
More on that later, I'm sure.
But everything's pretty groovy right now.
And if no one's seen me for a while, I've also grown a beard, which is quite big.
A substantial beard, I might add.
It's one of those things I thought, I'll just see what happens.
And it's still growing.
It's just getting a bit ludicrous now, but anyway, um, I think that's all
the things I'm doing.
Let's see chair of ACU conference, working in a new company, set of engineering.
Well, I've started, I've started singing musical theater.
Come and see me performance.
We need to have the demon Barbara fleet street by Steven Sondheim on July
the 13th in Brighton.
Um, sounds pretty amazing.
Well, you know, I like to try. Yeah, I'm done. Move on.
Come on. All right. All right. So before we move on to Matt, I actually need to apologize. I should
have mentioned this in the beginning when I said it's so awesome that Jason is joining us from like
his hike across the Netherlands. Matt is actually joining us from his home as far as I can see. But
joining us from his home, as far as I can see. But Matt, you actually got up at 3am in the middle of the night to be here, which is a sacrifice that will never be forgotten.
Thank you so much for doing this. It's a very heroic thing to do. It is challenging to get
this many people across this many time zones on one call. And so yeah, you took one for the
team and you literally got up at 3am. So thank you so much,
Matt, for being here. You're so welcome. I couldn't miss this. Yeah, no. So yeah, right now it's
quarter past four in the morning. It's 3am is a terrible time to wake up for anybody because it's
do you stay up late or do you get up early? It's just in that wrong spot. You know, if it was like
4.30, I'd have been fine,
I'd just got up early, but I got up early. But we're good here anyway, luckily. Ironically,
my wife has just returned from the UK, so she is on British time. So I left her in bed waking up
at the time when she would normally be getting up in the UK. So it's very confusing. Poor woman,
it's going to be even more jet lagged than not. But yeah, I am, as you say, at home and home for me is Chicago still.
I'm actually in between jobs currently.
I left my previous job at the end of last year.
One of the unusual side effects of working in the finance industry in America is that very often there is a contractually
enforced gap between working at one finance company and starting at the next one. That
is what I'm currently doing. So I have essentially a sponsored year off in which I am working predominantly on compiler explorer. Although I had a bunch
of conference talks, two people in this call, in fact, probably three people in this call,
are at least responsible for some of the fact that I have conference talks to either prepare
for or have prepared for. Yes, you do, don't you? Yes, yes. Yeah.
So yeah, that's kept me very busy. And then
because you've got this sort of gaping expanse of time in front of you, you kind of go, well, I can
do something a bit more involved, a bit more impressive. And then, then suddenly six weeks
of your life get eaten up by a project that you're writing only so that you can then write a conference
talk about the project that you wrote. And that was certainly my experience for the ACCU. And I had a great time. And
are we doing a sort of an update for C++ on C? So that's definitely keeping me busy. And I've got
some other conferences later in the year. So I'm, you know, there's a lot of things going on there.
So I'm, you know, there's, there's a lot of things going on there.
Yeah. And then, um, uh, yeah, compiler explorer, obviously my, my, my, this is a golden
opportunity for me to work on it and try and get it up to, up to speed in a
number of places where I haven't had the opportunity to invest in like
infrastructure or stuff behind the scenes.
As, as per the blog post, there's a ton of things that go on behind the scenes
and each one of them is kind of a big deal once you reach the scale we're at.
So you mentioned Timor, the four terabytes of compilers, you know, we build somewhere
in a region of 24 or 25 different trunk builds of Clang and GCC and other compilers every
night and GitHub is not really the place to do that because the machines aren't fast enough
and big enough to do that. You need some beefy servers. So we have our own infrastructure for
that. And so building and then deploying and then rolling them out across a fleet of 20 odd machines
is kind of a big project in itself. That's one thing. Four terabytes of compilers that you want
to share across a fleet of computers is another big deal.
You can't just chuck it on a network drive and hope for the best. You can, and we did for many years. You can, and we did, and we have done. But then you're like, well, this is great,
but compilers are very sensitive to thousands, especially if you're including boost headers and
things like that. They tend to include other boost headers, which include other boost headers, which include thousands
of little files.
And that's not a great use of the network file system.
The latency kills you there.
So we have all sorts of weird and wonderful tricks to try and make that go fast, but they're
very much duct tape and bailing wire and held together. And now is my prime opportunity to redo that
properly. Although I keep getting distracted by shiny and interesting things. So I haven't
quite gotten there yet. So I'm about halfway through my gap. And with staring at sort of
six months more of compilers for a Dedicated work. I was looking, taking stock
and going like, well, I haven't quite achieved all my goals yet, but maybe I never will.
That's keeping me very, very busy. Obviously, spending some time with my family is the classic
thing one does when one isn't working, but whether they want to spend time with me.
I actually just rented an office because my
family had had enough of me being in the house all of the time. So I spend a few hours a day
away somewhere else. But yeah, that's me at the moment and looking forward to a lovely summer
of compiler explorer work.
Toby Isenberg So that's sort of bringing us up to date on what you're all doing now.
But what else have you got going on, sort of looking forward to the future?
I mean, Matt, you've just said that you're starting a new job in about six months.
So you're obviously looking forward to that.
But what else have you got lined up?
Well, I can talk about that because next week we have Sophia.
We have WG21 meeting in Sophia where we will finalize C++26 and put it out to the rest of the world to comment on and say, hey, yeah, this is great.
Or no, for the love of God, this is dreadful.
Change all of this.
We're hoping that won't happen because, you know, we operate by building consensus and all objections should have been heard by now.
But it's always fun
seeing what the complaints are. So Sophia's happening next week. I'm going to that.
My floating point stuff is not going to make C++26. That would be silly.
But further down, the whole conferences thing is great. It's remarkably time consuming. But it's great reaching out to community and saying, right, okay, we've got a conference to come. We've got ACCU next year. I guess I'm getting quite involved
in the conference community in so far as, well, there's stuff to be done now. I'm the
chair. The buck stops here with finding out how to get keynote speakers and things like
that. I've never been the chair of a conference before, one-oh. I have been the chair of a conference once
and that was a couple of months ago.
And for some reason, I'm still the chair of the conference,
which is great, but now we have to find more keynote speakers.
So, any thoughts on who keynote speakers might be
will be very welcome at my email address,
or you could email cppcast and they'll forward it to me, I'm sure.
I'm just wondering how many, like we have quite many conferences now on this call.
It's quite healthy, certainly. Yeah, it's cool.
Yeah, anybody else wants to talk about any future stuff?
I kind of talked already. So yeah, it's C++ under the sea for me, obviously.
So we'll close the call for paper and then my work starts.
Right.
So I have to prepare the program and make sure it's awesome.
And yeah, announce everything.
I think we will be gradually announcing once like crawling out in
batches like the last year.
And I'm really looking forward because that's the biggest C++ now event for me in the year,
because generally I'm not joining that many.
Like this year it was only ACCU for me, but mostly because I promised the conference to
do a keynote.
Yeah.
So, I'm not going to any others like C++ on the sea and CppCon obviously, so I'm not going
this year, unfortunately.
I would love to, but I have too many other travels to say like, okay, I also will go
to C++ conference.
I think I will be fired from home at this point of time.
My residence permit at home will be ended by my husband, obviously, because I'm traveling
too much.
So yeah, I'm trying to keep the sanity and the August will be absolutely crazy for the
business trip.
So yeah, I guess it's a no-go for September.
Unfortunately, but I wish you all a great time there because I really love CppCon and
that's a great place.
Yeah, and I've been, what was it?
It was last year or the year before. Anyway, so I really enjoyed that.
It was my first time to Gallup's Rocket and that's an amazing view and a great company
there. I really miss it and I will miss it for sure. My days are busy with all this
AI disruption and that means I can't plan for
more than a couple of weeks because the things are changing.
Which is four years in AI years, right?
It's like God gives and it works, isn't it?
It's such a weird feeling when you say like, oh yeah, it was a very old blog post, like
literally a couple of weeks ago.
Like, yeah, that's weird, old news.
We all know that. It's like yesterday Like, yeah, that's weird, old news. We all know that.
And it's like yesterday.
So yeah, that's my life now.
So it's changing quite fast.
And with all the new things, new toolings,
and you constantly try new things,
and all these like agentic coding,
I keep trying them on C++, I will tell you.
So I have my project. It was actually during the
ACCU. I was playing with the Vinsurf and I coded some game in C++ with Qt, which is just playing
with the ball. And then I was trying to do some changes to it, improve the game, kind of add some
fancy stuff, like some magic balls. At some point of time improve the game, kind of add some fancy stuff,
like some magic balls. At some point of time, the game were just like, you know, you can ruin it
with just one call for AI, then like, okay, revert everything back. I don't want this version.
It's just a mess. But it seems that the systems are getting better because I managed recently to
actually update the Bisyphus code and like actually improve it to maintain quite a huge code base already.
I need to see carefully what's inside and how bad it is in terms of the coding, but it looks fine.
It even properly uses some more than CMake things. So not that bad actually. Yeah. And Qt,
also, I think it uses all the modern stuff from Qt. So I
actually learned a few things even. I was not using Qt
heavily in the past. So all these things about the memory
management in Qt, which are quite new to me. So I was reading for that.
Yeah.
So that's what I'm trying to do, like playing with this AI agentic stuff.
We now, because we released the preview of AI agent in Visual Studio Code.
And I was like, okay, I can take the Visual Studio Code, take our AI agent
and try now to improve this project there.
And it works.
And I'm like, okay.
to improve this project there. And it works. And I'm like, okay. So now I'm trying to ask it to write some tasks. I managed to force it to download the Google Tasks for me and to actually attach it
to the project. Now I need to force it to write some tasks for me. And the goal is not to write
any line of code and to get something decent in the end. Yeah.
So this is crazy.
I actually, yeah, that is fun.
I actually featured ACCU.
You know, I told to some of you that during the ACCU, I was bored at some point of time
during the break and I wrote the session planner.
You know, this planner is where you can click the sessions and select your own
shuttle and it says to you, like,
you will spend this amount of time during the sessions. And also I like ask to color
code the sessions like with different colors, like what it refers to like C++ or something
different. And yeah, so I did this planner also with AI. So I didn't write a single line of code.
It was all like JavaScript and Python and stuff like this with some webpage.
And so when I had to, when we were releasing this AI and Visual Studio
code, I had to very quickly during travel, like it was a flight to
U.S. to Amazbuilt, I had to record a demo.
I was like, okay, what I can do?
I can do anything really except of like C++ or this vibe coding.
And I actually did a demo with this ACCU session planner.
So you kind of all featured in this demo now on your brain site,
because I was building this planner in this quick animation where I was just asking the
agent to update some stuff. And I think, yeah, add some extra UX where I could look at
what I'm actually planning for my day. So yeah, the planner is still alive. Maybe it will become
bigger with some other conferences. So yeah, this is the AI fun for me. That's all my days.
I'm finding agentic AI fascinating, particularly for game development, because
I'm finding agentic AI fascinating, particularly for game development, because one thing that we have today is enormous compute power available on the desktop for when you want to for writing games. When I started writing games, every every
cycle counted. But now you can get some quite, you know, entertaining and amusing games. And you don't need to be quite so
fussy about about making every cycle count.
You've got so many cycles to spare.
AI doesn't necessarily produce the most optimal code.
I mean, it's the whole thing with vibe coding, isn't it? It's good enough.
And for games, certainly the level for good enough is becoming lower and lower and lower all the time,
as more compute becomes available to people in their hands, on, in their hands on their phones and at their desktops.
All right, so we're almost an hour in now. So there were loads of things that you wanted to discuss with you. I think we don't have time for that. Unfortunately, we need to skip straight to, I
guess, our traditional last question, which I guess will keep us busy for quite a while still by this
episode is still ongoing. Which is apart from all
of the stuff that we talked about, like conferences, obviously AI. Is there anything else in the world
of C++ right now that you find particularly interesting or exciting? And you're not allowed
to repeat what the previous person has said. You have to come up with something else.
to come up with something else.
Guy, Guy, Guy was the fastest one. So, so, uh, reflection is that it?
I'm not going to say reflection.
Everyone said reflection and you know, it's great.
And, and, you know, amazing stuff, but
apart from reflection,
safety profiles,
all right. Security safety profiles, honestly, the whole, and I appreciate this is your gig teamer with contracts as well, but I'm just relieved that we're actually
getting some, we're making progress on making the, making code safer and more secure and more
just, just less dangerous to use, taking the knives, putting the knives in the drawer, you know?
Yeah. So if you want to know more about that, come to my keynote at CPP on C in just under two...
Wait, when is this episode going to be released?
Just over a week. Yeah. Yeah. All right.
I'll be there. It'll be great.
I'll also be there. And I'm going to steal ahead because I'm not actually going to be stealing
anything from Anastasia in terms of C++ things to repeat, because I've been out of the C++ world
pretty much for the last six months. I am pretty much entirely a TypeScript and JavaScript programmer
at the moment, what with the compiler explorer stuff, except for the little bit that I did
earlier in the year for the ACCU. So yeah, I don't know that I, I don't even know what's coming.
I'm interested to hear about what safety profiles are, so I will look forward to your keynote, Timur, with some interest.
As you know, I have been hacking some other languages that are like, I did spend a bit of time doing some Rust programming again. And you know, obviously there's, there's, there's safety related things to do with
that, but it'd be fantastic to come, uh, have those aspects of that in my sort of
more native tongue, C++.
So sounds intriguing.
Um, but yeah, I don't know.
I, I've lost track of where we are with C++ rather sadly.
So Anastasia, what are you looking forward to in C++? Or do you
even, yeah, you say the C++ is still in you.
I will learn more when I read through all the papers submitted to the conference. That's
how I learn usually, you know, because you like read about things like, oh, that sounds
cool. Is it really coming? And yeah, because I'm not going that often now to the events
and same as you, I'm like not really following all the news, but I enjoyed being at ACCU and I actually learned a lot because I'm now
missing big batches of the things happening in C++ world.
I still like in all the channels with the C++ team here at Chairbrains and they share
lots of news.
So quite often I still do read through all the articles they share.
And I actually recently shared your black post Matt, the compiler
explorer, saying to them like, look, these are amazing numbers.
So yeah, but I think you named most of the things I was like excited about
because sorry, like sorry, Tim, it is reflection to me, I mean, because I
now work a lot with game dev people and every
time we talk to them, it's very insightful for me to usually,
like I asked them like, will you rewrite all these macros when
the reflection is there?
When will it happen?
Because it really matters for the tooling that supports, right?
And every game engine, they have this reflection kind of manually
made, manually cooked, they have no other options. So this is the thing that all the game developers, they have this reflection kind of manually made, manually cooked. They have no
other options. So this is the thing that all the game developers, I guess, all around the globe,
are waiting. And I keep pinging like epic people, like, will you rewrite all these macros? Because
Unreal Engine macros, if you don't know, there are like lines macros inside. So there's the creepiest
macros in the world. So I'm wondering if they're going to do that and how fast they're
going to migrate to the actual reflection stuff. Because it also depends on the vendors checking
the new standard and migrating to a new standard. It's not just like you can do that on your own.
You need to have all the SDKs also migrated. So it's interesting to see how much time it
actually takes in practice. Because for me, it's not about when the feature is accepted in the standard. If you're in the
standard committee, that's what matters for you probably. But for me, it actually matters when the
people start using that, really using that on their commercial projects, when they require the
support from the NID, when they come with all the kind of creepy cases to us, which you've never seen before.
So yeah, I don't want to know how much time it takes.
That's really important feature for me, like milestone in C++.
So looking forward for that.
So speaking about how much time it takes, the reflection is actually not in C++ 26 yet.
Yeah, yeah, yeah.
We have a meeting next week, which is going to be the last meeting where we can approve
any wording for C++26. So it kind of has to be finalized in terms of wording by the end of next
week. Otherwise it's not going to be in C++26. And I know that the people on the committee who
are in the kind of wording review groups have been
moving heaven and earth to try and like get through it. And they have been like meeting every week.
Jens Maher is a god amongst men. He chairs Core, you know?
Yeah, he chairs Core, which for our listeners is the subgroup on the committee, which reviews all
the core language wording and like all the every word of it, every comma of it, and you have to approve it.
And so they're not actually through with it yet.
And we got like just over a week left.
So it's getting tight.
Yeah.
It's like, uh, everybody really wants to, to, yeah, everybody really wants to get it done.
So I'm hopeful.
I don't know, like beer, popcorn, to anyone to support.
I don't think they drink beer in there. They're like, coffee, coffee,
concarbonated sugary drinks, maybe. I don't know.
Okay. Chocolate.
You said me chocolate. Yeah, please.
Well, I'm cautiously optimistic. But like, yeah, let's see how that how it goes.
Nothing's certain till next Saturday.
Yeah, let's see.
Yeah, the next episode is going to be interesting reporting and all of that. So stay tuned.
Which I think is a good point to wrap up then. So thank you all for coming on today. I was going to interrupt you, Phil, to make your editing life more miserable, because
coming on today.
I was going to interrupt you, Phil, to make your editing life more miserable because this being the 400th, sorry, sorry, editor Phil, this
this being the 400th episode, I did a bit of digging in the previous 399
episodes. And in doing so, I discovered you're actually missing one. So
hopefully that will sorely missed. Which episode were you missing?
Toby Smith Well, we had this conversation, was it last
night? And I-
Angus I think 292. And it was amusingly about something.
It was amusingly you said something, it was always, there you are. So do you remember
what it was now?
Toby Smith So it was the episode about freestanding. And
my comment to you was the typical of freestanding is always getting
forgotten. It was getting forgotten and left behind. Yeah, exactly. So I think it was only
idiomatic. But yeah, no, so I'm very sorry. I scraped your website to get all of the information
of all of the previous episodes. I could have just given you the data.
But that's boring. Come on. I was actually cleaning the house before my wife came back and I just set
the, the, the coding AI bot to say, can you just scrape this website and give me
all this information, please write me a Python script to do that, which is
perfect for, and I can tell you that your shortest episode is 26 minutes and 28
seconds long, the longest episode.
It was actually Daisy's one, ironically enough about
AI recently, for one hour 15. So this one may beat that. We'll see after it's been edited.
The average episode is 52 minutes long, plus or minus nearly nine minutes. And if you were to sit
down and listen to every single episode,
if you did eight hours a day, so nine to five, five days a week. So if it was your job, it would
take you nearly nine weeks to get through the entire set of, of, uh, CPP cast. So I mean,
what a, what a milestone for this podcast to have so much C++ content.
So I need just nine weeks to learn everything about C++.
Everything.
Exactly.
Yes.
And now you may go to the wrap-up.
Yeah, we can't claim credit for all 399 plus one episodes. I will get that back on the,
it's only missing from the site by the way, for some reason it missed the import. But yeah, we took over, what episode was it we took
over on Tuma? I should have this data.
Oh, I should remember it. I should remember it. Was it 350? I think was the first one
that we did.
That sounds about right. Yeah.
Yeah, it was also a round number.
About two and a half years ago. We. So we've been doing it for now.
But yeah, Robin Jason really did the bulk of those 350 episodes. So we stand on the shoulders of giants.
Can I take one more minute?
You can edit it out if it's too long.
I just want to do one more thing very quickly to our three guests here.
If there was one like topic or guest or something else, somebody we should do on
the show or like one thing that you wish we would do or change or whom we would
invite or what we should talk about.
Is there anything that comes to your mind?
I wouldn't say specifically a name, but I would say I really enjoy the episodes when we can learn
from some experiences. All the people come in and say, I use that this way, or I have this kind of
creepy, interesting, challenging usage, whatever. So I really love listening about experiences.
So obviously, new stuff, especially all the contributors to the language are awesome.
But listening to the people who are actually using all these things in their daily life,
and who can share what is challenging is always interesting to me. I don't know,
I'm that kind of a person probably. So that's my take. Yep.
Mine's actually quite similar to that. I'm very interested in the history of how do we get here?
How do we get to the point where we've got this 2000 page document, which is the C++
standard?
What came before us?
Whose shoulders are we standing on?
Rob Irving, very tall shoulders.
He's a big lad.
But there are many other people on whose shoulders we're standing.
And they're starting to die off, you know, not to be too dark about it, but computing
is now becoming quite an old topic.
You know, Anthony Hoare is no longer with us.
He invented quicksort, you know.
So it'd be great to get some of the founders or what's left of the founders, you know,
talking about how we got here.
Hmm.
Fascinating idea. Yeah. Yeah. I mean, you've, talking about how we got here. Hmm. Fascinating idea.
Yeah.
Yeah.
I mean, you've had some amazing people on the podcast.
Some of them do fit that category.
I think of being, you know, like those, the giants that have, uh, that we've
built on, on the top of, but no, I mean, I, I, again, I think experiential
reports are really fascinating.
Um, I mean, I tend to listen to CPP cast while I'm walking the dog or gardening
when I'm not dictating to AIs. And so, you know, it's really great to have that sort of
more discursive type of content. The technical stuff is great as well, but it does require more
sort of like concentrated listening. And especially when you're talking about the
more complicated topics of computer science, I think one really needs to concentrate quite hard and kind of like visualize what's
going on, depending on how you learn. But like definitely hearing someone sort of trip report
about, you know, I tried this thing out, it didn't work, or this is why that's the really
interesting bit. It's a bit like comments, right? You know, comments and coach shouldn't
say what it is, it should say the why and the how and the aspect that feels more like
what we should be having on these kind of podcasts.
Although listening to say a Ben Dean explain how something works is also very useful as
well.
So how do Bloom filters work again?
Oh, don't.
Is there anything else any of you want to tell us before we do let you go?
Yeah, great job.
Thank you for doing that.
Yeah, please keep it going.
We appreciate both Phil and Timor for keeping this sort of, this treasure of the C++ community
alive.
So thank you both for picking it up and continuing to carry that torch for us all.
Yeah.
Well, they're right back at you.
Thank you all for helping us to do that.
You've been
invaluable in doing that the last couple of years. So thank you again. Okay, so that is the end of the show. We will be back to a more normal episode next time, but probably picking up on what's
happened in Sophia. So thank you all for coming on and we'll see you next time. See you next time.
Bye. Thanks so much for listening in as we chat see you next time. See you next time. Bye.
Thanks so much for listening in as we chat about C++.
We'd love to hear what you think of the podcast.
Please let us know if we're discussing the stuff that you're interested in, or
if you have a suggestion for a topic, we'd love to hear about that too.
You can email all your thoughts to feedback at cppcast.com.
We'd also appreciate it if you can follow cppcast at cppcast.x
or at mastadon at cppcast.com on mastadon and leave us a review on iTunes. You can find
all of that info and the show notes on the podcast website at cppcast.com. The theme
music for this episode was provided by podcastthemes.com