Algorithms + Data Structures = Programs - Episode 128: GCC 13.1 🥳 and Upcoming Conferences!

Episode Date: May 5, 2023

In this episode, Conor and Bryce chat about the GCC 13.1 release and our upcoming conferences!Link to Episode 128 on WebsiteDiscuss this episode, leave a comment, or ask a question (on GitHub)TwitterA...DSP: The PodcastConor HoekstraBryce Adelstein LelbachShow NotesDate Recorded: 2023-05-03Date Released: 2023-05-05C++Now 2023GCC 13.1 ReleaseRange-v3 LibraryTweet with link to already compiled GCC 13.1Core C++ 2023O3DCON 2022: Keynote C++ Horizons Bryce Adelstein LelbachCode EuropeC++ On Sea ConferenceKX Con 2023LambdaDays 2023Italian C++ 2023Circle CompilerCircle Implements |> OperatorCppNorthIntro 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 you didn't, like, you weren't going to inform me of that? I mean, I'm not in New York, the city. I'm in Montauk, which is like four hours away from New York. It's on Long Island. It's at the very end of Long Island, which is quite long, to be totally honest. Yeah. Well, you're going to have to come hang out with me. Nope.
Starting point is 00:00:40 Welcome to ADSP, the podcast episode 128 recorded on May 3rd, 2023. My name is Connor. Today with my co-host Bryce, we talk about GCC 13.1 and our upcoming conferences. And InBall Levy is crashing on my couch on her way to C++ Now, and at some point she's going to need to come back from the office. Isn't C++ Now happening right now, or is it next week? I think it's next week next week i mean i would assume it's next week because in ball's here and she's the the program chair um so yeah presumably she says she'll be done at work at at 4 20 which is eight minutes from now and then she'll come over here and I don't know. I think it could be a five or ten minute walk
Starting point is 00:01:33 if one knows which direction they're going. But it could be longer if you're not a native New Yorker. Well, depending on how long it takes her, we'll record until she shows up and then she can say hi. And then we'll cut the episode. Yeah. And I just looked. I did tell her to give me a heads up before she enters.
Starting point is 00:01:55 Yeah. C++ now, May 7th to May 12th. Probably if you're going, you've got your tickets already. And by the time this comes out, it's going to be, what is it? May 3rd today we're recording this. And so that means it's going to be May 5th. All right. Yeah.
Starting point is 00:02:12 So for those listening on their way, have fun. Do you have a topic today to chat about? I got nothing. All right. Then today we shall mostly do a... My mind is empty. I am an open vessel. I am prepared to learn.
Starting point is 00:02:33 All right. Well, you're probably not going to learn much. We're going to probably... We'll spend a little bit of time recapping or recapping. That's the wrong word. Previewing our upcoming conference talks. But before we do that, and travel plans, before we do that, GCC. Oh, God.
Starting point is 00:02:50 I think you need a PhD to understand my travel plans. All right. We don't need to necessarily focus on the travel plans. We'll focus on the conferences, and then we'll chat about our week, just under a week long road trip, which goes through Slovenia. Anyways, before we chat about that, GCC long awaited release 13.1 just dropped last week. It's been out for a week. And what does that mean, folks? You now have access to all of the wonderful range adapters
Starting point is 00:03:27 that are coming in C++ 23. I just spent the last, I've had it working for about four hours now. I spent 22 hours, including sleeping, trying to get a working version of GCC 13.1. Boy, oh boy. My final tweet on the topic was, I can't believe it's easier to install a Linux OS than it is to get a cutting edge GCC version. I tried to compile it for the longest time, left it overnight, didn't work, but I was doing it from like a mounted Windows volume within WSL2, which I shouldn't have been doing. But then even when I went to WSL2, it looks like it built in 30 minutes, but then I couldn't find the executable anywhere. Yeah, when I started off my career,
Starting point is 00:04:19 one of the first notable accomplishments that I have to my name is that I built the Linux kernel with Clang back in the day before that was a thing. And the reason that I undertook that project was that I had tried to build GCC on my own, and it went so poorly that I decided, you know what? It'll be easier to get the Linux kernel to build with Clang than it will be to build GCC. And I was right. I believe I was correct. I don't mean to cast shade. I think the GCC folks, they're doing a lot of amazing work.
Starting point is 00:05:00 They're one of the leaders in C++ compiler implementation stuff. So they're doing great work, but I don't think it's unfair to say that I didn't actually end up building. I mean, I successfully built something, but at the end of the day, because I had initially tweeted out yesterday, what's like, how long is this usually supposed to take? And I have like a beefy thread ripper that NVIDIA has given me. So like, it's not like I'm doing this on a laptop from four years ago. And Matt Gobble, he just, he replied being like,
Starting point is 00:05:33 you can just borrow the already compiled instance that's living on like an AWS box. Here's a link. And that took, I can't remember how long that took to download. It was an hour or two with a curl command command and i don't actually know the exact amount i just know it wasn't wasn't super fast but once i had that and figured out a bunch of other things eventually got it working but it's this is not to complain this is why did you need to build gcc
Starting point is 00:05:59 again i need gcc so gcc trunk on godbolt has where trunk on Godbolt has been where I've been playing around with all of the C++23 range adapters. Like Chunkby. That's the biggest one. Adjacent Transform. It's just super exciting. And I have like work projects, two or three different personal projects that are either, you know, they're making heavy use of ranges, but then also I have to pull in the range V3 library, which I still think I actually am going to need for many of these projects because I use the fold left and right flavored algorithms that come in C++23. And unfortunately, GCC 13.1 doesn't ship with those. But the key thing that I need is that
Starting point is 00:06:45 in order to be able to pipe range adapters together, they need to be from the same source. So you can't mix piping range V3 range adapters and standard range adapters. And there is a proposal that... You might be able to soon because we added in 23 this ability to write range adapters that can compose with the standard range adapters. Yeah, there's a proposal.
Starting point is 00:07:15 I'm not sure it actually made it in. I thought it did. I thought it did. I could be wrong. I'm only the C++ library evolution chair. I don't actually know things. But I thought that it went through. Maybe I'm only the C++ library evolution chair. I don't actually know things. But I thought that it went through. Maybe I'm incorrect.
Starting point is 00:07:29 Honestly, you probably have a better sense of what's going on in the ranges world than me. We will find a link, and I'm pretty sure it went through. I am pretty sure that's the case because I remember it being listed as a top two or three high-priority items in rangeland. But the point is we don't currently have that and so i've been i've been stuck with hand rolling certain versions of these things or basically just like in in the code the projects that i'm working on like where the place i need an adjacent transform i literally have comments that say like just wait till gcc 13's out which it is now and very exciting i have my adjacent transform in at least one of my projects working so the point is clap applause for all the all the wonderful people the gcc uh and thank you to
Starting point is 00:08:19 matt gobbalt for letting me borrow it is already compiled and i And I also, yeah, I'll link the tweets if you also want to download Matt Gobbold's version of GCC 13.1 instead of building yourself because I found that a much easier solution. Anyways, the point is this is an announcement about GCC 13.1. I think in a few episodes in the last four months, I've been talking about how GCC 13 is on the horizon
Starting point is 00:08:42 and it's exciting that it's out. All right, that's out of the way. Let's chat about conferences. What are the conferences that you're going to in the next two or three months? I leave here at the end of May, and I'm going to Core C++. In Israel? Yes. to core c++ in israel yes i'm flying i'm flying new york to toronto toronto to london staying there for a day then london to tel aviv and then i'm at core c++ and what talk are you giving at core c++ i think it's a talk called c++ horizons about my three favorite features or my the three features that
Starting point is 00:09:25 i'm most excited about that are on uh on the roadmap for c++ let me guess all right although i think i actually know this list because you mentioned them on a panel at that od3 con or whatever that was oh three was that what is it called in in texas when you were 3d con i don't know oh yeah it was pattern matching pattern matching uh executors and reflection correct yeah that's correct yeah all right um and then i'm going to uh this meetup in sofia uh bulgaria is that where the committee meeting is yeah it's right before the next C++ committee meeting. And I'm going to give that same talk there. I'm also going to give, I may be running a panel at Core C++. And I think I'm giving a short talk on the first day of the conference,
Starting point is 00:10:20 at the opening session, about AI about AI assisted software engineering tools. That's two talks or that's like a different thing? I think it's like just like they asked they want to do like some short introductory like 20 minute talks at the at sort of the launch
Starting point is 00:10:39 of the conference. Interesting. So that's two people at NVIDIA at two different conferences giving talks on LL c++ related stuff i don't know about the other person andre alexandrescu is oh yeah yeah i mean andre and i've been chatting about that he's giving a talk at cpp no i don't i can't remember it's code europe or something like that anyways okay and then uh and then i'm going to the c++ committee meeting in varna um and then i'm going from there to vienna and then you and i are renting a car and and i i i i will tell you uh you and i have a have a dear friend um my dear friend i don't actually know
Starting point is 00:11:21 how well you know him but but my dear friend um lives in London, who happens to be Slovenian. And I saw him when I was in London last week. I was like, are you keeping me in the dark who this was? Who this is? I was trying to respect people's privacy. But okay, you've said it now. I mean, we just mentioned like three episodes ago. I can't remember.
Starting point is 00:11:42 We had some guest on. Was it Tristan? Tristan mentioned that I think Gasper was Slovenian and that it wasn't Tristan I told him about the road trip and he gave me some advice
Starting point is 00:11:56 for the road trip which you and I will have to discuss in a future road trip planning meeting we're going to record podcasts on live while we're driving in the car. Yes. Because I have professional grade omnidirectional mic that we're just... Now, who's going to be doing the driving? You said you're not good at driving, right?
Starting point is 00:12:17 Or you don't like driving? Well, that's what the girlfriend tells me. And the thing is that the girlfriend basically doesn't let me drive anymore. And so, yeah. But you don't drive at all. When's the last time you drove a car? I just drove this weekend. I went to Niagara-on-the-Lake and Niagara Falls with my mother.
Starting point is 00:12:34 I'm an ace driver. The story, here's a little anecdote. My mother taught me how to drive. My older sister won't like it. I'll tell a little bit of a longer version. Your older sister isn't listening to this. That's true. She'll never hear this. Someone sent it to her
Starting point is 00:12:51 and they'd have to know her info. My older sister is a year older than me. She learned to drive and we drove in this parking lot that was 10 minutes away from our house. That was the parking lot to what do you call it? NHL. Not NHL rink, but a WHL rink.
Starting point is 00:13:07 So it's quite big and there's no cars around unless there's like a hockey game going on. And so that's where my sister learned to drive. And I think it was like a month before she was allowed to leave the parking lot and drive home, which is, it's not like a, it's only a 10 minute drive home, but like that's how much time she, it took for her to drive home. When I went a year later, when I turned 16 and passed the L, uh, we went the first time we, my mom drove to the parking lot and then we drove around, did some stuff. And then she's like, okay, you can drive home.
Starting point is 00:13:39 And, uh, and then when we went to learn how to parallel park, we literally spent like 20 minutes working on it. And then she's like, okay, like you're good to go. And the point being is I'm a natural driver, according to my mother, who had a class four license, which probably means nothing to 99% of the listeners. But in BC, that's like it's a step above a class five, which is what the regular folks have. And it means you can like. Why did she have a class four license? She used to drive uh like
Starting point is 00:14:06 limos and stuff like that i was hoping you were going to tell me she was a truck driver i don't think i think you need higher than a class four to drive a truck but uh for those limo driver not a limo um specifically but basically in order to drive people i guess that's sort of out the window now with uber but back in the day before peer-to-peer driving services if you wanted to drive a taxi cab or like a limo and like professionally drive people from point a to point b and get paid for it you had to have a class four and she used to for canadians uh you may know about this they used to have like world expos and uh the 1986 expo was held in vancouver uh b. And for that, she drove famous people around. And I don't know off the top of my head, but she drove some pretty famous people,
Starting point is 00:14:52 which is a pretty cool job back when you're young. I think she was like, I actually know exactly how old. In 1986, she was 22. So, yeah. Great story. Point being, she was 22. So yeah. Great story. Point being, I can do all the driving. Great. Well, we're definitely going to die on this road trip.
Starting point is 00:15:17 Why? You'll just have to hold the mic. You'll be in charge of the mic because we've only got one mic. So we'll go back and forth. I think the listeners right now are hearing this and they're getting real excited for these live from slovenia on the road headed to bread lake or is it bled lake i keep bled lake i keep getting feedback at conferences about what on the podcast like at at uh accu somebody came up to me and he's like hey i listened to the podcast and you guys you guys
Starting point is 00:15:45 just got to stop the stop the live coding it's too hard to follow one for guys like that i'm like but but the way he put it it was so great it was so great he was like i'm here doing my dishes and you got like just like if you want it to be a youtube channel it should be a youtube channel i'm like yeah probably should have just been like yeah like video but i just thought i was just like i'm here doing my dishes like i can't i can't follow what what you're doing with the code well admittedly how many times we've made a decision at some point to stop sharing our screen and then you went ahead and did that whole views filter thing had me read it out and like i started that off being like we made an agreement bryce we weren't
Starting point is 00:16:22 going to do this and then you like, we're a coding podcast. We got to do it. So we promise henceforth, going forward. Thank you. I'm not – I can't make that promise. I'm making the promise. I'm just going to – The promise that we can make is we'll focus more on guests.
Starting point is 00:16:38 We'll focus more – like when we have guests on, we're not doing live coding. I think that's always fun and informational for people. So we should focus more on guests. Let's bring up the uh we already focus we do have a pretty good quite heavily if i look at i guess if you're if you're if you're the the people that listen to this podcast in slovenia and like you want to be on the podcast let us know so we can include you in our road trip plans. Out of our last 15 podcasts, what is that, three, five, ten of them. So we're at a two-thirds guest episode.
Starting point is 00:17:18 So that's pretty good. And admittedly, we probably would have had a guest today, but this was kind of last minute. And the next month for, I think, me and probably you as well is going to be a bit crazy. Anyways, road. No, no, no. Next month, I'm at home. The next month is like the quiet month.
Starting point is 00:17:35 All right. Well. Until the summer. We will take advantage of that. So Slovenia, Vienna, going to Venice. You got conferences after that as well, or are you just heading home after that? Then I fly home for, it was going to be three days, but now it's four days. That was the thing I was on the phone with the airline about earlier.
Starting point is 00:17:57 And then I fly to London for CPP on C for, I'm going to be there for like two or three days and then I fly back. And then we're going somewhere for vacation on July 4th weekend. I just haven't figured out where or how are those logistical details. Are you giving the same Horizons talk at C++ on C? No, I'm giving a a talk on uh ai assisted software engineering what happened to i thought i saw somewhere you were going to give a talk called empire is that true or false i don't think i've nope that's unfortunate because I thought that talk was going to be about a reference to Star Wars, The Empire Strikes Back. No. Well, there's a talk idea for you.
Starting point is 00:18:51 For some reason, I thought I saw that talk, your name next to that title somewhere, but I guess I just made that up. Yeah. And then, I mean, I'm not doing much over the summer. Not sure if I'm going to CPP Toronto or CPP North. Going to give a talk at CPP India Con in August. And then that's pretty much it. That's pretty much my...
Starting point is 00:19:15 I may have a quiet-ish summer. C++ on C. Schedule. Who are the keynotes? Oh, I'm keynoting. Sean Parent. Probably. Probably should have led with that. Lisa Lippincott.
Starting point is 00:19:31 And Bryce Lelback. We'll leave links to all of these in the show notes. So, yeah, all of those conferences you can find Bryce at. What's my schedule? I'm going to a first conference is in May and it's KXCon, which is a conference being put on
Starting point is 00:19:56 by the company KX, which is the company that owns the Q programming language. Where is that? That's in Montauk, New York. So I fly into into la guardia and then i'm renting a car and it's like a three-hour drive to the tip of wait when are you doing this it's may 17th to 20th and you you didn't like you weren't gonna inform me of that i mean i'm not in
Starting point is 00:20:20 new york the city i'm in montau, which is like four hours away from New York. It's on Long Island. It's at the very end of Long Island, which is quite long, to be totally honest. Yeah. Really, it's in Montauk. Okay. Yep. Well, you're going to have to come hang out
Starting point is 00:20:39 with me. Nope. I'm sorry. That wasn't a request. And it was heard and denied. What time are you getting into LaGuardia? I think I land at like 9.30 or 10. And then I'm renting a car and like immediately driving out. 9.30 or 10 a.m. or p.m.? A.m.
Starting point is 00:21:03 Oh. Well, you're going to have a fun drive.m or p.m a.m oh well you're gonna have a fun drive why oh there's just there's gonna be some traffic buddy yeah that's fine and then uh i leave on saturday at four why are you renting a car how else am i supposed to get to montauk i would have thought there was a train but there's absolutely no transit from what i could tell no train when i search travel to montau thought there was a train. There's absolutely no transit from what I could tell. No train. When I searched travel to Montauk. There's a...
Starting point is 00:21:31 Yeah, there's a train. It's called the Montauk Branch. It goes right to Montauk. It's a Long Island Railroad line. I think you pick it up at Jamaica Station. Like, I just Google maps. Man, that's pretty sad. Because when I searched this, this wasn't possible.
Starting point is 00:21:59 Actually, maybe I didn't check Montauk. Maybe I checked the resort. Yeah, you should. I mean, I think it's going to take you as long to drive. I mean, I would have preferred. I don't want to rent a car. Yeah, see? The resort is Gurney's Montauk Resort.
Starting point is 00:22:15 If you plug that in, they give you no options. There's no options. I'm sure that they got a shuttle or something. I know. I think they have a shuttle to Montauk, but I did not check that. I just plugged in Gurney's, and it says that there's no – so note to future people, if you're going to Montauk, there is a train, which I did not – I wonder if I can cancel.
Starting point is 00:22:35 I'll look into that. Your rental car? Yeah, you probably can. I mean, if you booked it properly. I mean, some of them you can't cancel. Anyways, these are... That's what I meant by if you booked it properly. We'll fix that later.
Starting point is 00:22:48 Well, these are uninteresting details. I'm giving a talk called Algorithms in Q at that conference. Should be exciting. Next conference is... Maybe I'm going to come out and hang out with you. Maybe. Maybe. It looks like a nice resort. So if if you want to you're more than welcome to
Starting point is 00:23:07 the next conference is lambda days june 5th june 6th in krakow poland given a talk called composition intuition that's also going to be fire the next conference after that is italian c++ on i think it's june 10th yeah i couldn't make that i couldn't make that one work i would like i would have had to like fly from bulgaria to rome and like for one day and then fly right back that was just not going to work yeah that's not it's not viable um or just a bit bit too crazy well and it's also it's like i can't you know how many times in my life am i going to go to bulgaria um and i'm going to rome for five days in september yeah so yeah better to better to i would i would have loved to have gone to that conference it sounds like it's a cool conference um but maybe
Starting point is 00:23:57 next year yeah i've given a given a virtual talk during the pandemic at it but have never been in person and i've also never been to Italy, so that'll be exciting. Yeah, me neither. And that conference I'll be giving a talk called New Algorithms in C++23, which little preview for the listener. Very excited that GCC 13.1 is going to be out so that I can actually have, well, I mean,
Starting point is 00:24:28 I could have had GodBull links as well, but now I can actually say that you can go and download this and run it locally. But on top of that, I pinged Sean Baxter and asked him if he had implemented the pipeline operator that's been proposed for C++26, which sounds like, according to folks, Zach said that that was dead in the water and now Barry's working on some Rust traits like thing and we might not get the placeholder or the pipeline and placeholder. But in asking Sean, he said no because he thought that the sort of proposal was in flux. And I said, ah, Barry made a bunch of recommendations. Anyways, he is in the midst of finalizing changes to support that
Starting point is 00:25:05 in Circle. So my C++ talk might actually be a Circle talk because, I mean, it's basically going to be the same thing, just the Circle examples are going to look slightly nicer because everything I'll be able to pipe to instead of just things that have the pipe operator overloaded. Anyways, so if that ends up working, half my examples are going to have a Circle logo in the top left-hand corner instead of a C++ logo, which will be pretty fire. Well, but as Sean will tell you,
Starting point is 00:25:35 Circle is not its own language. In his worldview, Circle is just a better C++ compiler. Yes. I mean, I would not disagree with that. Circle is an evolved C++. But if it's going to start, I'll tell you, if C++ 26 doesn't end up getting a pipeline operator and I can just use Circle and everything else works and I get the pipeline operator, Circle now becomes like my default language, quote unquote, of choice just because of that one feature. And I was just watching a presentation that was talking about all
Starting point is 00:26:11 the stuff that Circle supports, like language tuples and language variants. And like, I don't need that stuff. Same way, I don't really need the pipeline operator, but I would love to have that stuff. I would be a little bit concerned with language tuple and language variant because then your code is going to become, like, to some extent incompatible with C++, and it would increase the number of changes you'd have to go and do. But my point being is that I might be on the precipice. You know, I was on the precipice of falling in love with Rust. But then I think things got too busy at work and I stopped learning Rust. Although it's still on the list of things to do. But anyways, point is, Circle.
Starting point is 00:26:51 Very excited to test this pipeline operator version out. Anyways, let's wrap this up. Then there's a couple week breaks. I'll be taking some vacation time. We're doing that road trip. And then I'll be going to visit my sister in Ireland. And then after that, going to C++ on C where I'm giving the same talk, but it'll be a 90-minute version instead of a 45-minute version. And then coming back to Canada. And in mid-July,
Starting point is 00:27:18 going to be back at CPP North, giving a 90-minute version of that talk as well. And that is all I have planned. So there you have it, folks. Links in the description. If you are in, what were all the cities you were in? Sofia, Israel. We're both in London. Toronto. Or anywhere in like Austria, Slovenia, or like northeastern Italy.
Starting point is 00:27:45 Yep. Feel free to come and say hi. We'll have our mic on us at all times. Maybe not all times, but we'll be ready to do little mini interviews. And you could end up being on the pod. All right. Anything else we should say before we sign off? Imbal's not back.
Starting point is 00:28:07 Yeah, I should check on that. Hopefully she's not just waiting outside of the door. No, I've got no notification from her. Yeah? Well, we can splice it in later when she does maybe show up. All right. We'll call this the end then. Be sure to check the show notes either in your podcast app or at ADSPthepodcast.com for links to any of the things that we mentioned in today's episode, as well as a link to a
Starting point is 00:28:35 GitHub discussion where you can leave comments, questions, or thoughts. 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.