1. 64
  1.  

    1. 23

      This was more insane than I even expected from the title, but this part tickled me:

      But through it all, I never gave up because I always thought I was right around the corner from succeeding. I just didn’t know any better.

      My definition of success was never to actually run the game. All I wanted was the specific reason Doom can’t run in a type system, but every time I hit a roadblock, I always came up with some ridiculous workaround.

      I clung to that belief that it couldn’t work, and that doubt fuelled me the whole time, […]

      1. 6

        I opened lobste.rs this morning, saw the title, and was like “oh cool, another gag on running DOOM.” Scrolled on by, didn’t think the game could be funnier than the existing entries (pregnancy tests, the Windows defrag visualizer)

        I just watched the video and want to leave a comment to any doubters like I was this morning: it’s nuts! Truly incredible. I’m so glad I clicked through.

        1. 3

          I’m honestly at a loss for how to tag this. But uh, here you go. The repo for the monstrosity purports to be here.

          1. 6

            We need a “hacks” tag

            1. 2

              The big lesson from 1936 Turing:

              Anything that’s Turing complete can run DOOM.

              1. 4

                I’m wondering if we’re at the point where we can flip the definition on its head: something is Turing complete if it can run DOOM.

                1. 1

                  Unfortunately, that is trivially untrue. One could imagine an ASIC that plays doom, but does not have the capability to do anything else (like the original analogue PONG circuit). Ergo, playing DOOM is not an indicator of being Turing complete. (note that this does not work with all games, a factorio ASIC would be Turing complete, because you can build a Turing machine inside factorio itself.)

                  1. 11

                    Actually, Doom is Turing-complete: NAND gates are possible, and they can be used to assemble any other gate.

                    1. 1

                      I wonder how programmable are the SCRIPT lumps in a WAD file

                  2. 1

                    Trivially though, no real-world system is Turing complete.

                    1. 2

                      What do you mean? Because the tape isn’t infinite?

                      1. 1

                        Yeah, which in case of Typescript types is reflected in things such as limited recursion depth and such. While Dimitro worked around for development by modifying the Typescript compiler, the final thing runs as-is with regular Typescript, so it is subject to all the limitations (and works regardless). It’s not obvious that it would work