I turned into a man that watches compiler videos for entertainment, props to you for making it so entertaining
@wizardDESTRU Жыл бұрын
ahaha me too wtf
@Fernando-du5uj Жыл бұрын
same
@maelstrom57 Жыл бұрын
I was looking for something to watch while having dinner and YT recommended this. It'll have to do I guess.
@bArium5656 Жыл бұрын
Prep less programming tutorials are always funny😂
@danielwang4901 Жыл бұрын
lol same
@wubsyman5796 Жыл бұрын
"I'm not gonna use rust because I write memory safe code"... The memory safe code: "Does this have a destructor?... I'm gonna assume it does" (36:30)
@fsdofpsodpfosadfijsadfsdafsda Жыл бұрын
🤣
@budgetarms Жыл бұрын
It indeed does have it, an automatically created one. But yeah, .... memory safe code, ...
@h4ndle_yt Жыл бұрын
"I am not gonna use rust because the community is terrible" is a better reason tbh
@fsdofpsodpfosadfijsadfsdafsda Жыл бұрын
@@h4ndle_yt what's so wrong about community tho
@kvsbcsljv Жыл бұрын
@@fsdofpsodpfosadfijsadfsdafsda I got verbally abused for saying C++ is better
@aldairacosta4393 Жыл бұрын
This dude : "I can´t remember how to do this" *Start to create a fucking compiler*
@helker9997 ай бұрын
😂😂😂
@oliviercomte76245 ай бұрын
He never read the documentation even for things he barely knows…😢
@pdd57932 ай бұрын
he's just like me
@poleve5409Ай бұрын
awful grammar and using swearing for no reason. Yup you're a minority
@woerty123 Жыл бұрын
I really appreciate that the sequences, where you are not quite sure are NOT cut out. It's really helpful, to see the thought process in a specific language / context, when you are not sure what to do. For example, which docs to turn to, or how to use intellisense etc. to find the information one needs to solve the problem. Seeing just some finished code explained is not nearly as helpful as this format in my opinion. Very watchable. Thank you!
@ThatNiceDutchGuy Жыл бұрын
True! In fact, I think showing the thought process is the most useful part of these type of videos.
@SoreBrain Жыл бұрын
I don't think I would have finished the video if it was streamlined and cut down
@Ikxi9 ай бұрын
and hella fun
@psycoder-x Жыл бұрын
15:53 There is nothing with RDI register, just (in Linux) the exit codes are specified in the range 0-255 (1 byte). The number 420 lost its most significant bytes and became 164.
@sethbuchanan6937 Жыл бұрын
Here is a visualization of what you are saying | 00000000 | 0000000 | 00000001 | 10100100 | rdi register (420) | | | | 10100100 | return syscall (164) The return syscall only views the first 8 bits of the 64 bit rdi register
@psycoder-x Жыл бұрын
@@sethbuchanan6937 Thank you!
@DDlol01 Жыл бұрын
I was looking for this. not high enough^^ have my upvote.
@dtomvan Жыл бұрын
`man 3 exit` states: "The exit() function causes normal process termination and the least significant byte of status (i.e., status & 0xFF) is returned to the parent." Turns out `420 & 0xFF == 164`.
@TheManchineel Жыл бұрын
This, the exit code is char-sized
@johnnyserup5500 Жыл бұрын
I like that you are not afraid of showing your mistakes, because that is how you learn - keep creating more
@SamFisk Жыл бұрын
Mistakes and forgetting easy things. Something I tell newbies is that you don't need to memorise content but rather know that it exists and understand it when you see it again. E.g. what an entry point is, not the exact syntax.
@ivandimitrov4410 Жыл бұрын
"there are two types of programmers - those who have written a compiler and those who haven't" - Terry "The greatest programmer that's ever lived" Davis
@ian562ADF52E Жыл бұрын
I studied CS in the same halls as that man... nay, that God.
@walterdiaz2003 Жыл бұрын
Would creating a database engine from scratch and sql compliant be considered at that level too?
@doomsday7699 Жыл бұрын
No, you should also build the operating system and the hardware, transistor by transistor
@mek101whatif7 Жыл бұрын
I'm trying😭
@TheInspctrcat Жыл бұрын
@@doomsday7699better use lamps
@jahjahhhh Жыл бұрын
You make the learning so much more approachable for people with no previous understanding of compilers or asm. This style of teaching where you build a project live while explaining why you make that decision is so comprehensible. Thank you
@imagist. Жыл бұрын
Humanizing programming
@Merilix28 ай бұрын
learning from this one is learning the wrong things.
@jahjahhhh8 ай бұрын
@@Merilix2 elaborate maybe?
@jordixboy Жыл бұрын
As a self taught software engineer that loves going deep into all the layers this is great introduction! Currently Im building VM's for Chip8 and Gameboy, and writing VMs REALLY helped me to understand how a computer works from a binary level. Feels really genuine that you dont know everything and use Google, really shows how the day to day of a software engineer is.
@coolimdad Жыл бұрын
Google is our best friend
@rubyciide5542 Жыл бұрын
Damn bro i wish i was like u
@jeremymakenzie7443 Жыл бұрын
based
@ThaEzioAuditore10 ай бұрын
do you mind sharing a few resources that have helped you in that direction ? I too want to write an emulator
@DudeBroVideos Жыл бұрын
I can tell this channel will go somewhere with commitment, keep up the good work!
@pricesmith3417 Жыл бұрын
decided to comment to say the same thing.
@doresearchstopwhining Жыл бұрын
totally agree. Maybe a little more editing but I think this guy can explain things well
@happysongs4kyrone Жыл бұрын
@@doresearchstopwhining "a little" is very important here, I kind of like the bare-bones explanation. there are definitely some parts that are unnecessary, and maybe some visualization..s? i don't know. but i hope this guy doesn't become into an over-stimulating mess.
@SanketL3730 Жыл бұрын
Subbed just watching this comment within 1 min into video.
@UmerHA Жыл бұрын
Yes! Please keep going! Looking forward to your next videos
@aldutran Жыл бұрын
No way, Tsoding at home 😮
@jodu Жыл бұрын
That was the first thing I thought too
@simeondermaats Жыл бұрын
it's the Iosevka that does it for me
@bosch5303 Жыл бұрын
💀
@shiroe0781 Жыл бұрын
Tsoding without emacs
@Alsexaren Жыл бұрын
American, windows using Tsoding
@Meknassih11 ай бұрын
One underated aspect of this kind of videos is that making mistakes is actually good to keep in the video instead of editing it out. Really makes it engaging and relatable as if we're doing it together. Great content !
@Hellbending Жыл бұрын
No cap, how do I donate? Never even considered donating to a KZbinr before but this, but this is the content that’s enjoyable. Not the average hour long video with cuts and edits everywhere, because every time the person has to look something up it’s all secretive and never seen. I got a lot of respect for someone that is probably a little bit nervous because they may be using a language they’re not be 110% comfortable or familiar with, but is well and truly comfortable enough to show what’s going on in their head as they walk through the project and show all the pivots and everything that’s happening. I fucking love it, I got a lot of respect for it and I want to support this kind of “free thought with a goal” style KZbin videos. If you’ve got some way to accept donations, let me know 🙌💪
@pixeled-yt Жыл бұрын
I'm lucky enough to not need the money. I do this for fun. It's the thought that counts, thanks!
@spaghettiking653 Жыл бұрын
@@pixeled-yt Legend, and you're humble too!
@NullPointerDereference Жыл бұрын
You can't donate to smaller channels I think. Kinda sad since usually they are the ones that need it the most.
@Hellbending Жыл бұрын
@@NullPointerDereference I was happy to PayPal or Patreon lol
@Ozzymand Жыл бұрын
This is unironically the exact type of video I wanted to see about this topic. A "Let's build X" from start to finish with really great commentary and explanation on the side. Keep it up man
@Ikxi9 ай бұрын
"This is very safe code" "I'll figure it out when it crashes on me" love this guy
@billyraybar18 күн бұрын
I am not a coder yet I followed along. I actually feel like I now have a basic understanding of assembly and how a compiler works. Thank you.
@katchins Жыл бұрын
You made the process of creating a compiler so straightforward and intuitive, I wish I had this video in school during my compiler class!
@NorteXGame6 ай бұрын
It's insane how well you explained things in this video. Not only did you successfully explain basic Assembly, you also made me understand all the premises of compiling. I also like the human aspect of this video, of making mistakes and fixing them live. Thanks for this.
@theobgshow Жыл бұрын
I came across this and was compelled to sit all the way through it. I love your delivery, your voice and that you haven't edited anything, leaving in your mistakes. Thank you
@alexoverstreet Жыл бұрын
This video is so underrated. Very simple and easy to understand to get you started with the world of compiler development! Thanks 🎉🎉🎉
@Bobbias Жыл бұрын
Oh, it's nice to see someone else making long-form coding videos like this. There are far too few people making this sort of content. I really hope you continue.
@serg4727 ай бұрын
This is a great way of teaching when you are showing your unscripted research, googling, what goes through your head, making and fixing mistakes, starting with a naïve approach, reinventing bicycles, etc. This teaches much more about the subject than just giving a final polished solution.
@pricesmith3417 Жыл бұрын
I whole-heartedly appreciate how you approach communication, have subscribed, and am looking forward to both learning from and seeing the growth of this channel. Stay grounded!
@vvshawty9 ай бұрын
i love that this guy simply woke up and decided he wanted to teach us to create a compiler without even researching or scripting the videos, just pure skills and remembering the syntax on the go. thanks for the content!
@carbonn7280 Жыл бұрын
Hey Pixeled, thank you for this video about Compilers. At around 17:00 when dealing with your program exit code, you put 420 into rdi and get 164 in return. That is totally normal and It has nothing to do with registers, that is just how exit(2) works, the exit code is masked with 0xFF so the exit value cannot exceed 255 : " The value status & 0xFF is returned to the parent process as the process's exit status". Cheers ! o/
@Matt23488 Жыл бұрын
> KZbinr I've never heard of > "Let's Create a Compiler" > "part 1" > over 1hr long *sighs* fine... In all seriousness, this does interest me so I'm glad I got the recommendation for it!
@DevNugget Жыл бұрын
I love this! I started a project similar to this a while back but never got anywhere. Your ability to explain something is incredible! Can’t wait to see how this goes.
@kenan2386 Жыл бұрын
same
@AkiiiMatcha6 ай бұрын
Thx for making this video, even tho you struggle a lot it just makes the video way more relatable and enjoyable imo. It just shows what programming REALLY is sometimes, that it's not this thing you do sometimes where you write perfect C++ or whatever in like a 20 minute video where it just makes you feel like you are not good enough because you can't do it like that.
@hammadbawara Жыл бұрын
Wow, this video is incredible! The way you code is truly impressive. Your approach to understanding how things work reminds me of myself. I often worry about forgetting syntax, but you've reassured me that it's normal to forget syntax.
@mironbarykin2379 Жыл бұрын
Just stumbled upon this video thanks to KZbin's recommendations, and I'm already amazed by the content. Haven't had a chance to watch it all the way through yet, but it's clear that a subscription is well-deserved. Can't wait to dive into the rest of the video!
@joshman1019 Жыл бұрын
Thank you so much for doing something actually interesting, as opposed to mind numbing web dev tutorials. I’m a mid level programmer by day and looking to do more low level stuff as a hobby. I really liked that you didn’t cut the video, and did some of your research on the fly. It was like hanging out with a buddy. Fun video!
@ThEldeRS Жыл бұрын
"This is SO safe" has got to be my favorite quote from this video :D
@starshipx1282 Жыл бұрын
super cool style with experimentation. Pls keep up. thank you very much : )
@urbrighturbright Жыл бұрын
man this is one of the best, most informative videos i've ever seen please continue the series. this one's beyond amazing
@indierusty Жыл бұрын
Amazing. Never seen a devlog explained this good.
@kuro4841 Жыл бұрын
please keep the one-take style videos like this, it really helps a lot like many other people already stated.
@Meitzi Жыл бұрын
I really like how you explain things. No need to make anything look more complicated than it is. For learning, it much more efficient to focus relevant parts, not nyances.
@delicious_seabass Жыл бұрын
I want to correct the record: Rust is sacrilege, C++ is a sin, but C is pure. Come into the light, my child. Embrace C. It loves you, even with all your flaws.
@ncwl.youtube Жыл бұрын
true dat
@KnP_Falco-N Жыл бұрын
Amen
@xKaihatsu Жыл бұрын
We love C!!! 😍😍😍
@lolcat69 Жыл бұрын
Nuh uh bro, we already have Tsoding for C, let the man C++
@mgaugy Жыл бұрын
And the Lord spake, saying, "First shalt thou develop thy programme. Then, shalt thou compile in C. No more. No less. C shalt be the language thou shalt compile, and the language of the compilation shalt be C. C++ shalt thou not compile, nor either compile thou preprocessing, excepting that thou then proceed to C. Rust is right out. Once the language C, being the proper language, be written, then lobbest thou thy Holy Hand Grenade of Antioch towards thy foe, who, being naughty in My sight, shall snuff it."
@akashpoudel Жыл бұрын
You've made me understand and connect the dots about how compiling and linking works more than my Compiler Design Course at University which I studied for 6 months 😭
@Laz3rs Жыл бұрын
your explanation style is amazing. non-monotone, slightly fast paced. its exactly like how i would explain something. love it
@chronosbat Жыл бұрын
I've been thinking of making a big project like a basic game engine without any libraries but I'm not really out of my comfort zone yet lol. This video is great and I've seen your whole channel is pretty good too.
@pixeled-yt Жыл бұрын
I've actually done that too, if you look on my GitHub for "Voxelverse", it's a Minecraft clone written in c++ that uses vulkan directly without any game engine/framework. I might make a video on it in the future
@cosmicspd Жыл бұрын
first video ive seen of yours and i love that you go into detail and try to explain stuff the viewer may not understand, it really helped me understand and enjoy the video more. keep it up!
@anianii7 ай бұрын
"We can refactor it later" is so relatable
@LBCreateSpace9 ай бұрын
This was so helpful to watch. Ty for not cutting out the errors etc. Seeing how you thought through and resolved them really made this much more educational.
@zzz-hk9zq Жыл бұрын
This is some top tier tutorial. You explain everything so well....
@smenigat Жыл бұрын
Sir absolute solid teaching style. Really enjoyable to watch and follow along. Perfect pacing, just the right amount of wit and crisp information. This ist the first video I watched from you, and you already earned a new subscriber. Keep up the amazing work!
@onsearchfocus Жыл бұрын
Love the whole unscripted and figuring errors on the fly. Like we all do! Well done.
@benoitb.3679 Жыл бұрын
Dude, this was amazing. Thank you so much. To be honest, I had fallen asleep on the sofa and woke up at 4AM. I put this video on almost at random to go to sleep horizontally on an actual bed. I thought "I hope this dude isn't really annoying" but I ended up staying up to watch it. If you did this basically off the cuff, it's brilliant. If not, it's brilliant. I am *super* excited to watch the next parts. You're helping answer a question I've had for years and doing it wonderfully. Have a great weekend!
@blkgames1447 Жыл бұрын
I never thought that I would enjoy watching a 'creating compiler' video. Good content
@caseyzduniak632 Жыл бұрын
Easily one of the best personalities that I've seen in CompSci, keep up the good work!
@ESS982 Жыл бұрын
“Thats right. We have our first Seg fault”. I fucking died.
@abhis3kh7 ай бұрын
Didn't know anything about complier but always wanted to know - watching you explaining is really a awesome feeling - good luck 🎉
@spamfilter32 Жыл бұрын
"It's not good code, but I just wanted to get something working." This is the way to write code. First, make it work. Then, make it optimized.
@dummyhacker315711 ай бұрын
the spirit brooooooo!
@gayusschwulius8490Ай бұрын
I only partially agree. It's true that you don't have to do every small optimisation from the very beginning, but you really should think about performance even while doing your first draft, because it can be a real hassle to later optimise your program if you've chosen to structure it in a way that's not efficient in the first place. I had this whole "make it work, first, then make it efficient, later"-mindset when I wrote my first chess engine and it was a horrible idea since the way data was represented was completely inefficient and only a total overhaul of everything could fix that.
@serhiicho Жыл бұрын
I’ve never thought that watching a programming tutorial can be entertaining 👍 Thank you for that
@dieter6375 Жыл бұрын
The exit code returned by the kernel is taken modulo 256, so you'll get the remainder when 420 is divided by 256, which is 164.
@SimGunther Жыл бұрын
Technically the assembler knows the size of each register, so it would just take the 8 bits necessary for the machine code, no modulus needed :)
@dieter6375 Жыл бұрын
Thanks for the explanation. I think this is in line with what Pixeled said in the video.
@victorshilin9360 Жыл бұрын
The important difference is that the value 420 is never truncated by the assembler itself, nor the limitation of the rdi register. The 64-bit value gets passed as is to the kernel, and the exit code is indeed taken by modulo 256.
@yagami1160 Жыл бұрын
i think it just takes dl register not rdi, you can use rdi but linux syscall is still using the lowest part of this register in terms of compatability I suppose
@savvy5817 Жыл бұрын
the mistakes were golden real time problem solving, very educational and very intentional
@BiGEnD05999888 Жыл бұрын
"If your IDE is not using 10 gigs of your RAM, you're not doing it right." LOLOLOLOLOL Great video man, kept me hooked and entertained for the entire hour, and learned a lot as well! Keep up the amazing content!
@tanujjain57 Жыл бұрын
Liked your way of explaining things and showing everything hand on. Keep up the work waiting for new videos of this series!!
@m4rt_ Жыл бұрын
Thank you for making this video. Sadly there isn't a lot of easily digestible content of how to make a compiler. Most of it is "go read this book from the 90s", though there are some exceptions (there are some videos on KZbin on making compilers), but those aren't always that good, or don't show everything there is to it, maybe just the lexer and parser. If you keep making these videos, and keep up the quality then I think you'll get a large audience of curious programmers. Good luck with your future videos, I will keep an eye on this series :)
@Furetto126 Жыл бұрын
Hey! I'm interested in learning this, could you link some KZbin videos or resources you found, I tried but couldn't find much 😔
@jakubrogacz6829 Жыл бұрын
Two things here: compiling vs interpreting is snake oil. You translate one AST to another - always, be it implicit or explicit. What you need to write x86 compiler instead of java is x86 knowledge which is around the place if you don't look deep enough but from my last univeristy there are open documents by universities somewhere. Just look to learn ASM instaead of looking for how to write C compiler. If you know both how language works at AST level and how ASM works then you can start. OS coding tutorials, though just as all over the place are often also helpfull
@imbadatcod7208 Жыл бұрын
Man you deserve way more subscribers, I am glad I got this recommended and found you!!
@psycoder-x Жыл бұрын
30:10 The C standard says that argv[argc] should be NULL. In C++ I believe it is nullptr. There is no segmentation fault because the size of the argv is (argc + 1) and I think std::stream implementation just ignores any nullptr values.
@leonardoestacio5437 Жыл бұрын
It's obvious you were struggling with C++, so exactly at 37:45 I said to myself "If there's an error right there or if it doesn't print anything, I'm going to sub this guy". Seconds later, I died of laughter and subbed, the video is top tier quality. I'm happy I found this gem of channel lol.
@twitchizle Жыл бұрын
novice tsoding
@pixeled-yt Жыл бұрын
I love his content
@kahnfatman6 ай бұрын
In the beginning Tsode had hair -- then the multithread on his head left him
@Zenoandturtle Жыл бұрын
It just came up on my feed and I could not resist. This is what I am talking about! This is the engine room of the ocean liner (metaphorically speaking) Great presentation.
@ouranos9270 Жыл бұрын
16:00 Exit codes from any process -- whether it's a binary executable, a shell script, or anything else -- range from 0 to 255
@tahahuraibb5833 Жыл бұрын
Finally! A C++ Video that isn't a tutorial. Please continue this series, it will prove to be extremely useful.
@TronNerd82 Жыл бұрын
Keep up the good work! You've earned yourself another subscriber.
@francislalhmuakliana766 Жыл бұрын
I actually sit through the whole video. Not gonna lie, I enjoy every single seconds of it and looking forward to the whole series...
@jimmyporter8941 Жыл бұрын
Exit codes are limited to 8 bits by the POSIX standard.
@daniellaible13 күн бұрын
This guy is really funny and entertaining - never had as many laughs watching someone work
@z0x Жыл бұрын
You're so much more passionate than any of my University professors lol
@florianvanbondoc3539 Жыл бұрын
the most relatable think is when you wrestle with the c++ language to get it to do what you want
@neshkeev Жыл бұрын
Thank you, it's extremely informative. Keep on!
@ProJakob Жыл бұрын
Watching this at 1 AM, what could possibly go wrong. Hello from germany!
@wubsyman5796 Жыл бұрын
why does he feel like a second Tsoding lol
@maman14141414 Жыл бұрын
the "look at that" was all the confirmation i needed to know he new Tsoding
@LordZedritsch Жыл бұрын
Georgeus video! I would love to follow along with this series
@kerim7158 Жыл бұрын
although modern c++ triggers my PTSD, this is a very good content
@teebeat Жыл бұрын
This is exactly how I feel
@OhhBabyATriple Жыл бұрын
Excited to see more of this series. Very good energy- keeping it informative and entertaining. Nice work!
@LtdJorge Жыл бұрын
AFAIK "char** argv" and "char* argv[]" should be equivalent. Second is syntactic sugar for the first and you can use the index operator on the first ( argv[n] ).
@caio-jl6qw Жыл бұрын
This is not only an educational video, but also an entertaining one
@TheOisannNetwork Жыл бұрын
Porth but in cpp and not stack based?
@impaglg Жыл бұрын
This is really opening my eyes, thank you man! I hope that you will continue this series, all the best!
@adam7802 Жыл бұрын
As a developer who was only taught full stack but really wants a deep understanding of these things I found this really helpful.
@0LoneTech Жыл бұрын
This looks like a strange thought to me. What is "full" about this stack if being taught it does not describe its foundation?
@adam7802 Жыл бұрын
@@0LoneTech I did a 3 month boot camp, it's meant to teach you frontend and backend dev... And technically it does but obviously you don't come out of it having a strong understanding of fundamentals. It's all very high level stuff.
@amirongoogle479520 күн бұрын
learned the value of "let's just make it work, we'll make it pretty later" by watching this!
@DridriLaBastos Жыл бұрын
9:31 Mmh it makes me wondering something : since _start is a symbol defined in the libc (I know you can tell the linker that the entry point is any symbols but let's assume it is _start), if you define your function as main, make it global, and link your object file with GCC and not ld (maybe ld -lc works ?), I think gcc should provide a _start symbols that does the necessary stuff (initialization and deinitialization) and call your main function... I am definitely gonna spend an absurd amount of time trying that tomorrow
@sykhro Жыл бұрын
You can pick the “crt0” file from the libc and you have all of the pre-main covered
@epicflails5471 Жыл бұрын
Your way of explaining things is really entertaining. I hope to see more content in the future!!
@publiclearner Жыл бұрын
At 18:05, using eax rather than rax does in fact work, you just forgot you were still returning 256.
@LetrixAR Жыл бұрын
I thought he meant that it didn't work because it didn't allow for more than 1 byte.
@chrismuga Жыл бұрын
Wow. Yes, this is the kind of content I need in my feed. Good stuff!
@papagrega06 Жыл бұрын
Manz is rockin the webcam
@joaomachado9105 Жыл бұрын
very nice viedo, not just trowing information at you but actually showing how one can find that information! thanks a lot
@Hedshodd Жыл бұрын
As a small heads-up, there is a language called `hy` (which is a python based lisp, iirc), and that also uses the file extension .hy, so you might wanna change the extension to .hyd or something like that ^^'
@rohitdhas4438 Жыл бұрын
really cool stuff! loved it
@ya3rub101 Жыл бұрын
a new hidden gem just found !, keep up... your content is really unique and awesome !!
@dasten123 Жыл бұрын
I'm not too stoked about the compilation part at this stage (I don't mean it as a criticism though, I realize this is only part 1), but I think this is actually a really cool introduction to assembly! Nice job man!
@chikita5110 Жыл бұрын
7:52 "who isn't in 64bits in 2023 ?" *embedded developer* : hold my beer ! (Really good video btw, I just discovered and I subscribed !)
@gradient5767 Жыл бұрын
0:00 Project overview 4:25 Assembly starts
@tomryan767910 ай бұрын
Don’t know anything about C++, assembly or compilers but watched this from start to finish. Great video
@oglothenerd Жыл бұрын
I want to write a compiler, but I may never use it. I am very much a Rust guy.
@minimumt3n204 Жыл бұрын
Its like youtube knew I have a compiler class coming up soon. Thank you!
@lucasa8710 Жыл бұрын
69 and 420 as error codes smells like tsoding hahahahha