The Symbolic Links Virtual Machine

More obfuscated programming

Typing the following in bash:

while :;do ls --color -w 44 -L a/p/g;ln -snf `ls -d -- \`l\
s -l a/p/f/t\``/a/p/d/v;ln -snf `ls -d -- \`ls -l a/p/b/t\`
`/a/u;ln -snf `ls -d -- \`ls -l a/u\``/a/p;done 2>e # linus

will create the Symbolic Links Virtual Machine. This is a virtual machine whose programs are expressed as directory trees containing nothing but symbolic links. Note that, apart from the while loop, the only commands used in the above expression are ln and ls.

The following is an implementation of Conway's Game of Life:

Program output

Screenshot

The directory tree (source code):

Name of directory or linkDestination of link
.
    a
        00
            a---> ..
            cdisp---> a/e/v/edisp
            cnextm---> a/m/v/otherm
            e---> a/10
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/border
            new
                a---> ../..
                v---> a/40
            nextc---> a/10
            peek---> a/c/v/n/w
            result---> a/40
            s---> a/01
            t---> a/00
            v---> a/40
            w---> a/border
        01
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/11
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/00
            new
                a---> ../..
                v---> a/40
            nextc---> a/11
            peek---> a/c/v/n/w
            result---> a/40
            s---> a/02
            t---> a/01
            v---> a/40
            w---> a/border
        02
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/12
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/01
            new
                a---> ../..
                v---> a/40
            nextc---> a/12
            peek---> a/c/v/n/w
            result---> a/40
            s---> a/03
            t---> a/02
            v---> a/40
            w---> a/border
        03
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/13
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/02
            new
                a---> ../..
                v---> a/40
            nextc---> a/13
            peek---> a/c/v/n/w
            result---> a/41
            s---> a/04
            t---> a/03
            v---> a/40
            w---> a/border
        04
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/14
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/03
            new
                a---> ../..
                v---> a/40
            nextc---> a/14
            peek---> a/c/v/n/w
            result---> a/c/v/v
            s---> a/05
            t---> a/04
            v---> a/40
            w---> a/border
        05
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/15
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/04
            new
                a---> ../..
                v---> a/40
            nextc---> a/15
            peek---> a/c/v/n/w
            result---> a/40
            s---> a/06
            t---> a/05
            v---> a/40
            w---> a/border
        06
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/16
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/05
            new
                a---> ../..
                v---> a/40
            nextc---> a/16
            peek---> a/c/v/n/w
            result---> a/40
            s---> a/07
            t---> a/06
            v---> a/40
            w---> a/border
        07
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/17
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/06
            new
                a---> ../..
                v---> a/40
            nextc---> a/17
            peek---> a/c/v/n/w
            result---> a/40
            s---> a/08
            t---> a/07
            v---> a/40
            w---> a/border
        08
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/18
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/07
            new
                a---> ../..
                v---> a/40
            nextc---> a/18
            peek---> a/c/v/n/w
            result---> a/40
            s---> a/09
            t---> a/08
            v---> a/40
            w---> a/border
        09
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/19
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/08
            new
                a---> ../..
                v---> a/40
            nextc---> a/19
            peek---> a/c/v/n/w
            result---> a/40
            s---> a/border
            t---> a/09
            v---> a/40
            w---> a/border
        10
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/20
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/border
            new
                a---> ../..
                v---> a/40
            nextc---> a/20
            peek---> a/c/v/n
            result---> a/40
            s---> a/11
            t---> a/10
            v---> a/40
            w---> a/00
        11
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/21
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/10
            new
                a---> ../..
                v---> a/40
            nextc---> a/21
            peek---> a/c/v/n
            result---> a/40
            s---> a/12
            t---> a/11
            v---> a/40
            w---> a/01
        12
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/22
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/11
            new
                a---> ../..
                v---> a/40
            nextc---> a/22
            peek---> a/c/v/n
            result---> a/40
            s---> a/13
            t---> a/12
            v---> a/40
            w---> a/02
        13
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/23
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/12
            new
                a---> ../..
                v---> a/41
            nextc---> a/23
            peek---> a/c/v/n
            result---> a/41
            s---> a/14
            t---> a/13
            v---> a/40
            w---> a/03
        14
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/24
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/13
            new
                a---> ../..
                v---> a/40
            nextc---> a/24
            peek---> a/c/v/n
            result---> a/c/v/v
            s---> a/15
            t---> a/14
            v---> a/40
            w---> a/04
        15
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/25
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/14
            new
                a---> ../..
                v---> a/40
            nextc---> a/25
            peek---> a/c/v/n
            result---> a/40
            s---> a/16
            t---> a/15
            v---> a/40
            w---> a/05
        16
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/26
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/15
            new
                a---> ../..
                v---> a/40
            nextc---> a/26
            peek---> a/c/v/n
            result---> a/40
            s---> a/17
            t---> a/16
            v---> a/40
            w---> a/06
        17
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/27
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/16
            new
                a---> ../..
                v---> a/40
            nextc---> a/27
            peek---> a/c/v/n
            result---> a/40
            s---> a/18
            t---> a/17
            v---> a/40
            w---> a/07
        18
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/28
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/17
            new
                a---> ../..
                v---> a/40
            nextc---> a/28
            peek---> a/c/v/n
            result---> a/40
            s---> a/19
            t---> a/18
            v---> a/40
            w---> a/08
        19
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/29
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/18
            new
                a---> ../..
                v---> a/40
            nextc---> a/29
            peek---> a/c/v/n
            result---> a/40
            s---> a/border
            t---> a/19
            v---> a/40
            w---> a/09
        20
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/30
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/border
            new
                a---> ../..
                v---> a/40
            nextc---> a/30
            peek---> a/c/v/n/e
            result---> a/40
            s---> a/21
            t---> a/20
            v---> a/40
            w---> a/10
        21
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/31
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/20
            new
                a---> ../..
                v---> a/40
            nextc---> a/31
            peek---> a/c/v/n/e
            result---> a/40
            s---> a/22
            t---> a/21
            v---> a/40
            w---> a/11
        22
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/32
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/21
            new
                a---> ../..
                v---> a/41
            nextc---> a/32
            peek---> a/c/v/n/e
            result---> a/40
            s---> a/23
            t---> a/22
            v---> a/41
            w---> a/12
        23
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/33
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/22
            new
                a---> ../..
                v---> a/40
            nextc---> a/33
            peek---> a/c/v/n/e
            result---> a/41
            s---> a/24
            t---> a/23
            v---> a/41
            w---> a/13
        24
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/34
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/23
            new
                a---> ../..
                v---> a/41
            nextc---> a/34
            peek---> a/c/v/n/e
            result---> a/c/v/v
            s---> a/25
            t---> a/24
            v---> a/41
            w---> a/14
        25
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/35
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/24
            new
                a---> ../..
                v---> a/40
            nextc---> a/35
            peek---> a/c/v/n/e
            result---> a/40
            s---> a/26
            t---> a/25
            v---> a/40
            w---> a/15
        26
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/36
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/25
            new
                a---> ../..
                v---> a/40
            nextc---> a/36
            peek---> a/c/v/n/e
            result---> a/40
            s---> a/27
            t---> a/26
            v---> a/40
            w---> a/16
        27
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/37
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/26
            new
                a---> ../..
                v---> a/40
            nextc---> a/37
            peek---> a/c/v/n/e
            result---> a/40
            s---> a/28
            t---> a/27
            v---> a/40
            w---> a/17
        28
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/38
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/27
            new
                a---> ../..
                v---> a/40
            nextc---> a/38
            peek---> a/c/v/n/e
            result---> a/40
            s---> a/29
            t---> a/28
            v---> a/40
            w---> a/18
        29
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/39
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/28
            new
                a---> ../..
                v---> a/40
            nextc---> a/39
            peek---> a/c/v/n/e
            result---> a/40
            s---> a/border
            t---> a/29
            v---> a/40
            w---> a/19
        30
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/40
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/border
            new
                a---> ../..
                v---> a/40
            nextc---> a/40
            peek---> a/c/v/w
            result---> a/40
            s---> a/31
            t---> a/30
            v---> a/40
            w---> a/20
        31
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/41
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/30
            new
                a---> ../..
                v---> a/41
            nextc---> a/41
            peek---> a/c/v/w
            result---> a/40
            s---> a/32
            t---> a/31
            v---> a/40
            w---> a/21
        32
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/42
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/31
            new
                a---> ../..
                v---> a/40
            nextc---> a/42
            peek---> a/c/v/w
            result---> a/40
            s---> a/33
            t---> a/32
            v---> a/41
            w---> a/22
        33
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/43
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/32
            new
                a---> ../..
                v---> a/40
            nextc---> a/43
            peek---> a/c/v/w
            result---> a/41
            s---> a/34
            t---> a/33
            v---> a/41
            w---> a/23
        34
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/44
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/33
            new
                a---> ../..
                v---> a/41
            nextc---> a/44
            peek---> a/c/v/w
            result---> a/c/v/v
            s---> a/35
            t---> a/34
            v---> a/41
            w---> a/24
        35
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/45
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/34
            new
                a---> ../..
                v---> a/40
            nextc---> a/45
            peek---> a/c/v/w
            result---> a/40
            s---> a/36
            t---> a/35
            v---> a/40
            w---> a/25
        36
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/46
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/35
            new
                a---> ../..
                v---> a/40
            nextc---> a/46
            peek---> a/c/v/w
            result---> a/40
            s---> a/37
            t---> a/36
            v---> a/40
            w---> a/26
        37
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/47
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/36
            new
                a---> ../..
                v---> a/40
            nextc---> a/47
            peek---> a/c/v/w
            result---> a/40
            s---> a/38
            t---> a/37
            v---> a/40
            w---> a/27
        38
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/48
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/37
            new
                a---> ../..
                v---> a/40
            nextc---> a/48
            peek---> a/c/v/w
            result---> a/40
            s---> a/39
            t---> a/38
            v---> a/40
            w---> a/28
        39
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/49
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/38
            new
                a---> ../..
                v---> a/40
            nextc---> a/49
            peek---> a/c/v/w
            result---> a/40
            s---> a/border
            t---> a/39
            v---> a/40
            w---> a/29
        40
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            disp---> a
            do---> a/m/v/mskip/e
            e---> a/50
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/border
            new
                a---> ../..
                v---> a/40
            nextc---> a/50
            peek---> a/c/v/
            result---> a/40
            s---> a/41
            t---> a/40
            v---> a/40
            w---> a/30
        41
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            do---> a/m/v/mskip/e/s
            e---> a/51
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/40
            new
                a---> ../..
                v---> a/40
            nextc---> a/51
            peek---> a/c/v/
            result---> a/40
            s---> a/42
            t---> a/41
            v---> a/40
            w---> a/31
        42
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/52
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/41
            new
                a---> ../..
                v---> a/41
            nextc---> a/52
            peek---> a/c/v/
            result---> a/40
            s---> a/43
            t---> a/42
            v---> a/41
            w---> a/32
        43
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/53
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/42
            new
                a---> ../..
                v---> a/40
            nextc---> a/53
            peek---> a/c/v/
            result---> a/41
            s---> a/44
            t---> a/43
            v---> a/41
            w---> a/33
        44
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/54
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/43
            new
                a---> ../..
                v---> a/41
            nextc---> a/54
            peek---> a/c/v/
            result---> a/c/v/v
            s---> a/45
            t---> a/44
            v---> a/41
            w---> a/34
        45
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/55
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/44
            new
                a---> ../..
                v---> a/40
            nextc---> a/55
            peek---> a/c/v/
            result---> a/40
            s---> a/46
            t---> a/45
            v---> a/40
            w---> a/35
        46
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/56
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/45
            new
                a---> ../..
                v---> a/40
            nextc---> a/56
            peek---> a/c/v/
            result---> a/40
            s---> a/47
            t---> a/46
            v---> a/40
            w---> a/36
        47
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/57
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/46
            new
                a---> ../..
                v---> a/40
            nextc---> a/57
            peek---> a/c/v/
            result---> a/40
            s---> a/48
            t---> a/47
            v---> a/40
            w---> a/37
        48
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/58
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/47
            new
                a---> ../..
                v---> a/40
            nextc---> a/58
            peek---> a/c/v/
            result---> a/40
            s---> a/49
            t---> a/48
            v---> a/40
            w---> a/38
        49
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/59
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/48
            new
                a---> ../..
                v---> a/40
            nextc---> a/59
            peek---> a/c/v/
            result---> a/40
            s---> a/border
            t---> a/49
            v---> a/40
            w---> a/39
        50
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/60
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            md---> a/c/v/new
            mdisp---> a/empty
            mf---> a/e/v/result
            mskip---> a/e/v
            n---> a/border
            new
                a---> ../..
                v---> a/40
            nextc---> a/60
            otherm---> a/51
            peek---> a/c/v/e
            result---> a/40
            s---> a/51
            t---> a/50
            v---> a/40
            w---> a/40
        51
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/61
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            md---> a/c/v
            mdisp---> a/c/v/cdisp
            mf---> a/c/v/new/v
            mskip---> a/80
            n---> a/50
            new
                a---> ../..
                v---> a/40
            nextc---> a/61
            otherm---> a/50
            peek---> a/c/v/e
            result---> a/40
            s---> a/52
            t---> a/51
            v---> a/40
            w---> a/41
        52
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/62
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/51
            new
                a---> ../..
                v---> a/40
            nextc---> a/62
            peek---> a/c/v/e
            result---> a/40
            s---> a/53
            t---> a/52
            v---> a/40
            w---> a/42
        53
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/63
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/52
            new
                a---> ../..
                v---> a/41
            nextc---> a/63
            peek---> a/c/v/e
            result---> a/41
            s---> a/54
            t---> a/53
            v---> a/40
            w---> a/43
        54
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/64
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/53
            new
                a---> ../..
                v---> a/40
            nextc---> a/64
            peek---> a/c/v/e
            result---> a/c/v/v
            s---> a/55
            t---> a/54
            v---> a/40
            w---> a/44
        55
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/65
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/54
            new
                a---> ../..
                v---> a/41
            nextc---> a/65
            peek---> a/c/v/e
            result---> a/40
            s---> a/56
            t---> a/55
            v---> a/41
            w---> a/45
        56
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/66
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/55
            new
                a---> ../..
                v---> a/41
            nextc---> a/66
            peek---> a/c/v/e
            result---> a/40
            s---> a/57
            t---> a/56
            v---> a/41
            w---> a/46
        57
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/67
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/56
            new
                a---> ../..
                v---> a/41
            nextc---> a/67
            peek---> a/c/v/e
            result---> a/40
            s---> a/58
            t---> a/57
            v---> a/41
            w---> a/47
        58
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/68
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/57
            new
                a---> ../..
                v---> a/40
            nextc---> a/68
            peek---> a/c/v/e
            result---> a/40
            s---> a/59
            t---> a/58
            v---> a/40
            w---> a/48
        59
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/69
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/58
            new
                a---> ../..
                v---> a/40
            nextc---> a/69
            peek---> a/c/v/e
            result---> a/40
            s---> a/border
            t---> a/59
            v---> a/40
            w---> a/49
        60
            a---> ..
            b---> a/61
            cdisp---> a/empty
            cnextm---> a/m/v
            d---> a/t
            e---> a/70
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            f---> a/e/v/peek/v/do
            g---> a/empty
            n---> a/border
            new
                a---> ../..
                v---> a/40
            nextc---> a/70
            peek---> a/c/v/s/w
            result---> a/40
            s---> a/61
            t---> a/60
            v---> a/40
            w---> a/50
        61
            a---> ..
            b---> a/62
            cdisp---> a/empty
            cnextm---> a/m/v
            d---> a/e
            e---> a/71
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            f---> a/t/v
            g---> a/empty
            n---> a/60
            new
                a---> ../..
                v---> a/40
            nextc---> a/71
            peek---> a/c/v/s/w
            result---> a/40
            s---> a/62
            t---> a/61
            v---> a/40
            w---> a/51
        62
            a---> ..
            b---> a/63
            cdisp---> a/empty
            cnextm---> a/m/v
            d---> a/t
            e---> a/72
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            f---> a/m/v/mf
            g---> a/empty
            n---> a/61
            new
                a---> ../..
                v---> a/40
            nextc---> a/72
            peek---> a/c/v/s/w
            result---> a/40
            s---> a/63
            t---> a/62
            v---> a/40
            w---> a/52
        63
            a---> ..
            b---> a/64
            cdisp---> a/empty
            cnextm---> a/m/v
            d---> a/m/v/md
            e---> a/73
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            f---> a/t/v
            g---> a/empty
            n---> a/62
            new
                a---> ../..
                v---> a/40
            nextc---> a/73
            peek---> a/c/v/s/w
            result---> a/41
            s---> a/64
            t---> a/63
            v---> a/40
            w---> a/53
        64
            a---> ..
            b---> a/65
            cdisp---> a/empty
            cnextm---> a/m/v
            d---> a/t
            e---> a/74
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            f---> a/e/v/enextc
            g---> a/empty
            n---> a/63
            new
                a---> ../..
                v---> a/40
            nextc---> a/74
            peek---> a/c/v/s/w
            result---> a/c/v/v
            s---> a/65
            t---> a/64
            v---> a/40
            w---> a/54
        65
            a---> ..
            b---> a/66
            cdisp---> a/empty
            cnextm---> a/m/v
            d---> a/c
            e---> a/75
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            f---> a/t/v
            g---> a/empty
            n---> a/64
            new
                a---> ../..
                v---> a/41
            nextc---> a/75
            peek---> a/c/v/s/w
            result---> a/40
            s---> a/66
            t---> a/65
            v---> a/41
            w---> a/55
        66
            a---> ..
            b---> a/67
            cdisp---> a/empty
            cnextm---> a/m/v
            d---> a/t
            e---> a/76
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            f---> a/e/v/enextm
            g---> a/m/v/mdisp
            n---> a/65
            new
                a---> ../..
                v---> a/41
            nextc---> a/76
            peek---> a/c/v/s/w
            result---> a/40
            s---> a/67
            t---> a/66
            v---> a/41
            w---> a/56
        67
            a---> ..
            b---> a/60
            cdisp---> a/empty
            cnextm---> a/m/v
            d---> a/m
            e---> a/77
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            f---> a/t/v
            g---> a/empty
            n---> a/66
            new
                a---> ../..
                v---> a/41
            nextc---> a/77
            peek---> a/c/v/s/w
            result---> a/40
            s---> a/68
            t---> a/67
            v---> a/41
            w---> a/57
        68
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/78
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/67
            new
                a---> ../..
                v---> a/40
            nextc---> a/78
            peek---> a/c/v/s/w
            result---> a/40
            s---> a/69
            t---> a/68
            v---> a/40
            w---> a/58
        69
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/79
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/68
            new
                a---> ../..
                v---> a/40
            nextc---> a/79
            peek---> a/c/v/s/w
            result---> a/40
            s---> a/border
            t---> a/69
            v---> a/40
            w---> a/59
        70
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/80
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/border
            new
                a---> ../..
                v---> a/40
            nextc---> a/80
            peek---> a/c/v/s
            result---> a/40
            s---> a/71
            t---> a/70
            v---> a/40
            w---> a/60
        71
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/81
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/70
            new
                a---> ../..
                v---> a/40
            nextc---> a/81
            peek---> a/c/v/s
            result---> a/40
            s---> a/72
            t---> a/71
            v---> a/40
            w---> a/61
        72
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/82
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/71
            new
                a---> ../..
                v---> a/40
            nextc---> a/82
            peek---> a/c/v/s
            result---> a/40
            s---> a/73
            t---> a/72
            v---> a/40
            w---> a/62
        73
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/83
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/72
            new
                a---> ../..
                v---> a/40
            nextc---> a/83
            peek---> a/c/v/s
            result---> a/41
            s---> a/74
            t---> a/73
            v---> a/40
            w---> a/63
        74
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/84
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/73
            new
                a---> ../..
                v---> a/40
            nextc---> a/84
            peek---> a/c/v/s
            result---> a/c/v/v
            s---> a/75
            t---> a/74
            v---> a/40
            w---> a/64
        75
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/85
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/74
            new
                a---> ../..
                v---> a/41
            nextc---> a/85
            peek---> a/c/v/s
            result---> a/40
            s---> a/76
            t---> a/75
            v---> a/41
            w---> a/65
        76
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/86
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/75
            new
                a---> ../..
                v---> a/41
            nextc---> a/86
            peek---> a/c/v/s
            result---> a/40
            s---> a/77
            t---> a/76
            v---> a/41
            w---> a/66
        77
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/87
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/76
            new
                a---> ../..
                v---> a/41
            nextc---> a/87
            peek---> a/c/v/s
            result---> a/40
            s---> a/78
            t---> a/77
            v---> a/41
            w---> a/67
        78
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/88
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/77
            new
                a---> ../..
                v---> a/40
            nextc---> a/88
            peek---> a/c/v/s
            result---> a/40
            s---> a/79
            t---> a/78
            v---> a/40
            w---> a/68
        79
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/89
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/78
            new
                a---> ../..
                v---> a/40
            nextc---> a/89
            peek---> a/c/v/s
            result---> a/40
            s---> a/border
            t---> a/79
            v---> a/40
            w---> a/69
        80
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/90
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/border
            new
                a---> ../..
                v---> a/40
            nextc---> a/90
            peek---> a/c/v/s/e
            result---> a/40
            s---> a/81
            t---> a/80
            v---> a/40
            w---> a/70
        81
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/91
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/80
            new
                a---> ../..
                v---> a/40
            nextc---> a/91
            peek---> a/c/v/s/e
            result---> a/40
            s---> a/82
            t---> a/81
            v---> a/40
            w---> a/71
        82
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/92
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/81
            new
                a---> ../..
                v---> a/40
            nextc---> a/92
            peek---> a/c/v/s/e
            result---> a/40
            s---> a/83
            t---> a/82
            v---> a/40
            w---> a/72
        83
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/93
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/82
            new
                a---> ../..
                v---> a/40
            nextc---> a/93
            peek---> a/c/v/s/e
            result---> a/41
            s---> a/84
            t---> a/83
            v---> a/40
            w---> a/73
        84
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/94
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/83
            new
                a---> ../..
                v---> a/40
            nextc---> a/94
            peek---> a/c/v/s/e
            result---> a/c/v/v
            s---> a/85
            t---> a/84
            v---> a/40
            w---> a/74
        85
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/95
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/84
            new
                a---> ../..
                v---> a/40
            nextc---> a/95
            peek---> a/c/v/s/e
            result---> a/40
            s---> a/86
            t---> a/85
            v---> a/40
            w---> a/75
        86
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/96
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/85
            new
                a---> ../..
                v---> a/40
            nextc---> a/96
            peek---> a/c/v/s/e
            result---> a/40
            s---> a/87
            t---> a/86
            v---> a/40
            w---> a/76
        87
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/97
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/86
            new
                a---> ../..
                v---> a/40
            nextc---> a/97
            peek---> a/c/v/s/e
            result---> a/40
            s---> a/88
            t---> a/87
            v---> a/40
            w---> a/77
        88
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/98
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/87
            new
                a---> ../..
                v---> a/40
            nextc---> a/98
            peek---> a/c/v/s/e
            result---> a/40
            s---> a/89
            t---> a/88
            v---> a/40
            w---> a/78
        89
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/99
            edisp---> a/empty
            enextc---> a/c/v
            enextm---> a/m/v
            n---> a/88
            new
                a---> ../..
                v---> a/40
            nextc---> a/99
            peek---> a/c/v/s/e
            result---> a/40
            s---> a/border
            t---> a/89
            v---> a/40
            w---> a/79
        90
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/border
            edisp---> a/disp
            enextc---> a/c/v/nextc
            enextm---> a/c/v/cnextm
            n---> a/border
            new
                a---> ../..
                v---> a/40
            nextc---> a/01
            peek---> a/abort
            result---> a/40
            s---> a/91
            t---> a/90
            v---> a/40
            w---> a/80
        91
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/border
            edisp---> a/disp
            enextc---> a/c/v/nextc
            enextm---> a/c/v/cnextm
            n---> a/90
            new
                a---> ../..
                v---> a/40
            nextc---> a/02
            peek---> a/abort
            result---> a/40
            s---> a/92
            t---> a/91
            v---> a/40
            w---> a/81
        92
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/border
            edisp---> a/disp
            enextc---> a/c/v/nextc
            enextm---> a/c/v/cnextm
            n---> a/91
            new
                a---> ../..
                v---> a/40
            nextc---> a/03
            peek---> a/abort
            result---> a/40
            s---> a/93
            t---> a/92
            v---> a/40
            w---> a/82
        93
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/border
            edisp---> a/disp
            enextc---> a/c/v/nextc
            enextm---> a/c/v/cnextm
            n---> a/92
            new
                a---> ../..
                v---> a/40
            nextc---> a/04
            peek---> a/abort
            result---> a/41
            s---> a/94
            t---> a/93
            v---> a/40
            w---> a/83
        94
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/border
            edisp---> a/disp
            enextc---> a/c/v/nextc
            enextm---> a/c/v/cnextm
            n---> a/93
            new
                a---> ../..
                v---> a/40
            nextc---> a/05
            peek---> a/abort
            result---> a/c/v/v
            s---> a/95
            t---> a/94
            v---> a/40
            w---> a/84
        95
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/border
            edisp---> a/disp
            enextc---> a/c/v/nextc
            enextm---> a/c/v/cnextm
            n---> a/94
            new
                a---> ../..
                v---> a/40
            nextc---> a/06
            peek---> a/abort
            result---> a/40
            s---> a/96
            t---> a/95
            v---> a/40
            w---> a/85
        96
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/border
            edisp---> a/disp
            enextc---> a/c/v/nextc
            enextm---> a/c/v/cnextm
            n---> a/95
            new
                a---> ../..
                v---> a/40
            nextc---> a/07
            peek---> a/abort
            result---> a/40
            s---> a/97
            t---> a/96
            v---> a/40
            w---> a/86
        97
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/border
            edisp---> a/disp
            enextc---> a/c/v/nextc
            enextm---> a/c/v/cnextm
            n---> a/96
            new
                a---> ../..
                v---> a/40
            nextc---> a/08
            peek---> a/abort
            result---> a/40
            s---> a/98
            t---> a/97
            v---> a/40
            w---> a/87
        98
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/border
            edisp---> a/disp
            enextc---> a/c/v/nextc
            enextm---> a/c/v/cnextm
            n---> a/97
            new
                a---> ../..
                v---> a/40
            nextc---> a/09
            peek---> a/abort
            result---> a/40
            s---> a/99
            t---> a/98
            v---> a/40
            w---> a/88
        99
            a---> ..
            cdisp---> a/empty
            cnextm---> a/m/v
            e---> a/border
            edisp---> a/disp
            enextc---> a/c/v/nextc
            enextm---> a/c/v/cnextm
            n---> a/98
            new
                a---> ../..
                v---> a/40
            nextc---> a/00
            peek---> a/abort
            result---> a/40
            s---> a/border
            t---> a/99
            v---> a/40
            w---> a/89
        a---> .
        abort
            v
                do
                    a---> ../../..
                    t---> a/00
        border
            a---> ..
            e---> a/border
            n---> a/border
            s---> a/border
            v---> a/40
            w---> a/border
        c
            a---> ..
            v---> a/63
        disp
            00---> ../00/v/disp
            01---> ../01/v/disp
            02---> ../02/v/disp
            03---> ../03/v/disp
            04---> ../04/v/disp
            05---> ../05/v/disp
            06---> ../06/v/disp
            07---> ../07/v/disp
            08---> ../08/v/disp
            09---> ../09/v/disp
            10---> ../10/v/disp
            11---> ../11/v/disp
            12---> ../12/v/disp
            13---> ../13/v/disp
            14---> ../14/v/disp
            15---> ../15/v/disp
            16---> ../16/v/disp
            17---> ../17/v/disp
            18---> ../18/v/disp
            19---> ../19/v/disp
            20---> ../20/v/disp
            21---> ../21/v/disp
            22---> ../22/v/disp
            23---> ../23/v/disp
            24---> ../24/v/disp
            25---> ../25/v/disp
            26---> ../26/v/disp
            27---> ../27/v/disp
            28---> ../28/v/disp
            29---> ../29/v/disp
            30---> ../30/v/disp
            31---> ../31/v/disp
            32---> ../32/v/disp
            33---> ../33/v/disp
            34---> ../34/v/disp
            35---> ../35/v/disp
            36---> ../36/v/disp
            37---> ../37/v/disp
            38---> ../38/v/disp
            39---> ../39/v/disp
            40---> ../40/v/disp
            41---> ../41/v/disp
            42---> ../42/v/disp
            43---> ../43/v/disp
            44---> ../44/v/disp
            45---> ../45/v/disp
            46---> ../46/v/disp
            47---> ../47/v/disp
            48---> ../48/v/disp
            49---> ../49/v/disp
            50---> ../50/v/disp
            51---> ../51/v/disp
            52---> ../52/v/disp
            53---> ../53/v/disp
            54---> ../54/v/disp
            55---> ../55/v/disp
            56---> ../56/v/disp
            57---> ../57/v/disp
            58---> ../58/v/disp
            59---> ../59/v/disp
            60---> ../60/v/disp
            61---> ../61/v/disp
            62---> ../62/v/disp
            63---> ../63/v/disp
            64---> ../64/v/disp
            65---> ../65/v/disp
            66---> ../66/v/disp
            67---> ../67/v/disp
            68---> ../68/v/disp
            69---> ../69/v/disp
            70---> ../70/v/disp
            71---> ../71/v/disp
            72---> ../72/v/disp
            73---> ../73/v/disp
            74---> ../74/v/disp
            75---> ../75/v/disp
            76---> ../76/v/disp
            77---> ../77/v/disp
            78---> ../78/v/disp
            79---> ../79/v/disp
            80---> ../80/v/disp
            81---> ../81/v/disp
            82---> ../82/v/disp
            83---> ../83/v/disp
            84---> ../84/v/disp
            85---> ../85/v/disp
            86---> ../86/v/disp
            87---> ../87/v/disp
            88---> ../88/v/disp
            89---> ../89/v/disp
            90---> ../90/v/disp
            91---> ../91/v/disp
            92---> ../92/v/disp
            93---> ../93/v/disp
            94---> ../94/v/disp
            95---> ../95/v/disp
            96---> ../96/v/disp
            97---> ../97/v/disp
            98---> ../98/v/disp
            99---> ../99/v/disp
        e
            a---> ..
            v---> a/20
        empty
        m
            a---> ..
            v---> a/50
        p---> a/63
        t
            a---> ..
            v---> a/40
        u---> a/63
    e---> /dev/null

