The functional like patterns of the language was creeping me out, and then as I watched through the video, I realized that M4 was, in fact, a stack based language.
There was a guy at my work who was a big fan of m4. He wrote a script generator in it and it took 3 hours to run. Another coworker ported it to Python and it went down to 17 seconds.
there's something so funny about using a macro language exclusively for side-effects and "troubleshooting" when it actually generates anything, one of your most unique stream ideas
Fun story the c preprocessor is actually a standalone executable that can be used by it self, and before the production js bundlers existed i used it us a js bundler
So far I have watched 4mins of this video and feel the urge to comment "You’re crazy". Can’t wait to watch the rest. Also say what you want about the default blank lines and dnl (of course that’s dumb) but there is just something cool about using a piece of software that is 50 years old that was written by K&R themselves. Edit: 23:30 lol
Never ending awesomeness. Someone you can spontaneously build something with. Not about money, just passion. But ends up being a huge multi billion dollar company
About the build systems, I started hating them as soon as I tried to use CMake on windows. I was writing Qt project and it used QMake because it was easy and readable, but I thought that switching to something more popular and supported might be better. Spoiler: It wasn't. I began actually learning CMake, experimenting with project layouts, but I just couldn't learn it. It was not comprehensive to the point of disgust. Then I switched to linux and finally got CMake working. I was so excited that I finally 'learned' it, I started using CMake everywhere, even to write single-file school homeworks. But then I learned Make... And now i think that this is a perfect build system. No bullshit. Gets the work done. May get complicated, but doesn't have to. A great balance between simplicity and extensibility. Love it. Not saying that using cc is bad. But I just love make.
1:15:34 autotools suite solve the issue to ensure you have sane and reproducible build environment across multiple unix implementations or arch which can be using different binary/library formats, nowadays we mostly just use linux and distro supported toolchain so most of the pain points are not as visible. most flat or complex build systems will end up recreating the same checks given enough times and marginalities appear in different setups if it was still a requirement . they also tend to hit the same issue that caused from general opensoruce packages
Here is another dumb idea for using raylib with M4. use the macros to generate a hexdump or assembly code as a text file then use a reverse hexdumper or assembler to generate a binary object file that can be linked with raylib.
1:50:00 You don't actually need to call it twice, according to the docs you can give a single trailing argument for the `else`, i.e. when it's not equal
dark mode makes you increase the brightness of your screen to be able to see which then damages your eye sight light mode on the other hand forces you to decrease the brightness and you can read off your screen for hours without hurting your eyes because dark font on white background can be seen easily unlike white font on dark screen which can only be seen when the brightness is increased
My whole world changed when I learned, that the screen should be only as bright as ambient room light. I do have to adjust it depending on the lighting, but it's not that bad. With light mode the eye can properly contract to see sharper image as opposed to blurrier white-on-black image. Having said that it's still a personal preference of people whether to go light or go dark :D
doesn't the need for a build system come from the need to target a dozen hardware architectures from routers to mainframes? of course you don't need it when targeting your own laptop
Nested quotes aren't great when you realize that you don't need to escape '«', but you'll need to escape '»'. When you just escape EVERYTHING with '\', you just treat every byte after '\' literally, including line feed, maybe adding support for special cases like ' \t\v\f ', '\0', '\xFF'.
You only need to escape the ending quotes if you have a bad parsing algorithm. Tracking quote depth is pretty easy, xml and html do that and I'm sure many others. Json is probably the same but idk json lol
Yeah but who would use the end quote without the start quote? If you’ve already seen a start quote you can simply treat the end quote as a normal character, and not the end of the string.
@@chevychavanne4433Consider this funny string: «»«» That's what he meant. You have to escape things anyway, but _only sometimes,_ which adds more complexity for no reason