Algorithms + Data Structures = Programs - Episode 128: GCC 13.1 🥳 and Upcoming Conferences!
Episode Date: May 5, 2023In 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)
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.
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
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.
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.
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.
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.
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
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,
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.
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,
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
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
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.
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.
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
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
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
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,
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
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
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.
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
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?
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.
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
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.
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.
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
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,
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.
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
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
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.
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.
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.
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.
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.
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...
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.
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
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
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
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.
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...
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.
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.
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.
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.
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
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
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,
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
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,
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
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.
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,
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.
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.
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
GitHub discussion where you can leave comments, questions, or thoughts.
Thanks for listening.
We hope you enjoyed and have a great day.