An episode as short as the name of a unix command
This show is supported by you. Stick around till the outbreak to hear more about that. This is Cup of Go for 10/17/2025. Keep up to date with the important happenings in the Go community in about fifteen minutes per week. I'm Shay Nehmad
Shay Nehmad:I'm Jonathan Hall. Sunday, it's my birthday. What are you gonna get me for my gift?
Jonathan Hall:How about a new version of Go?
Shay Nehmad:Sounds good. Tell me about it. I'm actually it's a frustrating birthday because it's like '31. It's not a round number like 30. It's not a round number like '32.
Shay Nehmad:Just a weird ass number.
Jonathan Hall:I'm sorry. Maybe you could just skip it this year.
Shay Nehmad:You know, I'm just what I'm doing is I'm going school hunting for my kid and probably working. So Nice. Not a glamorous birthday, but it's gonna be, very cool next week because, there's the Go meetup in San Francisco that I'm hosting.
Jonathan Hall:Yeah. We'll talk about that in a little bit. Cool. Yeah, so there is a new version of Go. You might recall last week we had a new version of Go that had a whole bunch of security fixes.
Jonathan Hall:They also introduced a regression in that version that enforced overly restrictive validation on the parsing of x. Five zero nine certificates. So go one point twenty five point two and one point twenty four point eight were broken. 1.250.31.240.9, fix that regression, so you should upgrade.
Shay Nehmad:What's the regression causing? Which which is, by the way, shame on us. And we're always like, oh, of course you should immediately upgrade because the patch versions never have any problems. Right. So lie lie your pants on fire.
Shay Nehmad:But still, probably a better it's probably better to upgrade normally than wait too long.
Jonathan Hall:But as for what it broke, based on the description here, if you're parsing Iffy x five zero nine certificates, the some that should work and be considered valid were not being considered valid. That sort of looks like. So kind of a corner case. I don't think I've ever used x five zero nine certificates, so probably wouldn't affect me, but I upgraded anyway.
Shay Nehmad:The I like what he usually say. Just upgrade. There'll be no problems. Right?
Jonathan Hall:Yeah.
Shay Nehmad:So this next next blog post, I want to start before diving into it, asking you what's the most, like, hardcore, you know, hardcore, quote, unquote, experience you've had while, like, debugging a bug? Like, when you felt like you were really investigating some arcane you know what I mean?
Jonathan Hall:There have been a few cases. I'll I'll just mention one that's still pending. I found a bug, and I I need just need to take the time to finish the fix. But I found a bug in the database SQL package in the center library in Go that it's it's an archaic thing. Most people will never care.
Jonathan Hall:It's been there forever, which is how I know nobody ever cares. But, yeah, I mean, just trying to debug that took a while, and I I found the the issue, and I have a a pending fix that's just needs a little bit more attention for me before it'll be merged.
Shay Nehmad:Do you like doing these sort of things? Like, deep arcing investigations in these It's interesting and it's kind of fun, I guess. Like, it it's it's I
Jonathan Hall:don't know. It's often frustrating, but I also feel vindicated on the rare occasions when I was like, it actually is a bug in the standard library or the compiler or whatever.
Shay Nehmad:So this is exactly one of those cases where the bug is in the compiler, which is so rare. You know how many times someone told me, oh, I think the language is a misdemeanor. No, it's your fault. Yeah. And, you know, like, a very deep bug investigations where you have to, go into a thing.
Shay Nehmad:It happens rarely. It, like, reproduces unpredictably. You have to go, deeper and deeper into machine code and open it with IDA, which you mentioned you don't even know. You have you ever used IDA?
Jonathan Hall:I don't think I know what it is.
Shay Nehmad:It's like a reverse engineering disassembler tool sort of thing.
Jonathan Hall:Oh, no. I'm sure I've never used it then.
Shay Nehmad:Yeah. It's like my I don't I wouldn't say it's my white whale because I'm not that passionate about catching it, but I'm really bad at it. My wife is, like, sitting at home right now doing malware analysis with IDA open. I open it, and I'm, like, transported back to 2012 or whatever where I was trying to learn all this stuff. I had a really tough time.
Shay Nehmad:Anyway, all this long diablo about, like, low level and debugging and compiler bugs is about the Cloudflare blog, how we found a bug in Go's ARM 64 compiler, which I highly recommend. Like, you know, if you have I I don't know. People told me they listen to this podcast while running, while walking, while walking their dog on the way to work. But if you have like a dedicated reading time when they're actually focused and we're not like in your background, take this link, it's in the show notes, and just like read through it slowly. It's very, very good.
Shay Nehmad:In high level, what happened to Cloudflare? Because they have, you know, huge scale. They basically run the Internet. You know what I mean? Mhmm.
Shay Nehmad:That means that, you know, in theory, you can imagine, like, coverage. You know how you have unit test coverage?
Jonathan Hall:Mhmm.
Shay Nehmad:So you could imagine they have coverage for every single edge case. Right? A thread switching between every single opcode eventually will happen to Cloudflare just because they handle so many requests. So they began to see these panics, not deterministic, just randomly. Well, quote unquote, randomly, they investigated and filed out the problem was only on ARM 64 machines, with, you know, the the trace back not fully unwinding, something like super broken.
Shay Nehmad:Right? Mhmm. And then they, like, fixed it instead of not, like, not using panic, they use something else that started causing sec faults. And, you know, they tried to investigate it. Eventually, they used core dump and actually looked at the opcodes one by one, which is super hardcore.
Shay Nehmad:And I can imagine being in that team at that moment and be like, oh my god, that is actually cool. There is actually a bug in the compiler. It's not our fault.
Jonathan Hall:You know what I mean?
Shay Nehmad:I could actually imagine being the skeptic in that room.
Jonathan Hall:Of course. Yeah.
Shay Nehmad:It's like, you know, it it can't be a bug in the compiler. You're doing something wrong.
Jonathan Hall:And in fact, if if if I were doing that investigation, I would be, I don't know what I'm doing wrong. Let me look at this low level stuff to prove my my own mistake.
Shay Nehmad:Yeah. To to, like, to disprove that it's a bug in Go. Exactly. Eventually, they discovered it's they the function the goroutine pauses in the middle of the, like, stack unwinding between the functions. And the compiler adds, like, two add instructions, like, ADD, know, assembly instructions.
Shay Nehmad:And because Go runtime used to be sync preemption, like, a thread would a go routine would tell the runtime I'm ready to leave, and now it's like async. It's happening, ever since, like, one thirteen or whatever. The stack ends up being, like, in a limbo. It's just, like, corrupted. And because it it the the thread split right in the middle of these add instructions.
Shay Nehmad:And this was okay when you thought it was sync preemptive, like when the goroutines told the runtime, now I'm ready, because they wouldn't tell it when they were in the middle of a function unwinding. This is super cool. And yeah, it's a real it's a real bug. They have a repro and they have everything and it's actually fixed in like 01/25. But I'm really happy they put out this blog post.
Shay Nehmad:And honestly, with this like very, very cool blog post, at the bottom, they say, like, this is really cool. If you like this kind of detective work, our engineering teams are hiring. Man, this is like the best hiring advertisement I've seen in a long time and I live in The Bay Area. Yeah. So super cool, really good work from the CloudShellayo team.
Shay Nehmad:I highly recommend you read it. And Thea Hynan, I hope I'm saying that correctly. Man, we would love to have you on the show. If someone is working at Cloudflare and you can add Thea on the Cloudflare, Teams or Slack or whatever, we would love to talk about this because this is like super cool.
Jonathan Hall:Okay.
Shay Nehmad:Talking about, tools you're not using. So you're not using AIDA. Also not using Z Shell. Right?
Jonathan Hall:Yeah. I don't use Z Shell.
Shay Nehmad:Just Bash?
Jonathan Hall:I I typically use Bash.
Shay Nehmad:Do you have any theme installed on your terminal or is it just like the normal theme?
Jonathan Hall:I I might have done that many years ago. These days, it's like too much work to bother doing that.
Shay Nehmad:Man, you and I are so different sometimes. Like my shell is bombed out with all the plugins and all the themes and all the colors.
Jonathan Hall:So I used to do that sort of stuff. I used to even like, you know, have a unique color for each system I would log into. So I could tell just at a glance, I'm logged into this machine or that machine or whatever. Over time though, as I started, you know, upgrading machines, getting new laptops, having multiple machines, it was just too much work to keep that in sync and get it set up every time. I just gave up.
Jonathan Hall:Mhmm.
Shay Nehmad:So I I I went through the pain of putting it in dot files in GitHub. I update them, like, once a year or whatever. It's like doing your taxes. Why am I talking about Z Shell versus Bash?
Jonathan Hall:Yeah. So, if you use ZSH, Z Shell, and you are a user of m v dans sh sorry. Can you pronounce it?
Shay Nehmad:Someone someone listening to this podcast, like, in an open office or something? We know what we're talking about, but it just sounds like ancient if you use m v, then sh. Couple of white guys trying to learn dry Chinese or something.
Jonathan Hall:So sh or s h, I don't know how you pronounce it, is a shell parser written in Go by Daniel Marti, who's been on the show before too. And it supports POSIX, Bash, and Mksh, m k s h.
Shay Nehmad:I don't
Jonathan Hall:know how you're supposed to pronounce that one either. But they've been he he's made some progress on adding ZSH support, which was requested by Carlos, who's also been on our show before, back in 02/2017, so almost a decade ago. He made the request to add support for Z Shell. And just last week, Daniel says, I have finally made some progress worth sharing. I've spent about twenty hours the past few weeks doing the groundwork and have support for ZSH in a branch.
Jonathan Hall:But he also adds this little caveat. It took him two years to add Bash support on week on nights and weekends. So don't get too excited about complete Z Shell support just yet, but the groundwork has been laid and yeah, so that's pretty cool for anybody who does use Z Shell and needs to parse Z Shell in a Go program.
Shay Nehmad:Very cool. Is that enough to convince you to try to move to Z Shell?
Jonathan Hall:Nope. Not a chance.
Shay Nehmad:One interesting thing for me is like what how much effect do these tools have? Right? Like, can you imagine the decision of, oh, I am at some company and I need to develop some Z shell, like script and all the company uses MacBooks, but because the shell parser only has bash support, all the scripts are bash and all the things are Bash. And because we deploy to Linux, it's all Bash. Like, there's a lot of justification.
Shay Nehmad:And then, like, Danny working on the weekends a little bit on making this work or a lot. Like, I'm not belittling how much work this is, but just working on this on the weekends could change, like, just the the tide of how many people use Zshovers, how many people use Bash, like, once it's delivered. Because these sort of things like formatters, linters, parsers, they end up being used in everything, like IDE. Like, this is a capital l library. You know what I mean?
Shay Nehmad:I'm wondering, like, if if just Daniel liked Z Shell a bit more, what were the chances? It's also cool to see, you know, people from the show. Like, two people that were on the show talking outside the show. It's like when a couple of your friends that you introduce, somebody hang out outside of your friend group.
Jonathan Hall:I don't think we introduced these guys. They were they were talking together on this issue years before we started our show.
Shay Nehmad:Oh, no. We're the the the we're the second thing.
Jonathan Hall:We're I'm not interested. Got it. Got it.
Shay Nehmad:We're the hanging out after work. Well, I do use Z Shell. And by the way, at work, because we all all have MacBooks, I'm like pretty strict about all the, shebangs on the top are Z Shell. They're not a bash because I want I don't wanna mess with, syntax. All our AI agents are like strictly instructed to write the thing using Z Shell.
Shay Nehmad:Don't write it using Bash. So this is good. This is good stuff. Exactly the other way around from what I'm saying. Did I just say that I do I forced the Z Shell?
Shay Nehmad:I meant the other way around. I meant that we all use bash just because we don't have all this and but I will change it to Z Shell once this happens, which is great. Yeah. Jonathan, people have told me I am unreliable. I'm gonna stick to my word.
Shay Nehmad:It's been around fifteen minutes. We're gonna go through the ad break. As I mentioned at the top of the show, this show is supported by you. We really wanna thank all our Patreons. Ria Dennis, thanks for joining our Patreon this week.
Shay Nehmad:It's really nice that we almost every week we have new Patreons. It's also very cool if you've been around for a while and you've already, like, you know, donated a lot of money, like, for you to back out. I really wanna say that. But we appreciate you. We pay for hosting.
Shay Nehmad:We pay for editing, hosting the store, hosting site, whatever. So this help us directly offset the cost cost of that. If you want to reach us, you can do so in cupago.dev and then go for Slack hashtag Cupago, kebab case with hyphens or email us at news@cupago.dev. That is news@cupago.dev. Other ways to support the show, including buying our new swag.
Shay Nehmad:We have a ton of new swag. Basically, last week, Jonathan and I were like procrastinating starting the show. So we just sat around for an hour and added new swag. We've been talking about it for a while, so we actually unprocrastinated the other thing. Then we have Go Sucks socks.
Shay Nehmad:We have brand new huge Cup o'Go sticker that's like four inch by four inch. Says Cup o'Go on it. We have a new hat. It hasn't arrived to my home yet, but I'm very excited. Like, it should be here any day now.
Shay Nehmad:A new, like, baseball cap. And, yeah, we still have the cups, the t shirts, which are I sleep with them, to be honest at this point because they're like, I've had them for two years.
Jonathan Hall:You sleep with your cups and t shirts?
Shay Nehmad:I sleep in in my cup. I'm a little just it's because it's nice and cozy in there. Of course. And the sweatshirt, which is like my number one sweatshirt. I actually keep it at work.
Shay Nehmad:And then because they I I don't know what's up with the HVAC company and WeWork, but they blast the AC here to the maximum. Mhmm. And this Brewster hooded sweatshirt is the only thing keeping me warm. And of course, the infamous wireless charger. Of Of which one unit was sold in the last like two years.
Shay Nehmad:So a lot of new swag, which is fun. And I think we also updated our logo on like transistor to the simpler version. So yeah, a lot of, on I mean, on Capago. Dev, we have a new Favicon. So a lot of new stuff, and we highly recommend you check out the new swag.
Shay Nehmad:It should be pretty good. One other thing, what people, should do if they're in San Francisco next week?
Jonathan Hall:They should come join you for a live recording of the next episode.
Shay Nehmad:Woo hoo. Which you will not, right, because you're going to go waste.
Jonathan Hall:Yes. I will be in Utah preparing to speak at a conference, so I will not be there.
Shay Nehmad:And we're really hoping you could make it to the episode, but it's not a 100% sure because you maybe have a dinner. We'll see if we can make it work. I'll I'll try
Jonathan Hall:to pop in for a few minutes if I can.
Shay Nehmad:Yeah. Worst case, I'll, record the rest of the episode with the audience, which should be fun. We have actually a pretty cool lineup going on for this specific meetup. And I've gotten like, I don't wanna talk about it too much, but I've gotten a lot of excitement about these meetups. Like three separate people reached out to me and they're like, I wanna help you arrange the next one.
Shay Nehmad:I'm offering to host the next one already. So we'll unveil this in the meetup. But if you're a listener, you get like a sneak preview. We are actually gonna like set up the next two meetups already. Like one in January, one in April with the new organization team, which is really nice.
Jonathan Hall:Mhmm.
Shay Nehmad:Josh Bleecker Snyder is gonna talk. We're gonna do a live episode recording. James Heller is gonna talk, and Max Demulin is gonna talk. So lots of interesting topics should be great fun, and we already have, like, 30 attendees. It's pretty good for the week before.
Shay Nehmad:So, yeah, yeah, please, sign up to that, link in the show notes if I'm tempted to put it in there. But if not, it's meetup.com, go s f. We'll put it
Jonathan Hall:in there.
Shay Nehmad:Lightning round time. Let's do it. Lightning round. First up this week, You're the with the pronunciation today. And by the way, can we stop for a second?
Shay Nehmad:Stop the lightning round. Stop the lightning round. It's shell, n z shell, n z. The only the only problem is bash because bash is a word, but all the other is like and fish. Things that aren't a word, it's like shell.
Jonathan Hall:And shmod and and all those things.
Shay Nehmad:Shell mod.
Jonathan Hall:Right? No. It's shmod, but I call it shmod.
Shay Nehmad:Oh, shmod?
Jonathan Hall:Yeah. Lots of people call it shmod. Yeah.
Shay Nehmad:Yeah. That's that's an interesting one.
Jonathan Hall:Think I think this goes back decades to all all these short names in Unix get, you know, shortened even when they're pronounced sometimes.
Shay Nehmad:Yeah. But you don't say, Right? You say LS.
Jonathan Hall:I say LS. Yeah.
Shay Nehmad:And you don't say
Jonathan Hall:I say look
Shay Nehmad:CD for change directory.
Jonathan Hall:CD, Mictur, Marumder. Really? Mictur? Mcdir. Think
Shay Nehmad:we should do an episode where we just, read all the Unix comments one by one and see compare pronunciations. But it's definitely C shell and not Zush. So anyway, what's QuikJS?
Jonathan Hall:It's QuikJS. It's a new JavaScript runtime in Go. Woah. Yeah. I'm gonna be checking it out.
Jonathan Hall:I have a project that uses Goja, g o j a. This claims to be faster than Goja. So I'm gonna check it out when I have a chance and I have some spare cycles.
Shay Nehmad:My my solution so far has been to run v eight.
Jonathan Hall:Yeah. You could do that too. My reason for not doing that is I wanted a pure Go solution. V eight just is a just links in the the c libraries, which is fine if that's what you want, but I wanted something that But it's for this
Shay Nehmad:use case. If if Yeah. Cool. Cool. Mine is way less useful, but way cooler.
Shay Nehmad:Do you watch anime? Any anime?
Jonathan Hall:I do not.
Shay Nehmad:Another difference between us. You don't do any of the cool programming, things.
Jonathan Hall:Well, thanks.
Shay Nehmad:Yeah. I guess that's a it's like a a programmer, type.
Jonathan Hall:I mean, I I do I do program in Go regularly, so that's something cooler than what
Shay Nehmad:you do. The coolest, for sure. So there's a thing called Kaizen, which is a pure Go. I don't know if it's pure go, but it's a go thing that lets you watch, anime on the terminal. Oh.
Shay Nehmad:It definitely, like, a fun project and not, like, an important project. But the reason I'm bringing it up is because the on Reddit, they were like, the 2.1 version is on its way with enhanced video playback, optimized APIs, and now with a poster of the anime in your terminal itself. And they're, like, posting it on Reddit, I think hoping for, stars and some contributors, which honestly, if someone told me, you know, yeah, I I have a passion project on the weekend, I developed a terminal, movie anime viewer. I would be like, oh my okay. This this person might be crack.
Shay Nehmad:Yes. And there's a video on the like, a recording of how it works, and it seems to work. So I'm, like, I'm excited about it. I might even try it. Probably not, but I might even try it.
Jonathan Hall:I have so many questions that that are not appropriate for lightning round, so I'll I'll save them.
Shay Nehmad:Yeah. Let's keep them later. I'll just say if you need a recommendation for an anime, I think, anybody anybody, it doesn't matter if they're into anime or not, can watch. What's the show name? See, probably the only anime I watched.
Shay Nehmad:Brotherhood, something Brotherhood. Full metal, I I'll commit to Brotherhood. I highly recommend it. Top 10 shows for sure.
Jonathan Hall:Not to be confused with princess beef heavy industries, which also sounds like a good a good anime too.
Shay Nehmad:Top 10 oh, man. He could actually do an anime. Okay. Let's stop. Because now with Sora, these ideas can actually go into missions.
Shay Nehmad:Alright. Thanks a lot for listening everybody. Next week, extremely special live episode in San Francisco. And if you can make it, I would really I would be so happy to meet you there. But if you can't, you'll listen to the episode after.
Shay Nehmad:But live, we're mean, like, we're not gonna we're gonna edit it. We're just gonna record it live.
Jonathan Hall:Right. Filmed in front of live studio audience.
Shay Nehmad:Yeah. Exactly. Thank you all so much for listening. Program exited.
Jonathan Hall:Program exited. Goodbye.
Creators and Guests