Discuss this page

Disclaimer: I am not responsible for what people (other than myself) write in the forums. Please report any abuse, such as insults, slander, spam and illegal material, and I will take appropriate actions. Don't feed the trolls.

Jag tar inget ansvar för det som skrivs i forumet, förutom mina egna inlägg. Vänligen rapportera alla inlägg som bryter mot reglerna, så ska jag se vad jag kan göra. Som regelbrott räknas till exempel förolämpningar, förtal, spam och olagligt material. Mata inte trålarna.

Anonymous
Tue 24-May-2011 15:14
oh my. this page needed a comment.
Anonymous
Sun 29-Jan-2012 11:46
YOU ARE A GOD
Anonymous
Fri 10-Oct-2014 02:57
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
THE WORLD NEEDS TO KNOW
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Anonymous
Thu 19-Mar-2015 02:31
Running the three lines of code alone doesn't seem to work. Do we need to manually create the directory listing shown?
mporshnev
Max Porshnev
Wed 1-Apr-2015 09:34
Running the three lines of code alone doesn't seem to work. Do we need to manually create the directory listing shown?
Oh no, not manually! :)
Anonymous
Sat 27-Jun-2015 10:09
I did a poop in my pantaloons. It reeks of the bad smelly.
Anonymous
Mon 24-Apr-2017 22:28
Running the three lines of code alone doesn't seem to work. Do we need to manually create the directory listing shown?

