Algorithms + Data Structures = Programs - Episode 136: 🇬🇧 C++ On Sea Live 🇬🇧 CppCast, TLB HIT & Two's Complement!
Episode Date: June 30, 2023In this episode, Conor and Bryce record live from C++ On Sea 2023 and interview all the other C++ podcasts: TLB HIT, Two’s Complement and CppCast!Link to Episode 136 on WebsiteDiscuss this episode, ...leave a comment, or ask a question (on GitHub)TwitterADSP: The PodcastConor HoekstraBryce Adelstein LelbachGuests InterviewedJF BastienMatt GodboltJonathan Müller (Briefly)Tristan Brindle (Briefly)Phil NashTimur DoumlerShow NotesDate Recorded: 2023-06-29Date Released: 2023-06-30C++ On Sea ConferenceC++ On Sea 2023 Keynote: Endnote: AI-Assisted Software Engineering - Bryce Adelstein LelbachC++ Club PodcastTLB HIT PodcastJust-in-Time Compilation - JF Bastien - CppCon 2020C++ On Sea 2023: *(char*)0 = 0; - JF BastienTranslation lookaside buffer (TLB)Photo of JF, Bryce and Conor on TwitterTwo’s Complement PodcastCroc: Legend of the GobbosCompiler ExplorerC++ On Sea 2023: Throwing Tools at Ranges - Tina UlbrichCircle CompilerC++ On Sea 2023: What’s New in Compiler Explorer? - Matt GodboltThink-Cell Is HiringC++ On Sea 2023: Iteration Revisited - Tristan BrindleCppCast PodcastC++ on Sea 2023: C++ and Safety - Timur DoumlerC++ on Sea 2023 Keynote: All the Safeties - Sean ParentC++ Lambda Idioms - Timur Doumler - CppNorth 2022Intro Song InfoMiss You by Sarah Jansen https://soundcloud.com/sarahjansenmusicCreative Commons — Attribution 3.0 Unported — CC BY 3.0Free Download / Stream: http://bit.ly/l-miss-youMusic promoted by Audio Library https://youtu.be/iYYxnasvfx8
Transcript
Discussion (0)
And I also have a podcast called TLB Hit, TLB.it.
You should listen to us if you want to hear two friends just chatting about software engineering practices,
which sounds kind of familiar, I think, for you two.
But there's far fewer conversations about the interior design of either of our houses.
Look, it was one time.
Hello, my name is Timur Dumler. I'm the co-host of CBPCast.
I'm here at the CBP on C conference.
Just talking to Timo about this, actually, he was saying that our podcast is almost like
complete opposite, because we're sort of like very structured and follow a bit of a formula,
whereas you're completely chaotic. But it's like we complement each other. I think we
have room for both. Welcome to ADSP, the podcast episode 136, recorded on June 29th, 2023.
My name is Connor, and today with my co-host Bryce, we interview live from C++ on C 2023,
some of the hosts of three other C++ podcasts. We interviewed J.F. Bastian of TLB Hit,
Matt Gobboldt of the Two's Compliment podcast, and Timur Dumler and Phil Nash of CppCast.
We're here live, except we're not actually live. We just like to say that. We just like to say that.
We're live at C++ on C2023.
It has been a great conference so far.
We got Bryce's keynote, last keynote happening tomorrow.
And the good news is the slides are mostly finished.
It's only 9.30 p.m. the night before the talk.
Which is why we're doing this interview right now.
We are going to talk to all of these C++ podcasts, except for CBP Club, because they're not represented here.
Should I maybe take away that glass of wine?
Is CBP Club a real thing?
Listen, it's a real thing.
And they're the least subscribed to C++ podcasts.
We've got to think of a more polite way to say that.
No, we're saying that so that people go subscribe to them. Oh yeah, definitely. Go subscribe
to whatever this is. Actually,
I actually don't know.
TLB Hit might be
less subscribed to.
Well, then we should start with them.
Let's go find JF, folks.
Okay, I know where he is.
We've got
Mr. JF Bastien.
I'm sure that's not the right way of saying his last name, which I should know,
because we've been friends for many years.
How do we say your last name?
Bastien.
Okay, I was close. I was close.
The chair of the C++ Committee's Evolution Group.
And what else do you do?
So I work at Woven for Toyota, and I also have a podcast called TLB Hit, TLBH.IT.
Yeah, and why did we decide to start with this podcast?
It may be the lowest subscribed to podcast, definitely the lowest subscribed to podcast represented here at C++ on C.
Is it the lowest subscribed to of all? Probably not.
All podcasts?
Maybe, maybe.
It's a love project that me and my friend Chris put together.
And I have to say it inspired you guys to start your podcast.
Definitely, definitely.
Oh, you confirmed that?
Yeah, yeah, yeah.
Yeah, you guys and Matt.
Matt Godbold, too.
Yeah.
I inspired you guys.
And then I get to claim points from your success.
You know what, buddy? I'm fine with that because we are not the least subscribed C++ podcast.
It's okay. It's quality over quantity.
What do you talk about on TLB Hit?
Oh, we have like a whole six episodes or something.
There's actually a secret episode that we've never released that we recorded
two years ago. We should probably release it.
But we talk about
just like how computers work
or deep
programming topics, but we're very
particular about it. There's a lot. I was
telling Connor our process, and it's
multiple hours go into a single episode.
So you do
this like preparation thing.
Yeah, so we have a list of ideas for episodes.
We collaboratively write it on a Google Doc asynchronously.
Then we block off time to do a rehearsal
because we have a script that we write.
We decide who's going to hit which topic.
And that's like an hour and a half to do that prep.
And then we do the recording.
We used to do the editing ourselves. Now we pay a company to do that prep. And then we do the recording. We used to do the editing ourselves.
Now we outsource.
We pay a company to do the editing.
And, yeah, it's quality.
They only have six episodes, though, so it's not that expensive.
But Connor and I, Connor got out all the recording equipment,
and he's like, you know what we're doing here?
We're going to make all the other podcasts look bad.
And then this guy comes over, and he's got a process.
There's a Google Doc.
What is the next episode that we can expect?
Oh, I don't know.
Chris and I haven't decided.
We just like, so the thing is with the time zones,
because I'm in Japan, he's in California, we both have kids.
It's hard to find a time that works, right? And so we did a call last weekend just for the kids to talk because they're
friends because that means we didn't record because we just had the kids talk yeah and and
so like eventually we'll we'll be like oh we should do another episode right around the time
i think connor was going to remove us from the active podcast list that he maintains well uh so
what what were you doing here this week? Tell us about your talk.
So my talk is actually,
we had a podcast,
our episode number one,
second episode,
which we count from zero,
is Star Car Star Zero Equals Zero.
So it's an idea that I had years ago
to do as a talk,
like a conference talk.
And I told Chris about it
and he was like,
let's do a podcast about that.
So we did a podcast about it.
What is the premise of this talk
slash podcast episode? And also,
this wasn't the talk that you gave
at a committee meeting at one point
on different programming. That was totally different.
I only give talks once, usually.
So it's a one-off. It's a shame
that that talk that you gave, I can't remember if it was
at Cologne or at Belfast,
but that talk was fantastic.
You should give that at a conference.
It was different programming language histories.
Oh, I remember that, yeah.
CppCon 2020.
I gave that talk about JITs.
Oh.
Yeah, yeah.
Link in the description, folks.
We'll find it.
We'll link it.
Go watch it.
All right, but back to this talk.
You gave the title of this talk, but what is it about?
Yeah, so StarCars-star-zero-equals-zero-semi-colon.
And so it's an interview question that I've used more than 100 times.
You are a cruel interviewer.
Yeah, but it's for systems and compiler people that I've used it.
And so the idea is I write, like, int main curly brace star-car-star-zero-equals-zero-semi-colon,
return zero, curly brace.
And I say, talk to me about this code.
And sometimes there are listed emotions,
like this is terrible code and things like that.
But the goal is to see your systems or compiler person,
like what calls out to you?
Do you want to talk about the front end,
about undefined behavior, about things like that? Do you want to talk about how the machine works?
Do you want to tell me how silicon works?
And I've never gotten the same answer ever.
And so my talk is kind of breaking down the different approaches,
how you could answer that,
and showing a lot of the systems and compiler people
like to look under the hood and poke at stuff and see how it works.
And so that's basically the talk.
And it's also a bit of an art project because I have nice animations and stuff.
It's definitely better than your talk, Bryce.
That may be true, but we won't know until I finish making the talk.
Also, you're talking about this talk quasi in the past tense.
It's tomorrow, correct?
It is tomorrow.
I totally thought it would happen today.
It's going to be amazing.
Is it scheduled against my talk?
No, it's not against your talk.
You're a keynote. Oh, that your talk. You're a keynote.
Oh, that's right.
I'm a keynote.
Oh, my God.
He baited me.
He's not a keynote.
He's an end note.
End note.
I got you.
I don't think I've ever been more upset live on the pod than right now.
Stop it, Ryan.
I thought you were. Link in the description to the pictures of Connor being mortified.
I thought you were being daft.
I'm not, folks, I'm going to back off for the rest of this pod.
I've clearly had too much wine, and I'm just going to be in the background.
What happened there is that Connor thought he had a chance to get me,
and he activated my trap card.
So anything else you want to tell the people?
How about a question about have you been to C++ on C before?
Is this your first time? How did you find the conference?
Oh, yeah, first time here.
So I decided I wanted to rotate different conferences
because there's a lot of new ones coming out that are really interesting, like CoreCPP, the C++ North.
And so with kids, it's a bit hard to travel,
so I picked C++ on C because it seemed cool.
It's a place to give a talk.
Next year, I'll try some other one.
It's nice to meet different people and communities.
And so far, it's a really nice conference.
You can see France from the balcony here, which is funny.
So we're on the sea in the south of England.
You get to see France sometimes.
It's funny.
But yeah, it's great.
Talks have been great.
People are nice.
So really, really enjoyable.
The one downside is Bryce is here, but otherwise it's great.
So wait, last question is,
I don't actually think you have necessarily told our listeners
why they might want to listen to TLB Hit.
You haven't actually explained what the acronym, because when I first started listening to TLB Hit.
Wait, you don't know what TLB is?
Okay, listen.
Don't shame me, okay?
I'm a high-level person.
We've discussed this.
You're the low-level person.
You work at NVIDIA.
Yeah, you know what?
And I told them not to hire me, okay?
I said, I don't know anything about hardware.
So anyways, give a little pitch for your podcast.
Why might our listeners.
Also explain what a TLB is.
Yeah, so you don't necessarily need to subscribe. It's just a LovePad project,
so whatever. I think our episodes are pretty good, but it's fine.
Definitely better than ours.
But yeah, and if you work for NVIDIA, you don't necessarily need a TLB, right? So NVIDIA is all
about throughput, not latency. You could turn off the caches, and it's like a 10% per fit,
whereas for CPUs, you don't get that.
So a TLB is a translation look-aside buffer
when they do virtual to physical address translation,
either within the cache or in the MMU just before the memory.
And so it's a cache for the address translation from virtual to physical.
And so it makes your hardware faster,
unless you're NVIDIA, in which case
you don't care because you hide
that latency with a lot of throughput.
So you don't need it, Connor. You're okay.
Perfect.
Alright, I think we should wrap there because I see that they're bringing out
my dessert and I don't want my ice cream to melt.
We're going to take a break.
We've got two more people. I know, but we're going to take a break.
I told Bryce,
why don't we do this after dessert? And he said, I got a schedule. We're going to take a little break.
You're going to finish your wine. Any final words? All right. Well, enjoy dessert. All right. Wait,
do you want any, any, uh, you know, hot takes? You want to just trash the other pods? What do
you, I mean, I don't listen to your pod, so it's okay.
Mic drop. I think we're going to leave it there folks
We'll be back in a few minutes
Let's go ambush him
We have refilled on wine
I have stolen a bottle of wine from my table
Mr. Godball
Hello
We require you
You require me
Alright, oh
I'm being ushered away from my table.
Oh, Brian has tripped over a chair.
I'm falling over chairs.
You did pretty well going backwards.
Yeah.
I'm not doing a great job of holding the microphone.
And actually holding it to my face.
We have to hear you too, right?
I guess we do, but I'm very loud.
But anyways, we are back again.
Connor has a fresh glass of wine.
Wait, yes, I do.
Don't worry.
Teamers, we will find you and Phil.
Actually, you want to say hi first, Teamer?
I'd like to say hi first.
Just interrupt the...
Hello, how are you doing?
Good.
All right, we'll find you and Phil.
So that's Teamer from CppCast,
but we're talking to Matt Gobble from Two's Compliment.
I don't even think Bryce knew the name of your podcast.
I did not.
You saw it on my face!
Why would Bryce know my podcast?
Who listens to it, honestly? I mean, I
do, and many others do. Bryce
does not even listen to our podcast.
Yeah, well, that gives you a certain amount of link.
Okay, alright, but to be fair,
I'm here when our podcast is
recorded, so I've listened to it
once. I listened to it live.
I had the best experience of it. I mean, there's been at least six or seven episodes now that you weren't there for it, and I've listened to it once. I listened to it live. I had the best experience of it.
I mean, there's been at least six or seven episodes
now that you weren't there for, and you've definitely
never listened to those. No, I listened
to the CPP Now one, the
first one that I wasn't on. I listened to it. Oh, that's true.
With Ben Dean, which Tony
joined halfway through. Anyways, we're here
with Matt Gobble, and
unfortunately, Ben Rady, we're very sad that you're not here
as well. Your voice is missed as the co-host
of Two's Compliment.
Tell us about your podcast, Matt.
What do I need to say about my...
I mean, my podcast is not really
specifically about anything.
It's just programming in general.
But because it's me,
I do do a lot of C++ related stuff.
So I guess in a way,
it's a bit like ADS-B,
where notionally it's about languages in general,
but it kind of has a bent towards the kind of stuff that you do in your day job.
Mine is more towards what I guess I like doing rather than what anyone really has asked for.
Wait, wait, wait.
You like doing C++?
Because I'm not here by choice, man.
I mean, so we tend to talk a lot about more low-level stuff, although
Ben then talks about testing, so we get a bit of both.
I was going to say, Ben Rady does,
that is, you're the C++ low-latency
guy, and Ben Rady is the testing guy.
That's an interesting dynamic. It is,
it is, and I think it's what
makes it an interesting combo, so
our sort of origin story is that we were both
planning to go into video games, and then
life caught up with Ben,
and he went off into the trading industry via a bunch of other ways.
And I did do games for a while,
and then we have rendezvoused in the trading industry.
So we're like, it's the sliding doors kind of feel.
They're like, here's the same person that's taken two routes to get to the same place.
What games did you work on?
So I worked on a PlayStation 1 game,
which was probably made before you were born, Bryce.
Now I'm saying this.
94?
Not before I was born.
Not before I was born.
I was all of two.
Oh, my gosh.
Actually, I think it was a little later.
I don't think the internet agrees with that statement.
I know Hannah definitely has an issue with that.
Hannah has opinions about your age.
So you worked on this PlayStation 1 game.
What was it called?
It was called Croc Legend of the Gobos.
I worked on a SWAT.
Yeah, stop it.
So inevitably, you know what my nickname was during the process of that.
I don't.
All right.
Well, Matt Gobalt.
Matt Gobo.
Yeah, yeah.
There's a lot of laughing that you probably can't hear off of the mic right now.
It's getting picked up.
You're getting picked up. We got it. We got it. Yeah, there's a lot of laughing that you probably can't hear off of the mic right now. It's getting picked up. You're getting picked up.
We got it.
We got it.
Yeah, he is, yeah.
So that was a PlayStation game, and I worked on the PC port of it.
I also did a swap.
It's one of the swap franchise games for the Xbox and PlayStation 2.
What was it like programming on the PlayStation 1 platform,
which I can only imagine was quirky and specialized and challenging?
All of the Sony platforms are exactly that.
They are bonkers.
I didn't spend very much time working on the PlayStation 1 version,
so I didn't get to really get to grips with it.
I was originally just a tester.
I'd been hired during my university degree,
and they were like, we want you to stop
and start working for us. And I'm like, I can't. I said, well, I can come back in the summer
holidays. But they didn't know what to do with a programmer who was going to come in and be there
for a few weeks. And I said, here's a controller. You can be a tester. That was a really interesting
experience, right? We had just decided, or we just discovered that if you videotape the PlayStation
while you're playing, it's an amazing reproduction-like system. So if you get it to crash or blow up
or you jump through a wall or whatever,
you can rewind the tape and show the developer,
look, it happens.
I actually have proof.
Because, you know, they'll be like,
there's no way you could get through the wall there.
But then, yeah, the PlayStation 2 was a real class device.
I mean, it was bonkers and crazy.
And in a sort of good ways,
if you love the kind of like the way
the disparate group of awesome hardware components are put together in a box,
shipped to you with a Japanese instruction manual that no one speaks Japanese, and no standard libraries at all, and off you go.
It took us like three months to get like a single triangle on the screen, which was like so awesome.
And then, add to the mix of it, Microsoft were doing the Xbox, the original Xbox at this time.
And they, you know, the whole Steve Bourne were jumping around on stage type thing,
they were all about the developer.
And so they shipped us a device with Visual Studio, a plug-in that you just press a button
and it goes off of your machine and it starts running on the Xbox that's plugged in.
It was amazing to see the difference between this arcane thing that was like an
embedded system that you didn't really understand and the full bells and whistles you can put break
points in they just work and all that kind of nonsense it was awesome and that was my first
run-in actually with nvidia so that was what no i tell a lie that was my second run-in i remember
getting a reaver tnt one of the original ones they shipped out in this beautiful
brushed aluminium case that was like a briefcase and you opened it up and it was all foam except
for just the card in the middle because they were trying to woo developers like us to actually like
port our games to use it and stuff how this was back this was back when like like, NVIDIA was, like, a scrappy young company.
It certainly was.
I remember going to conferences like E3 and chatting to some of the original engineers that were around.
And our name is escaping my mind right now.
But, like, they were definitely the underdog in this, right?
They were contending with, you know, 3D effects was, like, their main competitor now.
And look how different the world is now. Yes, we are now a trillion-dollar company,
and we do not send developers shiny brushed aluminum cases
with our cards.
Developers are knocking on your door.
They're like zombie hordes outside.
Give us them, yeah.
Do you miss the time that you spend as a game developer?
Is there anything that you miss about it?
I do miss having a very constrained environment
in console development, for sure.
And now I'm being photographed here.
In console development,
where you have a very well-defined system
that everyone's going to have under their TV,
and you can do any hacks you come up with
are almost certainly going to work on all the consoles,
at least the generation that I was involved with.
I don't know if that's true anymore.
I think there's a lot more leeway in terms of the parts
that they can switch in and out.
So I used to sit there with the PS2 manuals open in my lap
and you would sit there and count how many cycles it would be
and you'd open the thing and go like,
oh, I can fit a divide in here.
And you knew you could definitely get a divide in
or you knew that you could get a transfer
over through the memory bus to something in a particular time and it would
always be that time because it was the one thing and now you can't do those kinds of tricks i don't
think but very different on pc gaming environment i imagine and yeah most consoles these days are
have that thing where you've got so many layers of drivers between you and the hardware instead
of just literally poking registers so yeah going back to the Xbox, my sort of NVIDIA story about that
was that, like, Microsoft couldn't tell us.
You know, we're used to this idea that we've got registers,
we poke registers, we write memory in places,
and then we're all given direct X, and we're like,
I can't say this word on your podcast, but please don't do that.
We would like to see how the hardware works.
So Microsoft were like, we can't tell you how this works
because we have an agreement with NVIDIA,
and they won't let us tell you how it works.
So you have to use the D3D interfaces.
And then they would politely cough, and then they'd say,
if you open up D3D.h and look at what the macros actually correspond to,
you can probably infer how it really works.
And so that was the first thing we all did,
was like crack it open and go, oh, that's cool.
And we immediately went off and did a whole bunch of stuff
with the lower level stuff, you know.
So that was a lot of fun.
And I do miss that aspect of it.
But, you know, I now work in trading.
And we've got a similar-ish issue there.
We've, you know, certainly in the lower latency stuff,
which I'm not doing this at the moment,
but there's only so much that money can buy.
There's only so many computers that exist. You you know you can overclock them to some extent but ultimately
you've got like a um a physics constrained set of uh of of constraints right it's like well how fast
can this go and how long can the cables be and how how many few clock cycles can everyone's got
an intel machine or or whatever but can't you make sure that your rack's closer to where the cables plug into the wall than the other guy's rack?
No, that is a really big deal.
So in between my current gig and the previous gig, I actually worked in an exchange.
And so I got to see what happens on the other side of the TCP connection.
And one of the most fancy bits of equipment that we had at the time was a super cool thing that fired a laser beam down a cable
and it measured the reflection of it not being plugged in at the other end
and it could tell us how long the cable was and how kinked it was
so that we could measure exactly how long they were
so that we could give our clients the guarantee that they had exactly 800 feet
or whatever it was so that nobody was privileged in any way.
So, I mean, it's a big deal
it's a really important thing when you're telling traders like hey look we want to sell you this
access everyone has a level playing field level i'm going to say with air quotes here but yeah
it's uh it's an interesting it's an interesting world but i don't do that kind of stuff anymore
i do miss that a bit as well because again there's this kind of like arms race type thing
it's a purely intellectual exercise of like how can i do this with one fewer cycle or this much faster
stuff but yeah no it's good fun that is fascinating we're gonna have to have matt back on a few more
times we definitely have to have matt back on for a recording that will get turned into three or four
episodes in case folks have forgotten we're talking to Gobble, co-host of a podcast of
Two's Compliment. So why don't you tell us a bit about your podcast and why people should listen
to it? You should listen to us if you want to hear two friends just chatting about software
engineering practices, which sounds kind of familiar, I think, for you two. But there's
far fewer conversations about the interior design of either of our houses.
Look, it was one time.
It was one time.
It was not one time.
It was like seven episodes.
That's what started the whole 10X speeding up your voice, Bryce.
I was moving into the apartment.
I was excited that the furniture had arrived.
It hadn't arrived, Bryce.
You were explaining to the listener your arrival schedule
of your bed. They did not hear it because I
10x'd the hell out of your voice. Yes.
There's no furniture. Probably why
Two's Coppola is a better
podcast to listen to. It's more on topic.
That's probably true. Maybe a little
bit more on topic, but we're nowhere
near as consistent
as you two. You seem to get something out every week.
How many episodes now?
The key is low quality, high quantity.
The key is low quality and also Connor's dedication and hard work.
And also we are young 30-something men.
That's true.
Sometimes I hear kids in the background and it warms my heart.
You've also got, I think, a couple pets.
Dogs, cats.
Yeah, yeah.
And that is a lovely touch when I hear it and you're like, oh, I think, a couple pets. Dogs, cats. That is a lovely touch when I
hear it and you're like, oh, I'm sorry about that. And I was like, no,
that proves that you're not a robot.
Thank you, I think.
I passed the Turing test because my wife
may make a noise in the background
occasionally. Now, Connor,
I think you had a question for Matt.
Oh, yes. So, we've been
talking about the fact that you are co-host of a
podcast and a lot of your work experience.
But also today we competed in the same time slot, both speaking at the same time.
So and the title of your talk, if I'm not mistaken, is which is also for maybe the two percent of our listeners that don't know.
But if this if this podcast pops off on the Reddits or whatever and there are first-time listeners matt gobbalt
is infamous in the c++ community and should be more famous in other programming language
communities because you have a website called compiler explorer that does uh decompilation
so you can look at the assembly i guess it's not decompilation but anyways the point is
there's like now i don't even know how many websites. Yeah, we've got to lift up the wine glass.
We have $1,000 of recording equipment that Connor is holding a wine glass over.
But there's like, I want to say, 30 languages, including languages like Haskell and Ada,
which have nothing to do.
Is Ada one of the languages, I think?
Ada is one of the languages.
Why?
Because one of the main contributors wanted to add the language that they work in in a day job.
I actually can't.
I know some of the Ada people from the U.S. Programming Languages Committee.
But no, we have 50 languages now.
50?
Yeah.
The trick has been making it into a sort of self-service thing to add your own languages,
add your own compilers,
everything's open source. I would argue that
Godbolt has been transformative
to languages like C++
because it allows you to just go and do
the REPL-style programming that you can
do easily in other languages. There's two things I'll say.
One, that's 100% true.
The best thing to happen to C++
in the last...
Because C++ was big.
Was Godbolt bigger than C++11?
Yeah.
I mean, definitely bigger than 20.
Bigger than 20.
What year did Compiler Explorer come out?
2012.
2012.
So, yes, definitely in the last...
That's just over a decade.
In the last 12 years,
or since C++11,
Compiler Explorer is the best thing to happen.
How do we know that?
There's only one Patreon project I've ever sponsored, and that's Compiler Explorer.
Because if I pay $10 for YouTube Premium and $30 for Amazon Prime, there's nothing that I use more than Compiler Explorer.
Proof is that in the same time slot when I was giving my talk, every single code example, not just C++, but also C++ Circle,
had a link and was running on this website, which is...
What percentage of your day-to-day code development do you do in Kotlin?
More than 50%.
I don't use my terminal anymore.
I just use Kotlin.
No, no, no.
So literally, I was watching Tina's talk this morning,
which was throwing tools at ranges.
I tried to open my Linux laptop, which crashes every once in a while.
It crashed.
And when I restart it, it makes a big beeping noise.
So I didn't want to do that in the middle of the talk.
And then I realized, because that's where Sean Baxter's executable for the Circle compiler is.
Right.
And so I was like, oh, I guess I got to wait to type this in to see if I can get her code to compile on Circle.
And then I realized, what am I doing?
Let me just open my other Windows laptop, which definitely doesn't crash,
and I can just run this on Godbolt because
all the Circle stuff is there. Anyways,
we're supposed to be letting Matt talk here.
No, no, no, this is better. This is like my own
private podcast here. This is brilliant.
Compiler Explorer is absolutely phenomenal.
And let me say, Matt only
paid us a very reasonable
amount of money for this
sponsored content.
The point that we're getting to is that Matt is the creator of this website.
And honestly, we're kind of joking, but it is actually like a transformative technology.
I think it really is.
And not just C++, but other languages.
Because it used to, if you wanted to just open up your laptop,
if you wanted to just open up your laptop and start hacking away or prototyping something in C++,
it used to be that you had to go open up a terminal and start hacking away or prototyping something in C++. It used to be that you had to
go open up
a terminal and go find your compiler
and inevitably the compiler... It used to be worse than that.
When I was back in university in 2009,
trying to install a C++ compiler
was a weekend affair that would fail.
Very early in my career, one of the first things I did
was build the Linux kernel
with Clang. I'm just like, why did I do that?
Because I wanted to build the Linux kernel myself, but I also wanted to build the compiler I was using to build it myself.
And I couldn't figure out how to build GCC.
So I was like, you know what?
Building GCC was so complicated at the time.
It'll just be easier to figure out how to get Clang to build Linux than to figure out how to build GCC.
It sounds like an absolutely false statement, but I bet you learned a lot.
At the time, I did learn a lot,
and at the time, I think it was absolutely the right choice.
So 10 minutes later, the point of this long monologue between Bryce and I
is that Matt is the creator of this website, which is actually a big deal.
So tell us a little bit about this website
and how this dovetails into the talk slot
is that I believe the name of your talk today is What is New in Compiler Explorer.
So give us a small pitch.
What is new in Compiler Explorer?
I can't believe you even remembered where you were going with that.
That's quite impressive.
It's my one talent.
Wow.
You keep a hardware stack of where you were going.
Right, right.
I've noticed this
by programmers we hate it when people forget where the conversation thread went because i think we do
fear the stack overflow and the whatever anyway exactly so uh what's new in compiler explorer
was a talk where i was luckily able to celebrate a whole bunch of things because like compiler
explorer is not me anymore i i lend my my name
to the domain name that's on and many people that include the person pointing the microphone at me
right now call it my last name which is weird as hell to me but also i accept it's a shortened
version of what it is and it's kind of cool so i'm down with it but um it celebrates the the sort
of team of people who supply uh pull requests and who maintain the site and administrate it.
And I am still in charge of all that nonsense,
but there are so many cool things in the site
that most people don't even know are there, right?
There's views like the control flow graph.
You can see the assembly and control flow mode.
You can see the internals of the compiler.
So many of the compilers have loads of crazy options
to let you emit, like, optimization reports
or, hey, at this point I did this,
and then we can parse those files out.
And so we've got a view where, for example, for Clang,
this is my favorite one,
you can say, here's a bit of code, C++ code,
compile it, show me the internal representation,
and then show me every single pass.
There's like 150 passes that your code goes through
where various optimizations take place.
And we show them in like a pane on the left-hand side.
I believe we're about to be trolled.
Uh-oh.
We are definitely about to be trolled.
Yes, there is a troll here.
Hello, troll.
How's it going?
Haven't you already had your slot with this?
I didn't know it was a slot.
It's a continuum.
Yeah, it's a continuum.
Yeah, it's not a slot.
All right, all right, all right. All right, most important Capalix for a continuum. Yeah, it's a continuum. It's not a slot. All right.
Most important Capilox question.
Yes.
Chat GPT integration win?
I know.
We've discussed it and I don't know how to do it for the best.
But I hear somebody is giving a talk tomorrow that might get integration.
I am.
Possibly.
Yeah.
Have you finished your slides?
I have finished my slides. I just have to make the slide notes.
So I have content. I just don't know what I'm going to say about it.
I mean, well, whoever knows what they're going to say about their slides.
That's what they look for.
Not Matt Gobble in his lightning talk today when he hit the summary slide.
He was like, oh, and we're done.
That was an old set of slides I hadn't looked at.
I think we need some people to get that.
We need to probably move back.
No.
So super excited to talk about what's new in Compiler Explorer.
And there's a ton of it.
Go watch the slide that taught when it's up.
Link in the show notes.
There you go.
It was quite good.
Thank you.
And you told us in advance you had 55 minutes of content,
and you hit it right on the nose.
That is impressive.
I have been practicing, my friend.
That is a thing to do.
See, I don't practice.
I just hear it on me do my thing.
It's like your podcast.
Get us the look on Connor's face right now.
I just, look, I just make this, honestly,
I have not practiced a talk in five years.
I make the slide deck and I just have a gut feeling
for how long it's going to be.
Usually I'm within plus or minus two
to three minutes. That's cool. I mean, it's good.
Everyone has their own process. I can see
that Connor and I, who
actually, who talks the fastest out of
us three? I think we're all... It's Connor. It's Connor.
It's Connor. I feel
but yeah, I think... So Connor tried
to make me listen... When he's talking
No, that's what he's talking about. Connor
tried to make me listen to some's talking no Connor tried to make me listen
to some podcasts
on the road trip
at like
2 or 3x speed
or whatever
and it was like
I don't
I don't think
Connor's human
I really don't
think he's human
it's a
it's a
you just start
increasing it
and you don't notice
Matt's got some thoughts
yeah I'm exactly
on that
I'm regularly
at 1.9 now. I can't
quite make two comfortable. And sometimes when I'm walking the dog, I just need it to be back
a bit slower because you kind of want to enjoy it. You forget sometimes that it's not just
about the pure information being wired into your brain. It's actually kind of nice to listen to
humans talking like normal humans. And I'm just looking around here and thinking, I don't see very many of them around here.
Yeah, there really are not.
There really are not.
Alright, I think we should probably go talk with
some other people. No, you got other questions?
No, it's just JF wants to close.
Yeah, JF. Any closing words of wisdom?
Well, it's good to see you, Matt.
Bryce, Connor,
hi.
You came over here to troll
But you had no agenda
You're too Canadian, my friend
Gentlemen, Bryce, good to see you
Alright, we're going to wrap it there
Let's go get our next set of people
That was amazing
Do you want to stay here and I'll get them
Or should we both
Let's, we can walk
Let's walk and talk
Yeah, let's walk and talk Hey Jonathan, you want to stay here and I'll get them, or should we both? We can walk. Let's walk and talk. Yeah, let's walk and talk.
Hey, Jonathan, you want to say hi?
Hi.
Do you just walk around and annoy people all evening?
That's correct.
Plug thinks so.
How much do you guys pay?
$130,000.
Say link in the description.
Link in the description.
You know, here we are with Tristan Brindle, author of The Flux Library.
He's giving a talk, Iteration Revisited Tomorrow.
Should people go watch, even though they're listening to this after the talk has happened?
They should absolutely come and watch my talk tomorrow.
Yes, 100%.
And by people, we're talking to people of the world.
And so link will be in the description when that talk goes online.
You want to go over to the corner for this or what?
What's the point?
Great follow-up, Bryce.
Tristan, good luck on your talk tomorrow.
Tristan, did you figure out the homework problem that I gave you earlier?
The homework problem has not been top of my mind, but I will devote some brain power to it.
All right, good.
All right, thank you, Tristan.
Good luck on your talk tomorrow.
Thank you.
All right, we're handing it over to Bryce.
It might be a bit confusing on how this whole live interviews has gone down,
but we are actually interviewing the co-hosts of three different podcasts.
If that's not clear up until this point, that is definitely on Bryce.
It is not on me.
It's on Bryce. The first podcast we interviewed was with JF.
That was, oh, Jesus.
TLB Hit.
The second podcast was Two's Compliment with Matt Gobble.
Both of the co-hosts were not there, Chris and Ben, respectively.
And now we are here with both co-hosts of the most popular C++ podcast of all time,
the first C++ podcast of all time, handing it over to Bryce to do the introductions.
And also the organizer of the conference that we are at, Mr. Phil Nash.
Oh, Murray, how are you doing?
We are doing pretty good. So what is the name of your podcast?
Oh, I know this one. It's one of three, isn't it? I think it's currently CPPcast.
That is a podcast with a long and storied history of excellence.
So what do you think about this year's conference, Phil?
I mean, why don't you tell us a little bit about the conference,
because you're the one that started this conference, yes?
I am, yes.
Well, this is the fifth year, but the third in person.
But really, it's like the second in person, because last year was a reset.
So it's all very complicated, really.
But yeah, I've been running for five years, and I think it's going pretty well.
Why did you decide to start a C++ conference south of London?
Well, everyone else is doing it.
I felt a bit left out.
I don't know.
There just seems to be a gap in the market at the time.
I had some ideas what I wanted to do and thought I'd see how they pay out.
What would you say makes this conference unique?
Mostly the sea.
Okay, fair enough.
And what about you, Timur?
Why don't you tell people who you are, what you do?
Hello, my name is Timur Dumler.
I'm the co-host of CBPCast.
I'm here at the CBP on Sea conference.
Yeah. And where do you work i work at jet brains um we make tools for developers i'm a developer advocate there
what what does it what is a developer advocate what does a developer advocate do
well that's a good question it's kind of uh it has nothing to do with law, even though it has advocate in it.
Although I guess that doesn't mean anything in English, does it?
It's more other languages where advocate means something.
This podcast is not legal advice.
Consult your own lawyers, folks.
Right, no, no.
Anyway, so a developer advocate basically advocates for developers that use a developer-facing product.
Like an IDE?
Yeah, like we make IDEs and other developer-facing products,
like we have a backtracker, we have a built server, that kind of stuff.
So on the one hand, I'm representing the developer community for the team,
so I'm advocating for what the developer community actually wants,
but also I kind of work with the team to make sure that we meet those needs.
And I also create lots of content, like blog posts, videos.
I go to talks, like conferences like this one.
This is kind of very much part of my job as well.
Kind of developer outreach, that kind of stuff.
Yeah.
Teaching people how to write good code, how to use our products.
Cool.
So why should people listen to your podcast?
Just talking to Timur about this, actually. So why should people listen to your podcast?
Just talking to Timo about this, actually,
he was saying that our podcast is almost like complete opposite,
because we're sort of like very structured and follow a bit of a formula,
whereas you're completely chaotic.
But it's like we complement each other.
I think we have room for both.
Well, what is the structure?
What does your podcast aim to deliver to its listeners?
I think it's just a mixture
of bringing some of the big names
and the people who are really influencing
the language and the direction that we're going
in in the community, as well as
new voices, bringing them up to the fore
and just letting people know what real world people
are actually doing with C++. So the whole spectrum
really.
So we both kind of were very sad when Rob and Jason stopped doing it.
And so we kind of both, I guess, independently thought,
wouldn't it be great to revive it somehow?
But then we also didn't want to change too much stuff, right?
Because it's been running for, what, like 10 years or something?
Seven.
Seven, yes.
Of course, Connor would know that off the top of his head.
Roughly 349 episodes.
I should know that.
It's mildly embarrassing.
353 episodes. So you wanted to keep the formula as close as possible to what Rob and Jason were doing
because we knew that it's going to be different, obviously,
because we're different people, different personalities,
but you wanted to keep the formula
as close as possible so that's
kind of what we're doing. I think it's kind of working.
We're making little changes
where it makes sense but we're going to keep the format
more or less as
it is because we like it.
I like it personally a lot.
What's been your favorite
thing at this conference
this year? Tell me one thing that you've learned or found really interesting.
As the conference organizer, I've only had time to actually see two talks.
One of them was actually Timo's talk today on safety and C++.
And I like the way he finished.
I never thought I would say anything like this, but yes.
What was...
Can what was said be repeated
on a podcast? We're about to find out.
Right. So, apparently
the last words of
my talk were, use rust.
So, them
fighting words. So, what
was your talk about?
It was about the whole safety and security debate that's been going on for a while,
but quite intensely for the last year or so.
And there were lots of talks, lots of reports, lots of news stories
about how we have a big problem with safety in C++.
And obviously we do, and we need to address it.
And we haven't maybe in our committee done a great job at that lately,
but I wanted to provide a counterpoint, a little
bit to this thing of
oh, we're all doomed, C++ is going to die
unless we figure out how to make it absolutely
memory safe the way Rust is.
And the point of my talk was, well,
we can't really, unless we change it
so much that it's actually going to be a
different language. But maybe we
shouldn't. We should focus on what T++ is good at,
improving safety where it makes sense and where we can,
and just be very clear about that,
but not be like, oh, we're all doomed unless it's all memory safe,
because you can't really do that anyway.
A lot of those points sound similar to points
that were made in Sean Perrin's keynote the other day.
It was actually funny because,
so I submitted this talk because
jf bastian nerd sniped me into submitting this talk on twitter i was like just tweeting hey
what should i talk about and jf was like why don't you talk about safety and i was like okay
because i don't understand how humor and irony works and so i just said okay i'm gonna do what
he said so i submitted to talk about safety and then i found out from phil that you know sean is gonna do a keynote on the same topic so i was like oh well sean knows a lot of stuff that i
don't so maybe i should just retract my talk but then actually got in touch with sean he was really
lovely he spent like two hours with me on a call talked to me about you know his ideas what he
wanted to talk about so i was like oh yeah there's ways in which I can make that complementary to that and, like, provide
a different perspective and talk about different stuff
that kind of complements that. So I hope I
achieved that kind of a little bit,
but, yeah, it was good fun.
Okay, so you heard it here first from the host of CppCast,
UsedRust.
So I do have a question,
Teamer, and I'm going to preface this by
saying that my thesis is that you
are C++'s biggest troll.
I'm sorry, there's Victor.
The biggest troll.
He claimed you were C++'s biggest troll, which cannot possibly be true because of Mr. Victor.
Yes, that's true.
Okay, maybe C++'s second biggest.
But here's my thesis, and this is why.
You gave a 60-minute talk about C++ and safety.
And the two major things that I took away from that talk were that C++ is not doomed,
definitely not as doomed as people think it is,
and two, that people are overblowing how important safety is.
Not that it's not important, but that C++ prioritizes performance.
However,
you then gave a lightning talk at the end of day two of this conference,
aka a couple hours ago, where you
proceeded to show one of
the biggest gotchas that I've seen,
and I can't reconcile how
you say that C++ is okay
and that safety is not important
with your lightning talk, which everyone was just sort of,
and in your lightning talk, you had a gif of someone
saying expletives silently three different times.
I counted, Teamer.
How do you reconcile those two things?
What are you up to?
Well, how do I answer that?
What was the lightning talk?
I mean, ask Timur.
Okay, so we have this feature called Lambdas,
which is, you know, you have like a function that you define in an expression.
You can pass that to other functions.
And apparently it's so hilariously complicated
that I actually spent quite a lot of time preparing a one-hour talk
about how this works last year.
And then actually at your conference, Connor, the one that you were about how this works last year. And then actually at your conference, Connor,
the one that you were the program chair of last year.
And then after doing all of this work,
I still have no clue how Lambdas actually work
because literally the next day somebody came to me and said,
hey, I have a Lambda here.
I don't understand why it does the thing that it does.
And I was like, what?
And then I looked into the standard
to try to understand what's going on.
I was like, what? And then I looked into the standard, tried to understand what was going on. I was like, what?
And, like, so it's this weird thing where,
kind of, I've been doing C++ for a long time,
and here's the thing.
I'm learning more C++, right?
As I go, as I do these talks,
I work, I write C++ during the day,
so I learn more C++.
But the language actually gets more complicated
and bigger faster than I can learn it,
which means that the relative proportion of C++ that I know
actually shrinks over time.
And I find that quite fascinating.
It's quite a unique property
for a programming language, I think.
So I haven't really figured out
how to reconcile that with anything, really.
But yeah, I guess that's...
I don't know what my point is,
but this is kind of...
Use Rust.
Yeah.
In closing, what did Phil just say?
In closing...
Use Rust.
All right. I think we're going to wrap there. In closing, what did Phil just say? Use Rust.
All right.
I think we're going to wrap there.
I think we're good.
Thank you, guys.
This was a lot of fun.
Thank you, guys.
Thank you so much.
Thank you.
And also, as we're closing, any exciting things or different things that are happening in 2024 for C++ on C?
Or they should just tune in to the Twitters?
On a different C. If people want to follow the latest and greatest, the upcoming news,
what should they do?
That's a good question.
There will definitely be a C++ on C
2024. It's going to be slightly
bigger, I'm hoping. And
judging by how this week went, I think
there are going to be at least three coffee
machines.
So you heard it
here first. Come to
C++ and see for the best coffee.
We're going to wrap here. We still got one more person
we got to interview. That's true. And who is that
person? Mr. Sean
Parent. It's been too long, Sean.
We're having you. Except we're coming
for you. This will probably be the end
of episode 136,
I believe. And so you'll hear from Sean
next week because this podcast is
already over 40 minutes. And don't worry, we have
heard your requests for more Sean
and there is a lot more Sean
coming in the future. There's a lot more Sean
coming in the future, folks.
Alright.
Be sure to check the
show notes for links to everything that we
mentioned in today's episode, as well as a link to the GitHub discussion where you can leave comments, thoughts,
and questions. Thanks for listening. We hope you enjoyed and have a great day.