Turing Completeness of GNU find

(arxiv.org)

73 points | by todsacerdoti 7 hours ago

6 comments

  • tetris11 3 hours ago
    So if i'm getting this, they initialise find in some kind of infinite looping state using its own parameters to create and nest directories, and define a halting state from whether it reaches the max number of nested directories where find quits.

    I didnt understand the encoding part

    • akoboldfrying 2 hours ago
      Only read the abstract, but if as I suspect it is using nested directories as "cells" in the "tape", the proof will require directories to be able to nest arbitrarily deep (which maybe some filesystems already permit; but even if all existing filesystems have some finite limit, this would not be considered an obstacle to the result, since it's certainly possible to construct a filesystem where directory nesting level is limited only by storage size). That's because it needs to be able to simulate a Turing Machine, which could read and write an infinite amount of storage.

      Then, there just needs to be a way to force find to stop in some finite amount of time -- that's the halting state. I don't know what mechanism they use for that, but if I were trying to do this, I would lean towards looking for a way to make it error out.

  • pjmlp 2 hours ago
    Quite interesting, and arxiv seems to have some issues handling \texttt{find}.
    • Jaxan 1 hour ago
      If you upload to arxiv, there are explicit instructions which tell you what latex commands work and which don’t for the abstract. The authors didn’t read those instructions.
      • suddenlybananas 2 minutes ago
        To be fair, arxiv makes the experience as annoying as possible.
  • zombot 6 hours ago
    As always, the real benchmark will be the ability to run Doom.
    • ape4 4 hours ago
      Doom Complete
    • voidUpdate 3 hours ago
      Can Find and Mkdir write to any kind of graphical output? And take any kind of input?
      • yehoshuapw 3 hours ago
        you may be able to create dirs as input, and watch some others as output
  • HackerThemAll 2 hours ago
    We should run Doom on it, then.
  • octoclaw 3 hours ago
    The fact that they found three independent paths to Turing completeness is what makes this paper fun. Even removing regex back-references doesn't kill it.

    At some point you start wondering if there's any tool with conditionals and some form of persistent state that ISN'T Turing complete. The bar seems way lower than most people assume. Reminds me of the mov-is-Turing-complete result from a few years back.

    • skydhash 1 hour ago
      For a TM, you nees the ability to write and read in some kind of list and a finite state automata that is driven by what’s in the list. The bar is very low.
  • wangzhongwang 2 hours ago
    This reminds me of the classic results showing Turing completeness of things like sendmail.cf and CSS+HTML. The trick of using directory nesting depth as a counter is clever — it essentially turns the filesystem into a tape. I wonder if there is a practical upper bound from filesystem limits (e.g. PATH_MAX) that would make this more like a bounded automaton in practice.