By applying a few regexes and substitutions to the directory tree, you can create a shell script that can create the directory structure for you.

After 2017-04-25 11:00 UTC, you can visit http://luis140219.github.io/slvm/ for the shell script (works on almost any Linux shell, as well as in MSYS (can be installed with mingw32, http://mingw.org)).
Anonymous
Thu 15-Feb-2018 18:13
Linus! Please clarify in the first few sentences if this is the game of life or the machine creator! I blindly followed your instructions and then found that the game is the bash code not the machine directory maker. In the comments, the link to the script to automate the creation is dead!
lft
Linus Åkesson
Fri 23-Mar-2018 06:33
Linus! Please clarify in the first few sentences if this is the game of life or the machine creator!

The bash script is the virtual machine. The program that implements Game of Life is the directory tree further down the page.
Anonymous
Tue 9-Jun-2020 04:54
jesus, the comments above; people, what are doing on this page? the level of stupidity is staggering! why would the script presented create the directory structure, when it says it's a virtual machine that operates on a directory structure. if you can't take above directory structure and create it using an awk/perl/python script, then why would you even be interested in this page to begin with? somehow we forgot that the eternal september happened, probably because eternal september is the new norm. (in before "be nice": go fuck yourself hypothetical responder)
Anonymous
Tue 27-Oct-2020 18:59
Can you edit the sorce code to modify the b/s number correctly?