Hacking GNU utilities - m4

Поделиться
HTML-код
  • Опубликовано: 22 дек 2024

Комментарии • 128

  • @TEHNOTRAHER
    @TEHNOTRAHER 2 месяца назад +137

    the bg scared the shit out of me

  • @davydorynbaev
    @davydorynbaev 2 месяца назад +86

    a'mister a'zozzing

  • @jiulh
    @jiulh 2 месяца назад +26

    > a peaceful stream recording
    > subtittles on 4:35

    • @alishxn
      @alishxn 2 месяца назад +2

      That's penger 😂

  • @oserodal2702
    @oserodal2702 2 месяца назад +36

    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.

    • @TsodingDaily
      @TsodingDaily  2 месяца назад +8

      Ooooo! Now I get what obstack was!

    • @theevilcottonball
      @theevilcottonball 2 месяца назад +3

      I am too young for this, but I always imagine that stack were the super hot new thing in the 70s.

  • @WHYUNODYLAN
    @WHYUNODYLAN 2 месяца назад +56

    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.

    • @TsodingDaily
      @TsodingDaily  2 месяца назад +30

      Who said Python is slow hah!

    • @thundertastic896
      @thundertastic896 2 месяца назад +16

      rewrite it in c just so it runs in 17 nano seconds

    • @rj7250a
      @rj7250a 2 месяца назад

      At least is has "implict :: none" to fix it, C++ has bad defaults and there is no language features to change it, need a linter.

    • @thebatchicle3429
      @thebatchicle3429 2 месяца назад

      I’ve been using M4 for years to do static site generation for my website; it works really great :)

  • @beardymonger
    @beardymonger 2 месяца назад +12

    "who f designed this language?"
    "oh, Dannis Richie and Brian Kernigham? oh, it's a f great language"
    LOL

  • @maman14141414
    @maman14141414 2 месяца назад +12

    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

  • @mxlje
    @mxlje 2 месяца назад +5

    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

  • @samuelwaller4924
    @samuelwaller4924 2 месяца назад +2

    I love this channel so much. I've wanted this for a long time

  • @bbq1423
    @bbq1423 2 месяца назад +12

    Yes, the time has come to use programming languages as build systems and build systems as programming languages.

    • @multicoloredwiz
      @multicoloredwiz 2 месяца назад +2

      That's what I love about mister zozen!

  • @wissotskeh
    @wissotskeh 2 месяца назад +18

    Subtitles hijacked by penger ASCII art rendering in top of the video

  • @grumble2009
    @grumble2009 2 месяца назад +3

    The configure build system used to solve a problem - having a single build script for a wide variety of incompatible "unix" systems (HP/UX, AIX, DGUX, Ultrix, Irix, SunOS, Apollo Domain, etc.). It was fairly common to have to support all of those systems with one set of code, and configure made it less disgusting. But that was decades ago, and all the world is Linux :)

  • @azergante8268
    @azergante8268 2 месяца назад +10

    Coming soon "sand to Raylib in 2 hours" by Tsoding

  • @random2huplayer274
    @random2huplayer274 2 месяца назад +3

    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.

  • @valley-artifact
    @valley-artifact 2 месяца назад +4

    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

  • @climagabriel9893
    @climagabriel9893 Месяц назад +1

    I envy the people who have the patience to watch these in full

  • @Myexpectationsarerealistic
    @Myexpectationsarerealistic 2 месяца назад +2

    M4 is used a lot in embedded applications and firmware. It’s on literally every cellphone on the plant as well as all Unix and Linux ARM variants, as a part of the MicroOP code used to route internal signals to the individual Instruction Sets.
    Yes, it can build RayLib, not that it needs to, it has a vector library built in.

  • @nanothrill7171
    @nanothrill7171 2 месяца назад +2

    "I think I might die in the process" -- me every time i have to touch autoconf for any reason

  • @berndeckenfels
    @berndeckenfels 2 месяца назад +4

    1:16:00 Btw that’s not “corporate shit” that’s “Free Software portability shit” :) no managers ever saw Gnu projects

  • @vxcute0
    @vxcute0 2 месяца назад +4

    next time, we will gonna make our toaster call raylib.

  • @RussTeeTrombone
    @RussTeeTrombone 2 месяца назад +6

    Is another recreational programming session witha mista sausage 🎉

  • @RukopisyNarnie
    @RukopisyNarnie 2 месяца назад +24

    About shitty defaults, there is fortran with implicit types based on first character on variable name...

    • @replikvltyoutube3727
      @replikvltyoutube3727 2 месяца назад +8

      Optimal

    • @chri-k
      @chri-k 2 месяца назад +1

      i mean, that had a purpose

    • @RukopisyNarnie
      @RukopisyNarnie 2 месяца назад

      @@chri-k it has, but it still is shitty default

    • @chri-k
      @chri-k 2 месяца назад

      @@RukopisyNarnie the whole point is that you can't afford the space to change defaults.
      Modern fortran no longer does that (by default anyway)

    • @RukopisyNarnie
      @RukopisyNarnie 2 месяца назад

      @@chri-k it doesn't? Cool

  • @Kknewkles
    @Kknewkles 2 месяца назад +1

    I'm increasingly liking the idea of Sledgehammer Programming.
    I've been doing it here and there a little bit in my recent project, it's a pretty good way of making yourself do the thing you don't want to do, but have to.

  • @Mozartenhimer
    @Mozartenhimer 2 месяца назад +5

    I love these backgrounds.

  • @Googlplex-o7l
    @Googlplex-o7l 2 месяца назад +10

    I already miss the Penger folder.

  • @thepaulcraft957
    @thepaulcraft957 2 месяца назад +4

    I shat myself because of your bloody wallpaper

  • @rnts08
    @rnts08 2 месяца назад +10

    Darkreader, my friend. It will automatically choose dark mode for you or use a custom style to remove flashbangs like you suffered around 11:00.

  • @bbq1423
    @bbq1423 2 месяца назад +5

    Waiting for the follow-up video with raylib from makefile

  • @purpasmart_4831
    @purpasmart_4831 2 месяца назад +21

    Man I wish I knew someone like you in irl. I just want someone to talk about C and stuff.

    • @lightknight876
      @lightknight876 2 месяца назад +8

      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

    • @alexstone691
      @alexstone691 2 месяца назад

      fr

    • @iamzeus1250
      @iamzeus1250 2 месяца назад +1

      Russian? Let's talk!

    • @purpasmart_4831
      @purpasmart_4831 2 месяца назад

      @@iamzeus1250 Nah, I'm from the Northwest of USA.

    • @Kknewkles
      @Kknewkles 2 месяца назад

      Resources you might find interesting(or already know about): Handmade Network, Hidden(nowadays Digital) Grove.
      Also, JC Denton on the userpic - good taste :)

  • @hediinn125
    @hediinn125 2 месяца назад +1

    The "who do you think i am" was amazing

  • @samiherra
    @samiherra 2 месяца назад

    Can you provide a high resolution version of the neon gnu in the thumbnail? I love the image and would like to use it in my Emacs splash page, as it fits my preferred colors nicely. Thank you!

  • @dtomvan
    @dtomvan 2 месяца назад +3

    Next stream: write m4 macro that directly contacts an LLM and shitout the result

  • @alessiodvt
    @alessiodvt 2 месяца назад +4

    Why are you no longer using i3?

  • @eliaperli2485
    @eliaperli2485 2 месяца назад +1

    I see you use a Behringer C-1U (i reckon)... have you had the low volume problem? If so, how did you fix it?

  • @Odod4000
    @Odod4000 2 месяца назад +2

    YAY STREAM! i love you videos! first btw

  • @beyondcatastrophe_
    @beyondcatastrophe_ 2 месяца назад +1

    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

  • @CasimiroBukayo
    @CasimiroBukayo 2 месяца назад +1

    Jeeez... M4? Don't bring back my horrific experiences with that horrific language 😅

  • @fu886
    @fu886 2 месяца назад

    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

  • @alexanderkovalev391
    @alexanderkovalev391 2 месяца назад +3

    warning! urmom's stack may be used

  • @AnastasisGrammenos
    @AnastasisGrammenos 2 месяца назад +1

    For gnu stuff, you can use emacs's info-mode instead of the html manual

  • @ethanaa
    @ethanaa 2 месяца назад +5

    WHO DESIGNED THIS LANGUAGE!???
    ...
    Oh.
    😆

  • @replikvltyoutube3727
    @replikvltyoutube3727 2 месяца назад +1

    I guess that configure is checking environment and compiler more thoroughly. Single CC command could work but it wouldn't work on all the environments

  • @anon_y_mousse
    @anon_y_mousse Месяц назад

    I don't know what WM or DE you're using, but surely there must be a color inversion function you can bind to some key combo. I love Dark Reader, but sometimes it fails, especially on weird mix and match websites, and you just need to color invert the window. That argument list thing is weird, especially the empty parens equating to one argument thing, but I actually genuinely love the empty comma separated list thing and use that to force evaluation of default arguments in my programming language. As for build systems, I've been working on refining my data syntax for my language to make it easier to use the language itself as the build script, kind of like Zig, but hopefully a much better language. I guess time will tell on that one, if I ever release it publicly.

  • @OSrBurns
    @OSrBurns 2 месяца назад +1

    Now I seriously want to use raylib with bash

  • @kernelk1931
    @kernelk1931 2 месяца назад +3

    i just followed the hawktui organization to just laugh at the meme

  • @theevilcottonball
    @theevilcottonball 2 месяца назад +2

    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.

  • @xazzzi
    @xazzzi 2 месяца назад

    What if you need a string with unbalanced quotes?
    Still have to escape somehow.

  • @__gadonk__
    @__gadonk__ 2 месяца назад

    since when is Zozi using Void

  • @capekraken2672
    @capekraken2672 2 месяца назад

    is there any reason you switched from i3 rexim?

  • @mateusvmv
    @mateusvmv 2 месяца назад

    I tried to use M4 once lol but I couldn't wrap my head around it
    Just think about it: somewhere out there there is a M4 wizard who built his own programming language in M4, and that guy is 1000x more powerful than all of us combined

  • @RiteshRanjan-x4k
    @RiteshRanjan-x4k 2 месяца назад

    Program in DOSbox??

  • @valeriikuzivanov6832
    @valeriikuzivanov6832 2 месяца назад

    What about Koka Programming Language ?

  • @AMith-lv2cv
    @AMith-lv2cv Месяц назад +1

    1:45:33 nya moment(watching at 2x)

  • @gilligan87
    @gilligan87 2 месяца назад +4

    He's still in Russia?
    Someone gets this man a fucking visa

    • @driden1987
      @driden1987 2 месяца назад +5

      He already mentioned he wouldn't leave because he takes care of his parents.

    • @gilligan87
      @gilligan87 2 месяца назад

      @@driden1987 fuck
      Legend
      If they draft him, idk what I'll do

  • @NemurakSteloj
    @NemurakSteloj 2 месяца назад +1

    Man, that background screamer

  • @fabianorezende7713
    @fabianorezende7713 2 месяца назад

    M4 seems to have had some influence from prolog. Is there any history about this?

  • @Odod4000
    @Odod4000 2 месяца назад +4

    Raylib is crazy cool!!!

  • @Mozartenhimer
    @Mozartenhimer 2 месяца назад

    This is such a cursed mission.

  • @monad_tcp
    @monad_tcp 2 месяца назад

    I always ask why, why didn't they use Perl

  • @psycoder-x
    @psycoder-x 2 месяца назад

    balsam onto my soul

  • @vimzim
    @vimzim 2 месяца назад

    Could as well read the gnu manual in emacs with C-h R m4

  • @codewizard58
    @codewizard58 2 месяца назад

    In the 70s we had gpm and m4.

  • @me_12-vw1vi
    @me_12-vw1vi 2 месяца назад +2

    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

    • @strawberry_blush81
      @strawberry_blush81 2 месяца назад +2

      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

    • @666222333111
      @666222333111 2 месяца назад

      ​@@strawberry_blush81use f.lux

  • @monad_tcp
    @monad_tcp 2 месяца назад

    oh no, he's going to have headaches.
    and I'm an expert CMake developer, not even I would touch that thing

  • @stavros222
    @stavros222 2 месяца назад

    What is wrong with the subtitles

    • @leonidas6682
      @leonidas6682 2 месяца назад +1

      somehow he has rigged his subtitles to show his live chat.

  • @patrykmyslewski
    @patrykmyslewski 2 месяца назад +2

    @24:00 HAHAHA xD

    • @nel_tu_
      @nel_tu_ 2 месяца назад

      brother laughed in every way he could

  • @hubstrangers3450
    @hubstrangers3450 2 месяца назад

    Thank you.....

  • @mcol3
    @mcol3 2 месяца назад

    We need a stream about Tcl

  • @SterlingWatson-p4p
    @SterlingWatson-p4p 2 месяца назад

    Terry Mountains

  • @heh2393
    @heh2393 2 месяца назад +1

    Hemlo Tszotszen

  • @Mariuspersem
    @Mariuspersem 2 месяца назад

    Hell yeah raylib speedrun

  • @demolazer
    @demolazer 2 месяца назад

    Never seen someone learn a language by reading its source code

  • @codewizard58
    @codewizard58 2 месяца назад

    define('nice',69)nice
    not line orientated, it is character orientated.

  • @xspager
    @xspager 2 месяца назад

    00:00:40 Me already: Can your Python do this?

  • @8followsonik
    @8followsonik 2 месяца назад

    легенда! 😎

  • @programmingeverything
    @programmingeverything Месяц назад

    This video is not about learning m4. Spent a long time going through it all thinking may be he will cover a lot of m4 even though he is making it do something else but its not helpful. I was here to know enough of m4 to understand some other C project config i was looking into but wasted too much time.

  • @pemessage6072
    @pemessage6072 2 месяца назад

    AOSP selinux rule using m4, dont know other distro

  • @veevee23
    @veevee23 2 месяца назад

    WINDOW??????? ok its all good

  • @notflawffles
    @notflawffles 2 месяца назад +1

    why are the dislikes more than the likes damn??

  • @sukaisnaini1843
    @sukaisnaini1843 2 месяца назад

    who create this error message? oOo this is great error message hehehe

  • @samuelevilla03
    @samuelevilla03 2 месяца назад

    i want that bg

  • @DobryWujaszekKun
    @DobryWujaszekKun 2 месяца назад

    Use dark reader.

  • @alexsmart2612
    @alexsmart2612 2 месяца назад

    Imagine not reading info pages in Emacs but in the browser. Yuck 🤮

  • @jiraibozo
    @jiraibozo 2 месяца назад +1

    tsoding spend 5 minutes talking about how the different quotes should be in more languages just to instantly learn why they arent

    • @TsodingDaily
      @TsodingDaily  2 месяца назад +5

      Learn want? That m4 error message are shit? Why should we not fix shitty error messages?

  • @climagabriel9893
    @climagabriel9893 Месяц назад

    iuchoob

  • @rogo7330
    @rogo7330 2 месяца назад

    Todo: unban youtube in rusia

  • @mewhenthemewhenstheme
    @mewhenthemewhenstheme 2 месяца назад

    peng

  • @asymptotic_sceptic
    @asymptotic_sceptic 2 месяца назад

    Do austral

  • @RichardLofty
    @RichardLofty 2 месяца назад +2

    Daily reminder that emacs is trash.

  • @Myexpectationsarerealistic
    @Myexpectationsarerealistic 2 месяца назад

    Eww M4 🤮

  • @ArtikLamartik
    @ArtikLamartik 2 месяца назад +1

    the 3'rd comment

  • @rogo7330
    @rogo7330 2 месяца назад

    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'.

    • @chevychavanne4433
      @chevychavanne4433 2 месяца назад

      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

    • @embodiment_of_autism
      @embodiment_of_autism 2 месяца назад

      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.

    • @chri-k
      @chri-k 2 месяца назад

      @@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