When refactoring a compiler, the back end should be tackled after the middle end because it has fewer dependencies, making it a more manageable starting point for the rewrite process.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
studying compilers every day until i land a compiler role (day 213)Added:
Okay, we're live. Holy crap. Um, apologies for being like 50 minutes late. Um, if you all know of the game Pico Park, um, let's just say, let's just say a game of Pico Park, our our lobby went on an hour an hour and then some later than I anticipated.
So, yeah, after after yelling at us or after yelling at each other for a while, we are finally done with the game. Oh my god, I'm I'm still I'm still malding over that. Uh what's up, Israth? Good to see you. Um this is day 213, I think. Uh yeah, of studying compilers every day until land compiler rule. Last time we finished rewriting the middle end. This time we're going to we're going to start the rewrite on the back end. It's hopefully this is like this might be like a little bit sloped still, but um hopefully this is close to some of the last of this stuff that we have to do.
Um yeah, so let's let's just bullet through L first. I think I think this is the this has the least dependencies. So we're just going to we're just going to get through all this real quick.
I can just organize it like that.
Yeah, I'm I'm a little bit frazzled cuz I've played three straight hours of Pico Park and I I hate my friends now.
[laughter] Um yeah, these these functions are just going to be ugly. This is fine.
Yeah, we'll do that. That's fine.
Yeah. How's How's everyone else doing?
Hopefully hopefully y'all are doing better than I am in this instant at least.
Oh man.
Um, okay. All these interfaces seem fine.
Um, this is fine. This is fine.
Um, yeah. This this is all stuff that I really don't want to change. I think I think we've I think we've done this sufficiently well. We might just have to like clean this up.
Yeah. Okay.
Uh, we got to reorder that.
Um, yeah. This is all just like very boilerplate.
Uh, that's inevitable.
That's inevitable. This is all fine.
Just debugged. Why I'm getting a max Windows reached? Wait, that's a thing?
Wait, I never I never knew that was a thing.
What? How? How's How's that happened?
That's That's really funny, actually.
Yeah, I've I've never heard of that ever happening before, so that's that's news to me.
Um, we can do that. I guess we'll we'll clean that up.
Yeah, we need to add those eventually.
I swear we had a to-do somewhere.
Yeah. Okay.
Discord leaking window clients on the back end. Wow, that's that is insane.
Um, okay. We we are not removing that, I guess.
Okay, let's let's throw more boiler plate at the wall. Let's do that.
Okay, this makes sense.
Yeah, this is good. [sighs] Um, yeah, we can do that. That's good.
That's good. Okay, this this stood unreachable was a little bit ridiculous, though.
Uh, this file is pretty clean, it looks like.
Okay, cool. I think I think this is mostly set for now. I really I'm like tired of doing all this rewrite stuff.
So, I think I think this is about as much refactoring as I want to do. Maybe at some point I'll like consider rewriting some of these things, but I really don't want to.
So yeah, uh reformat lord server only lets 255 discorded 180.
Why why is discord doing that? Is it just like electron doing stupid electron stuff or like that's that's insane.
My god. Okay, we're just We might just have to like be brief with this. Let's just like fix up all of the I don't want to do this anymore. So, let's We'll put this back in the queue.
Yeah, we're just going to do like reformatting for now and call it a day.
I think I don't want to do a lot more than just reformatting.
I don't want to I don't want to look at this. I don't know what I was doing here.
Holy hell.
Electron nonsense. Yeah, I guess I guess fair enough. That sounds reasonable enough.
Oh, this is where our tiles are. I see.
Um, okay. I mean, I think this we kind of have to do it like this, unfortunately.
We could add more tiles at some point, but I think this is as much mileage as we're going to get.
Although, I wanted to like rewrite tiles or re-implement them in a way that wasn't ugly at some point, but we will we will have to make do.
Um, all right. This stuff I'm fine with being ugly because we do have to like this is literally stuff we have to merge. So we have to like give unique pointers.
Let's see. This is fine.
Yeah, all of this code is like really ugly.
It's never it's never made me very happy. But what can I what can I do?
Um, okay, that looks good.
Oh man.
Holy [Β __Β ] W What was I doing? I don't think I ever knew what I was doing with this, to be honest.
Yeah, let's let's just speedrun this.
Okay, L tree is good.
uh reformat L tree.
Yeah, it's like there are some skeletons that you necessarily do just want to like pack in a corner. So like I think this is this is one of those skeletons that we necessarily do want to pack in a corner.
Yeah. Oh my god. [laughter] What am I doing? What am I doing here? I need to implement this. I do just need to implement this.
But at least at least this is like clean, I guess.
Uh that's fine.
That's fine.
I think most of this is fine to do regret this choice. I am not regretting this.
Okay, maybe I am regretting some of this actually. We we will just leave the comments as is here. I think for the most part, yeah, a lot of this is just like quick reformat stuff because it's light and also because I don't want to think a lot right now. I've already burned so many brain cells.
playing Pico Park. Do not play Pico Park. Never never never try to play Pico Park with friends. Just don't do it.
Um H wonder if there's a better way to do this. Actually, I think there is actually. We can definitely simplify this real quick.
This is kind of interesting.
Um, so if we go to codegen, we have a visitor.
Um, and it just overrides one thing.
So we can kind of do something like that here as well. I think I think we can just like there might we might be able to simplify this a lot. So we'll we'll come back to this. We'll put a pin in it. But I think that's going to be one of the interesting things we look at today. Uh let's uh yeah, we'll just add that to the list real quick so I don't forget.
Um this should just be a strct. I don't know why I made a class for it. This is redundant.
Um yeah, I think I think this is kind of messy, but it's fine.
working on compound assignments. Yeah, I mean you will just have to like make a lot of like small helpers and that's that's just the nature of it.
But like it's it's fine, you know? Like you go through it and like again you just like you just put a little box over it and you never you never care about it ever again.
What the [Β __Β ] Why is there a Why was there a semicolon?
Anyway, okay. Anyway, but before before I question that too much.
Okay, let's I hit caps lock. Whoops.
Most of this looks fine.
Yeah, let's do that.
Okay, this was this one was clean. That was nice.
I think around now is when I like started realizing that there was like actual style or like I started figuring out what my actual like C++ coding style was. So, it kind of made everything a lot easier.
Um, evidently not easy enough, but you know, we we got we got closer.
Okay, so now we just have this little pile, I think.
Uh, reformat back end passes.
Okay, so let's let's get through this now.
Yeah, I know this is like not really interesting stuff, but it's it's all stuff that I've like meant to do at some point and I just did not know when to do it. So, unfortunately, we'll have to be on stream, but you know, that's how it goes.
Um, these are all like glue programs.
We can do that and that's fine.
Yeah. Okay.
Reformat backend glue.
Okay.
make clean. Make Okay.
Yeah, exactly. Like the the stuff that like the stuff you write early on will necessarily just be very different. And like that's that's kind of just reality.
Like I think that's pretty reasonable.
Yeah. Okay.
So, follow the chest run. Then we have a we have a good stasis that we can continue working off of.
Um, okay. It looks good. Let's push that. So, there's two things I want to resolve. The first thing is like this little livveness file.
Um, I wanted to do some cleanup work on this because a lot of this is kind of boiler play.
Um, maybe I should make like a macro to generate this, but I don't know. I don't think it matters enough.
Um, I think the big thing is this successors pile. This is a little bit ridiculous.
I guess I do have to implement all of them though, now that I think about it.
So, we kind of just have to do that.
Um, yeah. The other thing is the formatter is mad at something.
So, if we go to GitHub real quick. Um, also my my GitHub's in the description.
You should add me on here if you haven't.
Um, okay. Let's pull request.
Yeah. So, we did both of those.
title.
Okay, we can just make the pull request. Um, the reason Yeah, it's it's going to fail the formatting check and it fails on this for some reason, which is wrong.
I don't know why this does that. It really irritates me.
Um I think it might have something to do with the version of cling format that we're installing.
Yeah.
Yeah. So this is like a What version of cling format is this actually?
Let's see.
Unless I can like rewrite around it somehow. It's like I don't know. It's really annoying at least.
Uh, let me turn this dark mode as well.
Sorry.
Um, yeah, maybe I can mess with the formatting thing. It's in GitHub workflows formatting.
Yeah. So, how do we how do we want to install this?
It should be most recent, though.
Let's I'm just going to throw this into Claude. Honestly, I'm I'm getting really annoyed at this.
Um, okay.
This workflow format disagrees with my auto format.
Uh what's up YouTube code? I am I am struggling with dumb formatter [Β __Β ] right now.
Um, let's just h Let's just throw this in here instead, maybe.
Uh yeah, we can do that, I guess.
Um what version do we want? 22.
Yeah, let's try that out.
And if it doesn't work, we'll just keep force pushing over it until it works.
Oh man.
Okay, looks like it works in theory. If this still fails the formatting check, I'm going to tweak though.
Okay, that's installing a lot of stuff actually. That's interesting.
Okay, now it passes. Curious, huh?
Okay. Is there is there a smaller way to do this?
Jesus Christ.
Yeah, like I I could probably learn how to do this by hand, but I really don't want to. And I also don't want to learn how to like I don't want to spend my time like messing around with like in installing like CI/CD stuff or like fixing stuff that I've written. This is just very annoying.
Um yeah.
H.
Oh, yeah. Clad. Cloud got me. If no one got me, Claude got me. Claude will probably murder me. But, you know, what do I know?
Um, let's see. What if I just did it without the thing?
I don't I have a Ubuntu VM that I can check actually. Let's let's pull that up real quick.
Um I might have some other stuff open on it, but we'll see what happens. Let's Let's see if this like bricks my computer. It would be really funny if that happened.
Okay. Um, I was doing some other stuff for a class. Let's Let's just put that in the background.
How do I How do I mess with Okay, one second.
Can we make a new desktop? Aha.
Uh, okay. Let's move that there. Yeah.
Okay, there we go.
Okay. Anyways, [sighs and gasps] yeah, the just billion workflow commits just suck. But it's fine.
I I just force push over and call it a day.
I don't know if I did this in the right order.
Uh, we can do that.
Let's see if this works.
Or what what does this run at least?
What is the difference between app and app geta actually?
Okay. So like what if we just use apt instead of aptget does that what is the lvm version on this Linux actually what Linux is this running yubuntu latest actu is better for shell scripts Okay, so we should just use apt, right?
outputs a bit more uniform and less good for breeding. I see.
So, I should just use apt is what I'm getting from this. Like, there's no reason for me to not use apt Um, okay.
Okay, that's that's a little ridiculous.
Holy [Β __Β ] Um, okay. So, do I have cling format? pseudo apt install cling format.
It says it's cling format 21. So I guess there's the issue, right?
But I can just install 22. So like, okay, all good. All good. All good. All good.
Let's fine. So let's let's save machine state.
Let's get rid of this VM.
We can definitely just use the old old script and just specify clan format 22 is what I'm getting from this.
Right?
Yeah, let's just force push over it.
We'll be deranged.
Let's Let's see if that works. If If that works, it'll be really really funny.
Okay, so that just doesn't work.
Do I need to upgrade?
Oh, apt get kit. Wait, hold up. So, we're we're back in hell. Um, let's go to Yeah, that should work then, right?
I didn't check if 2404 It's not 20. Are you kidding me? Okay.
Anyway, let's try that out.
Uh, what's up, Arthur?
I'm trying to figure out how to how to set up workflows.
This is this is going not so well.
Okay. So what?
Okay. So we should just use app get for this then. So then why is this do I just have to use the god awful script then?
I wish I had undue tree right now. Okay, we're just going to we're going to yank this from Claude again and it's going to be fine.
Yeah, let's let's just do that and call it a day.
What changed there?
Oh, duh.
Wait, this is a sim link. We don't Yeah, I don't want to downgrade mine, though. I'm I'm too lazy to do that.
Um, okay. This should be fine or get most recent get or updated LVM. I don't know. I don't know what to call this.
When does your internship start? Um, it's either the week after I graduate or it's the week I graduate. They've given me like three different dates. I still need to like recclarify it. Um, but I'll I'll worry about that in approximately a week.
We'll just do that. Let's see if this works.
Um, that's still the old one.
This should just pass all checks now.
Huh?
Is this Oh, did I push?
Whoops. Okay, there we go.
We're just gonna I'm just not going to think about that too much.
Um, test will run fine.
I trust nothing will change there.
[sighs] God damn it.
All good.
Okay. All good. Nice. I think all good.
Yeah. Okay.
Yeah. Okay. That that all looks good to me.
Um Okay, nice. So, that's that's nice and dandy, I think. When Oh, yeah. I need to do that.
Yeah, let's let's m we could we could resolve this real quick.
Yeah, let's let's clean up this this read me real quick. This is a very good call.
Um, where there's read me. Oh man.
Yeah, we got to change that. So, let's see. Oh my god.
Where does this live? Source front end parser. just everything here.
We could just link it here.
What do we even call this?
Yeah, we'll just I don't know.
Um I think Mick does that. Yeah, we got to change this as well.
H. What do we need to add?
Yeah, we'll do enable.
That should be good.
Yeah, we can we can get rid of that honestly.
Um I think most of this is fine.
section.
OBS, please. OBS.
Okay, we're back. We're back.
Apologies.
Um, yeah. So, that does that.
Um, do that.
Actually, we could print out the help message again.
We'll do that. I don't know.
And then what else do we want when writing programs for panic?
We'll just do that.
Very limited.
And then we can yank the link again from here, I think. Right. We can junk that.
Yeah, we can do that. And then we can do that, right? Yeah.
And then we want uh there's one other thing I was thinking about. Um instead of linking against the standard library, we have a runtime library which is an include.
Use the runtime library.
Since the C standard library uses a lot of features not supported by panic.
This is getting annoying.
And then we could make a link to that source. No, it's an include.
Okay, I think that's about all we need here.
Yeah, we'll do that. And that should all look fine now.
So then is there like browse files? Maybe we could preview it like here. Yeah, that's all good.
Okay.
Okay, that seems reasonable enough. Um, can I link this somewhere?
Yeah. Okay, there we go. Yippee.
Hooray. Okay, so now that's all good.
Um, yeah, I think, yeah, I think that's a pretty reasonable amount of work for the day at least.
Um, what's up, uh, Nordic nerds? Um, how do you deal with the entire vibe coding era? Um, honestly, I don't think it's that bad. I think as long as you're still like thinking about what you're putting in and getting out from an LLM, it's probably fine. Um, yeah, you just you just got to be careful with it, I guess. and make sure you're not like make sure you're not getting like too active um in terms of just like not looking at your code. Um the LLM is like an extension of you. You still make the design choices. You still approve code.
So it is still it is still up to you, right? Um and like if other people are lazy and like don't do that, then like that's to in a sense that's like to your benefit, right? Because um that necessarily puts you at an advantage if you do do that.
Um what's up uh Ashie? Um new programmer here facing blank screen syndrome. Um how much are you trying to or I guess how much do you know and what are you trying to learn right now? Um if you're completely new to programming I think just any semblance of a Python tutorial would be a good place to start. Um, if if you have like some programming experience, I think just like making any sort of a website or like any sort of a any sort of a program. Um, it doesn't have to be anything complex. It could be something as simple as like the bathrooms on this library at campus are really annoying to make. Let's make a map for it. Um, just if if you can't think of any good ideas, find a problem that you have day-to-day and try to make a solution for it.
Um, I can make simple creds. Okay, perfect. Yeah, then I think I think that's probably a good place to go then.
Um, if you want to if you want to learn stuff or learn more stuff, I think the best place to do it is to just like make a project. Um, pick something that's interesting to you and you will naturally find the motivation to work on it. Um, like that's how I started making our esports clubs Discord bot for instance. U, I'm not going to pull up the repo, but yeah. Um, that's like that's an example of something where I noticed there was like some sort of a problem or some sort of a gap in software somewhere and I was like I can I could probably do something about it.
Um, so yeah, just just give it a shot. I think I guarantee you'll find something.
It doesn't have to be anything large. It can just be like something really small and like really silly and it's it's like perfectly fine. Um, or like if there's something workflow wise in your day-to-day that you could you need something for, then that's also great.
Um, or like I don't know like even like elite code tracker or something. I don't know, something to like track the problems you've done and like pull random problems. Like you can you can kind of just like you can definitely think of problems. I I'm sure like not everything in your life is going perfectly. Not in like a personal way, but in like a you can figure out what to do.
Um I wanted to go into compiler design.
Um I would start with my two recommendations.
Uh the bot will spit them out in a second. Um, Galo, I think I think this will be the last question. Um, I'm working on developing a PL for a college project. Do you know of any cool papers about partial eval?
Um, [sighs] not off the top of my head, but there's a lot of PL people in my Discord. I think I think it might be worth a shot asking around. Um, but yeah, I think I think I'm going to call the stream here.
I got to head out. Um, thank you all so much for showing up today. We got some good work done. Uh, like the stream if you haven't. Sub to the channel if you're new. Um, also check out the description. My Discord is linked there.
Um, it's the best place to get pinged up when I go live and stay connected outside of stream hours.
Um, yeah. I'm going to go enjoy the rest of my evening. Now, graduation time means a lot of people want to do a lot of things, so that's like eating up a lot of my time. Um, take care y'all.
Take it easy and I will see you all tomorrow hopefully.
Related Videos
Agentforce NOW AMA: Build with React and Salesforce Multi-Framework
SalesforceDevs
490 viewsβ’2026-05-28
How agent o11y differs from traditional o11y β Phil Hetzel, Braintrust
aiDotEngineer
450 viewsβ’2026-05-28
Re: π£οΈπthepropheduπ2026 GST 103 CLASS (E-EXAM REVISION)
theprophedu
636 viewsβ’2026-06-04
WEB TECHNOLOGIES UNIT-2 | Degree 4th sem BCOM Computers web technologies unit-2 full explanationπ―β
LearnwithSahera
1K viewsβ’2026-05-29
More tests are always better? How to use AI to identify tests that bring little value
Alliance4Qualification
335 viewsβ’2026-05-29
Search Algorithms Explained in 60 Seconds! π€π¨
samarthtuliofficial
218 viewsβ’2026-06-01
People of Game of Thrones using JavaScript DOM
AltCampus
296 viewsβ’2026-05-30
Instagram accounts got PWNed
EricParker
13K viewsβ’2026-06-03











