Algorithms + Data Structures = Programs - Episode 136: 🇬🇧 C++ On Sea Live 🇬🇧 CppCast, TLB HIT & Two's Complement!

Episode Date: June 30, 2023

In 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)
Starting point is 00:00:00 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
Starting point is 00:00:30 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.
Starting point is 00:01:26 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?
Starting point is 00:01:53 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.
Starting point is 00:02:15 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?
Starting point is 00:02:33 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.
Starting point is 00:03:05 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.
Starting point is 00:03:20 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.
Starting point is 00:03:43 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
Starting point is 00:03:59 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.
Starting point is 00:04:19 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,
Starting point is 00:04:35 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,
Starting point is 00:04:58 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,
Starting point is 00:05:29 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
Starting point is 00:05:43 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.
Starting point is 00:05:57 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.
Starting point is 00:06:12 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.
Starting point is 00:06:19 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.
Starting point is 00:06:43 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?
Starting point is 00:07:02 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.
Starting point is 00:07:25 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.
Starting point is 00:07:44 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.
Starting point is 00:07:53 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,
Starting point is 00:08:25 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,
Starting point is 00:08:50 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.
Starting point is 00:09:06 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
Starting point is 00:09:21 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.
Starting point is 00:09:35 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,
Starting point is 00:09:50 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.
Starting point is 00:10:17 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
Starting point is 00:10:35 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.
Starting point is 00:11:03 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
Starting point is 00:11:21 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.
Starting point is 00:11:33 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.
Starting point is 00:11:47 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.
Starting point is 00:12:00 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.
Starting point is 00:12:15 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
Starting point is 00:12:32 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.
Starting point is 00:12:48 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,
Starting point is 00:13:02 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
Starting point is 00:13:26 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
Starting point is 00:13:42 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?
Starting point is 00:14:01 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.
Starting point is 00:14:15 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.
Starting point is 00:14:29 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.
Starting point is 00:14:43 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.
Starting point is 00:15:00 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,
Starting point is 00:15:24 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,
Starting point is 00:15:50 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
Starting point is 00:16:04 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.
Starting point is 00:16:41 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.
Starting point is 00:17:25 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.
Starting point is 00:17:51 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.
Starting point is 00:18:13 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
Starting point is 00:18:30 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
Starting point is 00:18:48 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,
Starting point is 00:19:18 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,
Starting point is 00:19:39 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.
Starting point is 00:19:55 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?
Starting point is 00:20:28 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
Starting point is 00:21:00 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
Starting point is 00:21:34 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.
Starting point is 00:22:09 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
Starting point is 00:22:27 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.
Starting point is 00:22:44 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.
Starting point is 00:23:02 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,
Starting point is 00:23:17 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
Starting point is 00:23:51 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.
Starting point is 00:24:21 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,
Starting point is 00:24:44 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.
Starting point is 00:25:00 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?
Starting point is 00:25:16 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?
Starting point is 00:25:27 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.
Starting point is 00:25:58 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.
Starting point is 00:26:16 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
Starting point is 00:26:34 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.
Starting point is 00:26:53 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.
Starting point is 00:27:11 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.
Starting point is 00:27:34 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.
Starting point is 00:28:02 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.
Starting point is 00:28:21 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
Starting point is 00:28:45 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.
Starting point is 00:29:18 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,
Starting point is 00:29:35 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.
Starting point is 00:29:52 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.
Starting point is 00:30:03 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.
Starting point is 00:30:19 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.
Starting point is 00:30:33 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.
Starting point is 00:30:51 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.
Starting point is 00:31:03 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.
Starting point is 00:31:19 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.
Starting point is 00:31:36 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
Starting point is 00:31:48 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
Starting point is 00:31:55 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
Starting point is 00:32:02 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.
Starting point is 00:32:29 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
Starting point is 00:32:46 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
Starting point is 00:33:02 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.
Starting point is 00:33:12 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.
Starting point is 00:33:33 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?
Starting point is 00:33:51 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.
Starting point is 00:34:13 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,
Starting point is 00:34:38 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,
Starting point is 00:35:12 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.
Starting point is 00:35:35 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?
Starting point is 00:35:55 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?
Starting point is 00:36:30 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.
Starting point is 00:36:53 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.
Starting point is 00:37:17 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.
Starting point is 00:37:39 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
Starting point is 00:37:56 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?
Starting point is 00:38:16 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.
Starting point is 00:38:35 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
Starting point is 00:38:54 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++.
Starting point is 00:39:19 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.
Starting point is 00:39:41 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.
Starting point is 00:40:02 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
Starting point is 00:40:20 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
Starting point is 00:40:39 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
Starting point is 00:41:15 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.
Starting point is 00:41:38 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.
Starting point is 00:41:58 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,
Starting point is 00:42:27 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,
Starting point is 00:42:46 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.
Starting point is 00:43:07 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.
Starting point is 00:43:28 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.
Starting point is 00:43:44 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++.
Starting point is 00:44:09 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
Starting point is 00:44:30 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...
Starting point is 00:44:43 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.
Starting point is 00:44:53 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
Starting point is 00:45:14 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.
Starting point is 00:45:29 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
Starting point is 00:45:45 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
Starting point is 00:46:02 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.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.