User:Rdebath

From Esolang
Jump to navigation Jump to search

Current Languages to go back to.

  1. RCEM
  2. DownRight
  3. Blind
  4. SNUSP
  5. Easy
  6. Extended_Brainfuck
  7. Grin
  8. Hcbf
  9. HighFive
  10. Malbrain
  11. pbrain
  12. Headache

My first BF converter

#!/usr/bin/mawk -f
BEGIN {
    tx["<"] = "l"; tx[">"] = "r"; tx["+"] = "u"; tx["-"] = "d";
    tx["."] = "p"; tx[","] = "i"; tx["["] = "w"; tx["]"] = "e";
    print "#include<unistd.h>"
    print "#define",tx[">"],"m+=1;"
    print "#define",tx["<"],"m-=1;"
    print "#define",tx["+"],"++*m;"
    print "#define",tx["-"],"--*m;"
    print "#define",tx["["],"while(*m){"
    print "#define",tx["]"],"}"
    print "#define",tx["."],"write(1,m,1);"
    print "#define",tx[","],"read(0,m,1);"
    print "#define a char mem[30000];int main(){char*m=mem;"
    print "#define z return 0;}"
    l = "a"
}
{
    for(i=1; i<=length($0); i++) {
        c = substr($0,i,1); v = tx[c]; l = l " " v; sub("^ ", "", l);
        if (length(l) > 76) {
            print l
            l=""
        }
    }
}
END{ print l,"z"; }

I think it retains the essential flavour of brainfuck in the output C code.

#include<unistd.h>
#define r m+=1;
#define l m-=1;
#define u ++*m;
#define d --*m;
#define w while(*m){
#define e }
#define p write(1,m,1);
#define i read(0,m,1);
#define a char mem[30000];int main(){char*m=mem;
#define z return 0;}
a u u u u u u u u u u w r u u u u u u u r u u u u u u u u u u r u u u r u l l
l l d e r u u p r u p u u u u u u u p p u u u p r u u p l l u u u u u u u u u
u u u u u u p r p u u u p d d d d d d p d d d d d d d d p r u p r p z

Current Version of the awk based converter

This is the current version, it has a few more features and 'optimises' better than 98% of BF interpreters and compilers but it still makes a result that' just as ugly.

BF Style optimisations are:

  • Run length encoding
  • Removal of cancelling sequences eg: >>><<<
  • Replace '[-]' by a set zero
  • Combine set zero with following additions
  • Replace a Move And ADD loops (a MAAD loop) with additions and multiplications
  • Replace a set in a MAAD loop by a specific conditional set (allowing the rest of the loop to be a MAAD).

Notes: If you turn on the instruction counting it interferes with optimisation. This does not do any higher level optimisation, such as constant folding, loop invariant motion, strength reduction etc etc. It only does these minimal 'peephole' style optimisations.

#!/bin/sh -
# vim: set filetype=awk:
#
# BF to C converter, compiler and runner.
#
# This converts BF to peephole optimised C then compiles it with the system C
# complier and runs the resulting executable.
#
# This script works with most versions of awk including the one described in
# the book "The AWK Programming Language", by Al Aho, Brian Kernighan,
# and Peter Weinberger.
#
# The 'mawk' version is the quickest followed by "original-awk" with the big
# fat GNU version rolling up eventually.
#
# Use the shell to fix the lack of -Wexec on some awks.
true , /^; exec awk -f "$0" -- "$@" ; exit #/ {}

BEGIN {
    if (ARGC == 1 || (ARGC==2 && ARGV[1]== "-h")) {
        print "Usage: bf2c [options] files..."
        print " Options:"
        print "  -c         Don't run the program, send it to stdout."
        print "  -oFILE     Don't run the program, write it to FILE."
        print "  -O -O3     Pass this option to 'cc'."
        print "  -O0        Disable peephole optimisations."
        print "  -d         Dump final memory and when a # is seen."
        print "  -i         Enable counting of BF instructions."
        print "  -#         Turn on both -d and -i"
        print "  -M65536    Specify amount of memory to allocate."
        print "  -Tunsigned Type for the tape cells."
        print "  -Ctcc      Use the specified C compiler rather than 'cc'."
        print ""
        print "Note: the -i and -# options interfere with optimisation."
        print "      For the -i to count correctly -T must not be signed."
        aborting=1;
        exit
    }

    memory = 65536;
    memoff = 1000;
    outfile = "";
    CC = "cc";
    noopt = 0
    ll = 78;

    for(i=1; i<ARGC; i++) {
        arg = ARGV[i];
        if (substr(arg,1,1) == "+") arg = "-" substr(arg,2);
        if (arg == "-c") { ARGV[i] = ""; norun=1 }
        if (arg == "-#") { ARGV[i] = ""; debug=1; icount=1; }
        if (arg == "-d") { ARGV[i] = ""; debug=1; }
        if (arg == "-i") { ARGV[i] = ""; icount=1 }
        if (arg == "-O0") { ARGV[i] = ""; noopt=1 }
        if (substr(arg,1,2) == "-M") { memory = substr(ARGV[i], 3) + memoff; ARGV[i] = "";}
        if (substr(arg,1,2) == "-T") { cell = substr(ARGV[i], 3); ARGV[i] = "";}
        if (substr(arg,1,2) == "-C") { CC = substr(ARGV[i], 3); ARGV[i] = "";}
        if (substr(arg,1,2) == "-O") { optflag = " -O" substr(ARGV[i], 3); ARGV[i] = "";}
        if (substr(arg,1,2) == "-o") { norun=1; outfile = substr(ARGV[i], 3); ARGV[i] = "";}
    }

    header();

    if (icount) tc = "t "; else tc = "";
    for (i=1; i<=8; i++) tx[substr("<>+-.,[]", i, 1)] = tc substr("lrudoibE", i, 1) " ";
    if (debug) tx["#"] = "# ";
}

{
    s = ""
    for(i=1; i<=length($0); i++) {
        c = substr($0,i,1);
        s = s tx[c];
    }
    str = str s;

    while (index(str, "E")) {
        if (!noopt) {
            gsub("b d E", "z", str);
            if (icount) {
                gsub("t b t d t E", "t T(*m*2)z", str);
            }
        }

        e = index(str, "E");
        tstr = substr(str, e+2);
        str = substr(str, 1, e+1);
        optim();
        e = index(str, "E");
        if (e) {
            lstr = lstr substr(str, 1, e+1);
            str = substr(str, e+2);
            print_line();
        }
        str = str tstr;
    }
}

END {
    if (aborting) exit;

    optim();
    lstr = lstr str; str = "";
    if (debug) lstr = lstr "# ";
    ll = 1;
    print_line();
    if (icount && !debug) {
        print "fprintf(stderr, \"\\nCommands executed: %\"PRIuCount\"\\n\", icount);" > of
    }
    print "return 0;}" > of

    if (!norun) {
        close(of);
        rv = system(CC optflag " -o " ef " " of);
        system("rm " of);
        if (rv == 0) {
            rv = system(ef " +deleteme+");
            if (rv != 0) printf "Command returned exit status: %d\n", rv > "/dev/stderr"
        }
        if (rv != 0)
            system("rm -f " ef);
    } else if (outfile != "")
        close(of);
}

function header() {
    if (!norun) {
        ef="/tmp/ap" rand();
        of = ef ".c"
    } else if (outfile != "") {
        of = outfile;
    } else
        of = "/dev/stdout";

    if (cell != "") tcell=cell; else tcell="unsigned char";

    if (!norun)
        print "#include <string.h>" > of

    if (cell != "" || icount || debug)
        print "#include <stdio.h>"  > of
    if (cell == "" || !norun)
        print "#include <unistd.h>" > of
    if (tcell ~ /_/)
        print "#include <inttypes.h>" > of
    else if (icount) {
        print "#ifdef __STDC__" > of
        print "#include <limits.h>" > of
        print "#if _POSIX_VERSION >= 199506L || defined(LLONG_MAX)" > of
        print "#include <inttypes.h>" > of
        print "#endif" > of
        print "#endif" > of
    }

    if (icount) {
        print "#ifdef UINTMAX_MAX" > of
        print "uintmax_t icount = 0;" > of
        print "#define PRIuCount PRIuMAX" > of
        print "#else" > of
        print "unsigned long icount = 0;" > of
        print "#define PRIuCount \"lu\"" > of
        print "#endif" > of
        print "#define t icount++;" > of
        print "#define T(x) icount += (x);" > of
    }
        
    print "#define r m+=1;" > of
    print "#define l m-=1;" > of
    print "#define u *m+=1;"    > of
    print "#define d *m-=1;"    > of
    if (cell != "" ) {
        print "#define o putch(*m);" > of
        print "#define i *m = getch(*m);" > of
    } else {
        print "#define o write(1,m,1);" > of
        print "#define i read(0,m,1);"  > of
    }
    if (noopt) {
        print "#define b while(*m){"    > of
        print "#define e }"             > of
    } else {
        print "#define b while(*m)"     > of
        print "#define z *m=0;" > of
        print "#define S(x) *m= x;"     > of
        print "#define R(x) m += x;"    > of
        print "#define L(x) R(-x)"      > of
        print "#define U(x) *m += x;"   > of
        print "#define D(x) U(-x)"      > of
        print "#define Q(x,y) if(*m)m[x]=(y);"  > of
        print "#define M(x,y) m[x]+=(*m)*(y);"  > of
        print "#define A(x) m[x]+=(*m);"        > of
    }
    print "#define C",tcell         > of
    tcell="C"

    if (cell != "") {
        print "void putch(int ch) { putchar(ch); }" > of;
        print "int getch(int och) { " \
                "int ch; " \
                "if((ch=getchar()) != EOF) return ch; else return och; " \
                "}" > of;
    }

    print tcell,"mem[" memory "];" \
        "int main(int argc, char ** argv){" \
        "register",tcell "*m=mem+" memoff ";"    > of

    if (oflush || cell != "" )
        print "setbuf(stdout,0);" > of;
    if (!norun) {
        printf "if (argc>1 && strcmp(argv[1], \"+deleteme+\") == 0)" > of;
        printf " unlink(argv[0]);\n" > of;
    }

}

function print_line() {
    if (noopt) {
        gsub("E", "e", lstr);
    } else {
        gsub("[Bb] ", "b{", lstr);
        gsub("E", "}", lstr);
        gsub(" *} *", "}", lstr);
    }

    for(;;) {
        if (length(lstr) < ll) return;

        s = substr(lstr, 1, 79);
        if ((i= index(s, "#")) != 0) {
            print substr(lstr, 1, i-1) > of
            lstr = substr(lstr, i+1);
            debug_mem();
        } else if (match(s, ".* "))  {
            print substr(s, 1, RLENGTH-1) > of
            lstr = substr(lstr, RLENGTH+1);
        } else if (match(s, ".*[ )}]"))  {
            print substr(s, 1, RLENGTH) > of
            lstr = substr(lstr, RLENGTH+1);
        } else {
            print lstr > of
            lstr = "";
        }
    }
}

function debug_mem() {
    if (icount) {
        print "fprintf(stderr, \"\\nCommands executed: %\"PRIuCount\"\\n\", icount);" > of
    }
    print "{ unsigned ii, jj=0;" > of;
    print "  for(ii=" memoff "; ii<sizeof(mem)/sizeof(*mem); ii++)" > of;
    print "    if(mem[ii]) jj = ii+1;" > of;
    print "  fprintf(stderr, \"Ptr: %2d: mem:\", m-mem-" memoff ");" > of;
    print "  for(ii=" memoff "; ii<jj || mem+ii<=m; ii++)" > of;
    print "    fprintf(stderr, \" %3.0f\", (double)mem[ii]);" > of;
    print "  fprintf(stderr, \"\\n\");" > of;
    print "  if (mem-m-" memoff "<100) {" > of;
    print "    fprintf(stderr, \"         ptr:\");" > of;
    print "    for(ii=" memoff "; mem+ii<=m; ii++)" > of;
    print "      fprintf(stderr, \"   %s\", mem+ii==m?\"^\":\" \");" > of;
    print "    fprintf(stderr, \"\\n\");" > of;
    print "  }" > of;
    print "}" > of;
}

function optim()
{
    if (noopt) return;
    if (icount) {
        while (match(str, "t (t|u|d|l|r|i|o| )*")) {
            v = substr(str, RSTART, RLENGTH)
            v2 = v;
            gsub("[^t]", "", v2);
            v2 = "T(" length(v2) ")"
            gsub("[t ]", "", v);
            gsub(".", "& ", v);
            str = substr(str, 1, RSTART-1) v v2 substr(str, RSTART+RLENGTH)
        }
        gsub("T(1)", "t ", str);
    }

    while ( match(str, "u d ") || match(str, "d u ") ||
            match(str, "l r ") || match(str, "r l ")) {
        str = substr(str, 1, RSTART-1) substr(str, RSTART+RLENGTH)
    }

    while (match(str, "b (z|u|d|l|r| )* E")) {
        v = substr(str, RSTART, RLENGTH)

        for(i in a) delete a[i];
        for(i in z) delete z[i];
        off = 0;
        c = split(v, p);
        for(i=1; i<=c; i++) {
            if (p[i] == "r"){off++; continue; }
            if (p[i] == "l"){off--; continue; }
            if (p[i] == "u"){a[off] ++; continue; }
            if (p[i] == "d"){a[off] --; continue; }
            if (p[i] == "z"){z[off] = 1; a[off] = 0; }
        }
        if (z[0]==1 || a[0] != -1 || off != 0) {
            str = substr(str, 1, RSTART-1) "B" substr(str, RSTART+1)
            continue
        }
        nv = "";
        for(i in a) if(i != 0) {
            if (z[i]) {
                nv = nv sprintf("Q(%d,%d)", i, a[i]);
            } else if (a[i] == 1) {
                nv = nv sprintf("A(%d)", i);
            } else {
                nv = nv sprintf("M(%d,%d)", i, a[i]);
            }
        }
        nv = nv "z"

        str = substr(str, 1, RSTART-1) nv substr(str, RSTART+RLENGTH)
        continue
    }

    while (match(str, "z u (u )*")) {
        str = substr(str, 1, RSTART-1) "S(" RLENGTH/2-1 ")" substr(str, RSTART+RLENGTH)
    }

    while (match(str, "u u (u )*")) {
        str = substr(str, 1, RSTART-1) "U(" RLENGTH/2 ")" substr(str, RSTART+RLENGTH)
    }

    while (match(str, "d d (d )*")) {
        str = substr(str, 1, RSTART-1) "D(" RLENGTH/2 ")" substr(str, RSTART+RLENGTH)
    }

    while (match(str, "r r (r )*")) {
        str = substr(str, 1, RSTART-1) "R(" RLENGTH/2 ")" substr(str, RSTART+RLENGTH)
    }

    while (match(str, "l l (l )*")) {
        str = substr(str, 1, RSTART-1) "L(" RLENGTH/2 ")" substr(str, RSTART+RLENGTH)
    }
}

Performance Testing

Info

Basic rules are that everything is complied with best optimisation or recommended optimisation (eg GCC) except that any generated C code is complied with TCC (ie no optimisation). Timings normally include the time taken for any compile stage that must be run after presenting the brainfuck code. The host machine for these tests is an Intel I7 running Debian Linux.

The *-gcc items are an exception to the timing rule in that the generated C is compiled with GCC and full optimisation and the time for this compile is not included in the final times. The optimisation levels on the interpreter are also 'turned up to eleven'.

The first column is an id tag for the BF interpreter and it's settings. It has a light colour wash that signifies the technology of the program. Blue is a C generator, green is an assembler generator or JIT, yellow is a plain interpreter normally written in C or C++. Pink is the special GCC tests and 'white/grey' is unclassified.

The total is the time for all tests that actually completed.

The Score is a measure of the speed of the interpreter, it's used to order the table.

The bitwidth column is the result of a cell size detecting BF program, it can fail like any other test but does not normally provide a run time. As it also runs some basic functionality tests so a major failure of this test means the interpreter is not run for the others. The test is in two parts so buggy or slow interpreters may lose the second part.

The Endtest column shows which of the end of file conventions this interpreter follows.

The rest of the columns are tests; the three before the gap are used to compute the score.

The colour coding of the tests is: Yellow, The test failed to provide the correct output but did finish, the orange border means that the program segfaulted or provided another indication of a serious fault or rejection of the program. Red, the test failed to complete within the allocated time. The graduation from green to blue to purple represents the time the test took to run; green=fast, blue=okish, purple=glacial. A brown test was skipped because it will not run within the available time on an interpreter with that cell size (The heavily optimising interpreters can be exceptions to this and are shown in "hotpink").

The sections are firstly "the list", secondly a few trivial tests, Thirdly the special GCC section and lastly my 'other' interpreters and unusual (slow!) flag options.

Performance Matrix

Interpreter Total Score Bitwidth Endtest Counter Prime8 Hanoi Beer Collatz Golden Long SelfInt Euler1 Life Factor Mandel Skiploop Bench LostKng BigTxt awib Zozotez Euler5 Prime PIdigits PIdg-as PIdg-cp
Main list
rdb_bf2jit32 33.88s 22.04 32bit Leave 1.05s 0.03s 0.01s 0s 0.73s 0.02s 0.2s 2.95s 0.02s 0.01s 0.15s 1.03s 0s Skip 0.08s 0.03s 0.02s 11.2s 11.5s 1.74s 1.92s 0.48s 0.71s
rdb_bf2jit 173s 22.04 8bit Leave 1.05s 0.03s 0.01s 0s 0.69s 0.02s 0.2s 2.91s 0.15s 0.01s 0.15s 1.01s 0s 0s 0.09s 0.03s 0.02s 117s Skip Skip 48.5s 0.48s 0.69s
tritium_q 191.6s 21.64 8bit Leave 1.05s 0.02s 0.04s 0.01s 0.65s 0.02s 0.01s 2.05s 0.37s 0.01s 0.15s 0.91s 0s 0s 0.23s 2.67s 0.07s 43.6s 122s Skip 16.9s 0.49s 0.32s
tritium32_q 32.37s 21.45 32bit Leave 1.06s 0.02s 0.04s 0.01s 0.67s 0.02s 0.02s 2.91s 0.02s 0.01s 0.16s 0.95s 0s 0s 0.23s 2.63s 0.07s 11.1s 9.29s 0.91s 1.45s 0.48s 0.32s
libbf32 43.96s 20.53 32bit EOF 1.09s 0.02s 0.06s 0.01s 0.69s 0.02s 0.22s 2.98s 0.1s 0.02s 0.15s 1.01s 0.01s Skip 7.98s 0.5s 0.03s 14.3s 11.3s 0.9s 2.07s 0.55s 100s
libbf16 33.92s 18.62 16bit EOF 1.21s 0.03s 0.05s 0.01s 0.87s 0.02s 0.24s 3s 200s 0.01s 0.21s 1.34s 0.01s 0s 8.02s 0.52s 0.03s 14.4s 0.05s 1.1s 2.08s 0.81s 100s
libbf 15.47s 18.48 Zombie8 0xFF 1.23s 0.02s 0.05s 0.01s 0.72s 0.02s 0.22s 3s 200s 0.01s 0.15s 1s 0.01s 0s 7.99s 0.5s 0.03s Skip 0.05s 0.03s 200s 0.56s 100s
bfli_nb 138.2s 14.38 8bit Leave 1.31s 0.31s 0.05s 0.02s 0.65s 0.02s 0.2s 2.01s 0.13s 0.01s 0.13s 0.92s 0s 0s 0.05s 0.02s 0.01s 94.5s Skip Skip 36.8s 0.54s 0.55s
maksverver_BrainfuckVM 172.5s 13.05 8bit? Leave 1.21s 0.58s 0.05s 0s 0.66s 0.02s 0.28s 2.9s 0.15s 0.01s 0.15s 80s 120s 0s 0.07s 0.16s 0.02s 118s 200s 80s 47s 0.53s 0.71s
rmmh_beefit 49.96s 12.78 8bit 0xFF 1.15s 0.67s 0.06s 0s 0.72s 0.01s 0.21s 2.98s 0s 0.01s 0.17s 0.91s 0s 0s 0s 0s 0.02s 0s Skip Skip 41.9s 0.54s 0.63s
bfli 157s 12.07 8bit Leave 1.65s 0.29s 0.05s 0.02s 0.82s 0.02s 0.22s 2.16s 0.16s 0.01s 0.14s 1.01s 0s 0s 0.05s 0.02s 0.14s 107s Skip Skip 41.8s 0.79s 0.63s
bfli16 97.64s 12.01 16bit Leave 1.66s 0.29s 0.05s 0.02s 0.81s 0.02s 0.21s 3.05s 0.15s 0.01s 0.14s 1.02s 0s Skip 0.04s 0.02s 0.13s 13.7s Skip 71.3s 3.63s 0.78s 0.61s
QlowB_qf 192.2s 11.49 8bit Leave 1.25s 0.75s 0.09s 0.01s 0.76s 0.02s 0.24s 3.01s 0.2s 0.02s 0.19s 1.06s 0.01s 0.01s 0.37s 1.27s 0.18s 128s Skip Skip 53.2s 0.72s 0.81s
twal_sbf_j 217.7s 11.28 8bit Zero 1.23s 0.8s 0.1s 0s 0.8s 0.02s 0.29s 2.99s 0.32s 0.02s 0.21s 1.1s 0s 0s 0.95s 0.89s 0.14s 146s Skip Skip 60s 0.89s 0.98s
singron_bf_s 236.7s 10.31 8bit Leave 1.26s 0.77s 0.3s 0.09s 1.25s 0.1s 0.71s 3.07s 0.46s 0.09s 0.32s 1.39s 0.34s 0.08s 120s 0.5s 0.28s Skip Skip Skip 103s 0.9s 1.64s
bf_j_hogelog 48.23s 9.97 32bit EOF 1.67s 0.68s 0.06s 0s 0.82s 0.02s 0.25s 2.98s 0.03s 0.01s 0.22s 1.12s 0s Skip 0.07s 0.03s 1.22s 14.3s 22.1s 80s 2.29s 0.63s 0.98s
tritium32_c 88.52s 8.93 32bit Leave 2.59s 0.04s 0.06s 0.01s 1.63s 0.05s 0.04s 9.52s 0.02s 0.03s 0.31s 2.6s 0.01s 0.01s 0.28s 3.21s 0.18s 34.5s 23.6s 2.12s 5.18s 1.78s 0.73s
tritium_c 193.3s 8.86 8bit Leave 2.62s 0.04s 0.05s 0.01s 1.58s 0.05s 0.04s 9.48s 0.43s 0.02s 0.35s 2.81s 0.01s 0.01s 0.28s 3.25s 0.18s 123s Skip Skip 46.5s 1.79s 0.76s
frans 64.81s 6.67 32bit EOF 2.64s 0.85s 0.11s 0.02s 1.79s 0.04s 0.48s 11s 0.04s 0.02s 0.48s 2.83s 0.01s Skip 0.35s 0.61s 0.17s 0.09s 33.9s 80s 5.91s 1.63s 1.92s
skeeto_bf_x86 187s 6.21 8bit Leave 1.87s 1.92s 0.08s 0.02s 1.33s 0.03s 0.77s 2.97s 0.16s 0.62s 0.32s 1.14s 0s 0s 0.08s 0.03s 0.03s 123s Skip Skip 51.3s 0.65s 0.76s
ebfc 79.06s 6.07 8bit Leave 1.86s 1.98s 0.12s 0.02s 1.84s 0.04s 3.89s 3s 5.78s 0.63s 1.12s 1.43s 0.01s 0.01s 0.09s 0.03s 0.24s Skip Skip Skip 200s 0.86s 56.1s
m13253_bf2nasm 78.09s 5.95 8bit Zero 1.75s 2.07s 0.22s 0.03s 1.3s 0.04s 0.81s 3.05s 6.15s 0.66s 0.52s 1.42s 0.01s 0.01s 0.98s 1.14s 0s Skip Skip Skip 200s 0.81s 57.1s
bfdb_c 148.9s 5.52 8bit Zero 4.21s 0.05s 0.09s 0.01s 1.88s 0.06s 0.04s 9.91s 0.54s 0.03s 0.67s 2.84s 0.01s 0.01s 0.82s 0.77s 0.16s Skip Skip Skip 123s 1.75s 2s
bfdb32_c 112.1s 5.51 32bit Zero 4.21s 0.06s 0.09s 0.02s 1.93s 0.06s 0.04s 10.1s 0.17s 0.04s 0.39s 2.82s 0.01s Skip 0.79s 0.81s 0.14s 38.7s 37.3s 2.88s 7.68s 1.88s 1.99s
jitbf32_gco2 71.44s 5.43 32bit Leave 1.32s 0.21s 2.89s 0.27s 1.16s 9s 0.16s 3.15s 12.6s 0.32s 0.55s 2.32s 6.24s 0.13s 200s 63s 34s 19.1s 11s 0.47s 8.71s 14.1s 5.38s
rdb_bf2run 32.69s 5.36 8bit Leave 4.2s 0.23s 0.05s 0.02s 2.46s 0.03s 1.18s 3.81s 1.48s 0.03s 0.82s 3.6s 0s 0s 0.08s 0.02s 0.19s Skip Skip Skip 200s 5.57s 8.92s
rdb_bf2run32 152.2s 5.36 32bit Leave 4.2s 0.23s 0.05s 0.02s 2.46s 0.04s 1.19s 3.81s 0.02s 0.03s 0.82s 3.6s 0s Skip 0.07s 0.02s 0.25s 39.9s 57.6s 14.5s 9.29s 5.57s 8.48s
nayuki_bfc 183.3s 5.17 8bit Zero 4.39s 0.09s 0.17s 0.03s 1.89s 0.07s 0.07s 10.8s 0.83s 0.05s 0.42s 2.82s 0.06s 0.02s 4.54s 3.29s 0.24s Skip Skip Skip 149s 2.03s 2.48s
nayuki_bfc32 120.7s 5.15 32bit Zero 4.39s 0.1s 0.17s 0.04s 1.87s 0.08s 0.12s 10.6s 0.3s 0.04s 0.42s 2.76s 0.06s Skip 4.55s 3.12s 0.25s 35.7s 38.5s 4.62s 8.71s 2.04s 2.2s
jitbf_gco2 97.73s 5.12 8bit Leave 1.59s 0.2s 2.9s 0.28s 1.2s 0.45s 0.15s 3.3s 12.6s 0.32s 0.55s 2.34s 6.39s 0.13s 200s 63s 14.3s Skip Skip Skip 46.4s 13.5s 5.41s
Wilfred_bfi 104s 4.68 8bit 0xFF 2.1s 0.21s 2.82s 0.05s 1.24s 0.98s 0.44s 3.4s 24.2s 0.33s 0.6s 3.46s 0.06s 0.05s 200s 60s 20s Skip Skip Skip 42.8s 17.4s 3.7s
jitbf 40.82s 4.59 8bit Leave 4.53s 0.19s 0.51s 0.07s 2.76s 0.08s 0.12s 9.62s 1.62s 0.08s 0.64s 3.42s 6.11s 0.05s 200s 2.7s 0.86s Skip Skip Skip 201s 3.51s 4.75s
jitbf32 107.3s 4.58 32bit Leave 4.53s 0.19s 0.52s 0.07s 2.71s 9s 0.11s 9.65s 0.87s 0.08s 0.63s 3.38s 6.09s 0.05s 200s 2.71s 21s 32s 47.6s 8.7s 11.1s 3.47s 4.72s
esotope32_gco 161.2s 4.08 32bit? EOF 1.16s 0.2s 4.53s 0.34s 0.87s 0.56s 0.12s 3.69s 11.7s 0.38s 0.76s 2.38s 0.1s 0.08s 83.8s 4.21s 41s 23.6s 7.23s 0.46s 9.69s 10.9s 7.92s
esotope_gco 166.7s 3.96 Zombie8 0xFF 1.27s 0.2s 4.6s 0.33s 0.81s 0.56s 0.12s 3.59s 12.1s 0.37s 0.76s 2.3s 0.1s 0.08s 88.5s 4.21s 20.6s Skip 6.74s 3.96s 31.9s 10.8s 8.18s
tritium_r 33.85s 3.89 8bit Leave 5.99s 0.12s 0.06s 0.01s 3.54s 0.03s 0.1s 5.4s 1.22s 0.03s 0.69s 3.4s 0s 0s 0.23s 2.69s 0.11s Skip Skip Skip 200s 5.91s 4.32s
skeeto_bfc32 133.7s 3.88 32bit EOF 4.46s 1.58s 0.15s 0.01s 2.33s 0.06s 1.9s 9.66s 0.09s 0.03s 0.65s 3.41s 0.01s Skip 200s 2.61s 20s 38.7s 51.3s 80s 9.9s 2.83s 4.05s
tritium32_r 141.3s 3.88 32bit Leave 6s 0.13s 0.06s 0.01s 3.55s 0.03s 0.1s 5.37s 0.03s 0.03s 0.69s 3.39s 0s 0s 0.22s 2.62s 0.11s 41.7s 49.7s 7.8s 9.56s 5.91s 4.29s
matslina_bfc 266.5s 3.84 8bit 0xFF 4.17s 0.72s 1.36s 0.04s 1.88s 0.09s 0.65s 9.6s 4.96s 0.06s 0.51s 3.28s 0.09s 0.03s 200s 41.8s 1.99s Skip Skip Skip 188s 2.67s 4.59s
shinh_bfopt_c 31.76s 3.80 8bit 0xFF 4.58s 1.59s 0.15s 0.01s 2.58s 0.05s 1.14s 9.72s 0.83s 0.03s 0.57s 3.32s 0.01s 0.01s 0.19s 0.12s 0.03s Skip Skip Skip 200s 2.82s 4.03s
esotope32 151.7s 3.74 32bit? EOF 2.59s 0.17s 3.66s 0.24s 1.73s 0.35s 0.07s 9.52s 10.9s 0.26s 0.78s 3.25s 0.05s 0.04s 31.3s 4.01s 34s 38.3s 31.9s 2.78s 11.5s 4.87s 8.66s
skeeto_bfc 35.57s 3.73 8bit 0xFF 4.69s 1.61s 0.14s 0.01s 2.43s 0.05s 1.89s 9.65s 0.87s 0.03s 0.65s 3.45s 0.01s 0.01s 0.39s 2.63s 0.1s Skip Skip Skip 200s 2.87s 4.23s
esotope32_gco2 184.7s 3.71 32bit? EOF 1.22s 0.22s 5.04s 0.37s 0.86s 0.68s 0.13s 3.16s 14.1s 0.42s 0.85s 2.75s 0.1s 0.08s 89.4s 4.1s 45s 28.2s 7.4s 0.66s 11.7s 19.1s 9.49s
awib 33.86s 3.69 8bit Leave 4.71s 1.61s 0.19s 0.04s 2.76s 0.07s 1.15s 9.63s 1s 0.05s 0.59s 3.32s 0.04s 0.03s 1.03s 0.45s 0.11s Skip Skip Skip 200s 2.9s 4.11s
esotope_gco2 181.1s 3.68 Zombie8 0xFF 1.22s 0.22s 5.08s 0.36s 0.88s 0.67s 0.14s 3.53s 14.2s 0.42s 0.85s 2.71s 0.11s 0.08s 92.3s 4.13s 25.6s Skip 6.71s 3.93s 29.7s 18.6s 9.91s
esotope 181.4s 3.53 Zombie8 0xFF 2.6s 0.17s 4.03s 0.24s 1.95s 0.37s 0.07s 9.82s 10.1s 0.27s 0.84s 3.46s 0.05s 0.03s 30.6s 4.27s 15.2s Skip 6.86s 3.96s 105s 4.64s 7.1s
eterevsky_bfc 148.9s 3.40 8bit? 0xFF 6.95s 0.04s 0.07s 0.01s 2.77s 0.07s 0.06s 13.8s 0.71s 0.03s 0.49s 0.02s 0.01s 0.01s 0.9s 0.21s 0.05s 0.37s 200s 0.01s 118s 2.72s 1.96s
dubbelboer_bf 81.46s 3.07 8bit 0xFF 1.12s 2.07s 4.63s 0.02s 1.46s 0.03s 3.96s 2.98s 5.78s 0.62s 0.51s 1.29s 0s 0.29s 0.04s 0s 0s 0.01s Skip Skip 200s 0.76s 55.9s
bffsree 37.22s 3.03 8bit 0xFF 7.72s 0.17s 0.04s 0s 3.46s 0.03s 0.15s 4.09s 1.81s 0.02s 0.87s 3.13s 0.01s 0s 0s 0.05s 0s Skip Skip Skip 200s 7.81s 7.86s
jitbf32_nf_gco2 143.1s 2.98 32bit Leave 1.32s 0.24s 6.49s 0.3s 1.12s 0.49s 0.22s 3.14s 23.7s 0.41s 0.56s 2.56s 6.23s Skip 200s 62s 16.8s 23.9s 11s 0.97s 16.2s 14.7s 12.2s
barracuda72_bf_s 85.65s 2.92 8bit 0xFF 1.75s 1.66s 4.81s 0.04s 1.66s 0.07s 3.92s 3.08s 6.09s 0.64s 0.6s 1.46s 0.03s 0.32s 1.07s 1.23s 0.2s 4.37s Skip Skip 200s 0.95s 56.2s
yakubin_lunafuck 85.85s 2.92 8bit Leave 1.3s 2.14s 4.78s 0.02s 1.57s 0.03s 4.08s 3.13s 6.04s 0.62s 0.56s 1.36s 0.01s 0.3s 0.05s 0.02s 0.23s Skip Skip Skip 200s 0.82s 58.8s
jitbf_nf_gco2 142.4s 2.91 8bit Leave 1.59s 0.24s 6.42s 0.31s 1.17s 0.49s 0.23s 3.26s 23.7s 0.41s 0.56s 2.6s 6.27s 0.13s 200s 62s 17s Skip Skip Skip 51.4s 13.9s 12.2s
chtisgit_bfjit 84.09s 2.87 8bit 0xFF 1.86s 1.91s 4.59s 0.02s 1.79s 0.03s 4s 3.02s 5.89s 0.61s 0.56s 1.43s 0s 0.29s 0.12s 0.02s 0.2s Skip Skip Skip 200s 0.85s 56.9s
chtisgit_bfjit32 65.59s 2.79 32bit ? 2.06s 1.95s 4.59s 9s 1.79s 0.03s 3.99s 3.05s 0.03s 30s 20s 1.43s 0s Skip 200s 0.02s 0.2s 200s 39.8s 80s 5.8s 0.85s 100s
innocenat_brainfuck_jit 90.22s 2.65 8bit 0xFF 2.15s 2.21s 4.72s 0s 2.07s 0.04s 3.96s 7.28s 5.97s 0.64s 0.58s 1.92s 0s 0.3s 0.05s 0s 0.04s Skip Skip Skip 200s 0.93s 57.4s
egobfc 35.7s 2.53 8bit Zero 5.2s 4.01s 0.28s 0.03s 2.93s 0.07s 1.31s 9.91s 1.22s 0.05s 0.83s 0.03s 0.01s 0.01s 0.95s 0.59s 0.3s Skip Skip Skip 200s 3.17s 4.83s
egobfc32 185.2s 2.46 32bit Zero 5.33s 4.13s 0.3s 0.03s 3.09s 0.07s 1.36s 9.99s 0.23s 0.06s 0.87s 0.03s 0.01s Skip 201s 0.6s 0.3s 44s 92.2s 80s 14.4s 3.31s 4.97s
jitbf_nf 57.79s 2.34 8bit Leave 4.53s 5.12s 0.6s 0.06s 2.92s 0.12s 2.39s 9.68s 13.5s 1.36s 1.1s 3.68s 6.46s 0.05s 200s 2.2s 0.67s Skip Skip Skip 201s 3.23s 101s
dtwitty_brainfuck_llvm 102.7s 2.34 8bit 0xFF 1.18s 1.77s 7.33s 0.09s 1.36s 0.14s 3.77s 3.03s 10.8s 0.6s 0.67s 1.62s 0.15s 0.26s 0.41s 60s 4.75s Skip Skip Skip 200s 2.4s 62.6s
jitbf32_nf 217s 2.30 32bit Leave 4.72s 5.12s 0.61s 0.06s 2.92s 0.12s 2.37s 9.76s 0.54s 1.39s 20s 3.68s 6.46s Skip 200s 2.2s 0.65s 42s 112s 80s 19.1s 3.22s 101s
bff4 138.7s 2.10 32bit EOF 8.32s 2.65s 0.48s 0.02s 5.62s 0.07s 3.53s 11.7s 0.06s 0.07s 1.44s 6.93s 0.02s Skip 0s 0.07s 0s 67.3s 0s 80s 14s 4.85s 11.6s
deadbeef 59.76s 1.76 8bit Leave 6.15s 7.02s 0.44s 0.02s 4.12s 0.06s 2.89s 4.75s 19.8s 1.95s 1.65s 4.32s 0s 0.01s 0.05s 0.01s 0.33s Skip Skip Skip 200s 6.19s 100s
twal_sbf 58.23s 1.74 8bit Zero 9.52s 3.82s 0.45s 0s 6.82s 0.04s 2.17s 5.6s 2.34s 0.05s 1.24s 5.45s 0s 0.02s 0.04s 0.04s 0.08s 0.1s Skip Skip 200s 8.03s 12.6s
jm3lee_bf_c 55.97s 1.69 8bit 0xFF 4.62s 4.77s 4.8s 0.01s 3.31s 0.08s 5.23s 9.68s 13.4s 1.6s 1.17s 3.8s 0.01s 0.29s 0.16s 0.11s 0.1s Skip Skip Skip 200s 2.91s 100s
tiehuis_bfi 55.63s 1.69 8bit Leave 4.64s 4.74s 4.82s 0.01s 3.29s 0.07s 5.24s 9.64s 13.3s 1.56s 1.1s 3.77s 0s 0.25s 0.18s 0.11s 0.1s Skip Skip Skip 200s 2.91s 100s
windoze_bf 230.7s 1.64 8bit 0xFF 4.33s 4.39s 5.95s 0.06s 3.3s 0.13s 4.7s 9.66s 14.9s 1.2s 1.17s 3.68s 0.02s 0.29s 170s 61s 3.23s Skip Skip Skip 201s 3.58s 101s
igorw_naegleria 104.8s 1.63 8bit 0xFF 4.71s 4.81s 5.25s 0.07s 3.3s 0.13s 4.62s 9.69s 13.5s 1.35s 1.19s 3.73s 0.15s 0.33s 12.1s 35.5s 1.04s Skip Skip Skip 201s 3.21s 101s
rinoldm_sbfi 54.14s 1.50 8bit Leave 7.84s 7.99s 0.23s 0s 5.47s 0.06s 5s 4.91s 1.35s 2.35s 1.46s 3.97s 0s 0.01s 0.07s 0.01s 0.15s Skip Skip Skip 200s 6.54s 6.73s
rinoldm_sbfi32 142.5s 1.49 32bit Leave 7.69s 8.17s 0.25s 0s 5.19s 0.06s 5.08s 4.99s 0.09s 2.32s 1.51s 4.03s 0s Skip 200s 0.01s 0.15s 57.9s 200s 80s 30.4s 7.59s 7.06s
sbeyer_bf08 79.15s 1.38 8bit 0xFF 9.42s 7.54s 0.43s 0.02s 4.68s 0.1s 5.7s 17.2s 17.5s 1.57s 1.62s 6.61s 0s 0.01s 0.04s 0.01s 0.13s Skip Skip Skip 200s 6.7s 100s
apankrat_bff 181.9s 1.26 32bit ? 9.39s 9.11s 0.59s 0s 5.29s 0.1s 4.09s 14.1s 0.1s 2.52s 20s 6.11s 0s Skip 200s 0.07s 0.25s 88s 200s 80s 36.1s 6.03s 100s
astrange_bfi_direct 92.3s 1.18 8bit 0xFF 10.5s 9.41s 0.53s 0s 5.03s 0.11s 4.39s 16.9s 26.4s 2.6s 1.89s 6.36s 0s 0.01s 200s 0s 0s 0.02s Skip Skip 200s 8.17s 100s
astrange_bfi_indirect 97.6s 1.09 8bit 0xFF 11.7s 9.8s 0.55s 0s 5.49s 0.13s 5.22s 17s 26.3s 2.62s 2.21s 7.12s 0s 0.01s 200s 0s 0s 0.01s Skip Skip 200s 9.45s 100s
bfdb 103.8s 1.03 8bit Zero 23s 0.24s 0.14s 0.03s 9.45s 0.17s 0.23s 28.7s 2.56s 0.08s 1.48s 9.4s 0.03s 0.02s 0.77s 0.65s 0.25s Skip Skip Skip 200s 11.2s 15.3s
bfdb16 313.5s 0.95 16bit Zero 24.9s 0.24s 0.14s 0.03s 9.7s 0.16s 0.23s 29s 2.84s 0.09s 1.62s 9.84s 0.03s 0.04s 0.76s 0.7s 0.25s 136s Skip 13.3s 54s 14.2s 15.3s
bfdb32 448.5s 0.90 32bit Zero 26.2s 0.3s 0.14s 0.04s 9.13s 0.15s 0.2s 24.8s 0.2s 0.09s 1.47s 9.14s 0.03s Skip 0.75s 0.67s 0.24s 118s 175s 17.7s 37.9s 11.8s 14.5s
astrange_bfi_switch 120.9s 0.86 8bit 0xFF 16.4s 10.8s 0.61s 0.01s 7.12s 0.14s 5.28s 22.6s 29.9s 2.91s 2.61s 9.41s 0s 0.01s 200s 0s 0.33s 0.01s Skip Skip 200s 12.8s 100s
egobfi32 288.2s 0.69 32bit Zero 20s 14.2s 0.45s 0.02s 10.1s 0.18s 5.45s 25.8s 0.13s 0.09s 3.21s 11.1s 0s Skip 200s 0.02s 0.48s 103s 200s 80s 64s 14.8s 15.2s
sbeyer_bf04 132.1s 0.68 8bit 0xFF 11.7s 12.4s 11.1s 0.02s 7.24s 0.16s 13.4s 24.1s 27.1s 3.32s 2.45s 8.51s 0s 0.69s 0.12s 0.04s 0.45s Skip Skip Skip 200s 9.32s 100s
resistor_BrainFTracing2 160.6s 0.65 8bit 0xFF 21.5s 14.5s 0.84s 0.01s 10.1s 0.2s 9.32s 29.8s 39.5s 3.87s 3.61s 13.4s 0s 0.02s 0.06s 0.01s 0.37s Skip Skip Skip 200s 13.9s 100s
ubuntu_bf 137.5s 0.64 8bit 0xFF 12.6s 13.2s 11.7s 0.02s 7.39s 0.16s 14.2s 24.5s 28.2s 3.49s 2.57s 9.33s 0s 0.7s 0.12s 0.04s 0.45s Skip Skip Skip 200s 8.86s 100s
egobfi8 123.6s 0.62 8bit Zero 20.4s 18.2s 0.4s 0.02s 8.83s 0.2s 5.5s 25.8s 2.88s 0.1s 2.65s 10.2s 0s 0.01s 0.1s 0.01s 0.43s Skip Skip Skip 200s 11.9s 16s
qdb 131.3s 0.58 8bit Leave 19s 11.6s 11s 0.01s 7.58s 0.18s 17.1s 28.5s 0s 3.01s 2.98s 13.6s 0s 0.65s 0s 0s 0s 0s Skip Skip 200s 16.1s 100s
jm3lee_bf 185.6s 0.53 8bit 0xFF 14.1s 15.5s 15.3s 0.01s 10s 0.2s 18.5s 32.3s 44.1s 4.22s 3.51s 12.9s 0s 0.93s 0.22s 0.01s 0.29s Skip Skip Skip 200s 13.8s 100s
fabianm_bfi 190.7s 0.49 8bit 0xFF 19.2s 15.2s 14.2s 0.01s 10.7s 0.2s 23.6s 29.8s 40.5s 4.43s 3.75s 12.5s 0s 0.81s 0.09s 0.02s 0.31s Skip Skip Skip 200s 15.7s 100s
kokxx_bfi 186.3s 0.47 8bit 0xFF 22s 14.1s 14.9s 0.01s 10.8s 0.19s 20.1s 30.8s 38.1s 3.81s 3.32s 12.2s 0s 0.89s 0.07s 0.02s 0.33s Skip Skip Skip 200s 15s 100s
bfref 258.7s 0.45 8bit Zero 19.1s 19s 14.7s 0.01s 11.4s 0.23s 26s 24.3s 78.9s 9.47s 8.38s 32.3s 0s 0.58s 0.24s 0s 1.05s Skip Skip Skip 200s 13s 100s
stencil_vm 177.8s 0.45 8bit ? 26.6s 14.2s 12.6s 0.01s 10.3s 0.19s 16.3s 29.9s 28.5s 2.54s 3.79s 17.7s 0.01s 0.75s 0s 0.02s 0s Skip Skip Skip 200s 14.4s 100s
swilde_yabfi2 189.8s 0.45 8bit Zero 20.1s 21.4s 12.4s 0.01s 8.91s 0.23s 24.6s 24.8s 38.7s 5.47s 4.06s 12.1s 0s 0.69s 0.06s 0.01s 0.54s Skip Skip Skip 200s 16.3s 100s
dw_fbi 260.9s 0.42 8bit 0xFF 29.9s 25.3s 1.41s 0s 14s 0.25s 18.5s 29.2s 87.5s 8.84s 5.88s 16.9s 0s 0.01s 0.08s 0.01s 20s Skip Skip Skip 200s 23.1s 100s
beef006 242.3s 0.39 8bit Zero 19.4s 20.2s 21.5s 0.01s 12s 0.23s 23.9s 32.7s 58.5s 6.57s 5.89s 22.8s 0s 0.84s 0.24s 0.02s 0.58s Skip Skip Skip 200s 16.9s 100s
joust 355s 0.38 8bit Leave 31.3s 19.1s 12.5s 0.01s 19.4s 0.39s 29.9s 19.1s 143s 13.3s 9.52s 36s 0s 0.46s 0.22s 0.01s 0.67s Skip Skip Skip 200s 20.1s 100s
lactzy_brainfuck 307s 0.37 8bit Leave 22.7s 20.5s 21.3s 0.02s 13.2s 0.26s 26.7s 31.4s 88.5s 8.18s 10.1s 38.1s 0s 0.88s 0.83s 0.01s 1.34s Skip Skip Skip 200s 23s 100s
christofsteel_hsbf 198.7s 0.33 32bit Abort 66.1s 5.22s 0.4s 0.04s 28.8s 9s 2.56s 5.47s 0.33s 0.56s 0.03s 80s 0s Skip 0.37s 60s 0.2s 0.02s 200s 80s 8.65s 57.9s 65.2s
msdos_bf2 358.2s 0.33 8bit Leave 27.6s 25.3s 20.9s 0.03s 14.7s 0.29s 36.6s 35.8s 99.2s 12s 12.9s 46.9s 0s 0.85s 1.21s 0.01s 2.28s Skip Skip Skip 200s 21.6s 100s
xn__2_umb_bf 371.4s 0.32 32bit? EOF 40.3s 17.2s 16.6s 9s 20.5s 0.22s 26.9s 20.8s 0.23s 30s 20s 57.4s 0.01s Skip 200s 0.02s 20s 200s 200s 80s 134s 37.2s 100s
ejbosman_bf 292.2s 0.30 8bit 0xFF 33.8s 28.5s 17.3s 0.01s 15.6s 0.29s 32.7s 35.2s 67.8s 7.89s 5.59s 18.7s 0s 0.91s 0.12s 0.02s 0.8s Skip Skip Skip 200s 27s 100s
eekysam_jflick 266.3s 0.30 8bit 0xFF 57s 22.3s 1.84s 0.21s 29.2s 0.2s 13.6s 16.1s 8.93s 0.28s 6.78s 23.7s 0.12s 0.15s 2.85s 0.3s 0.77s Skip Skip Skip 200s 39.8s 42.2s
shinh_bfopt 274.6s 0.29 8bit 0xFF 58.6s 21.9s 1.31s 0s 22.2s 0.26s 11.8s 58.1s 6.66s 0.14s 4.73s 24.9s 0s 0.03s 0.1s 0.02s 0.2s Skip Skip Skip 200s 30.4s 33.2s
harlanhaskins_bf 407.7s 0.29 8bit 0xFF 37.6s 31.3s 14.6s 0.01s 21.7s 0.51s 35s 22.8s 147s 19.6s 10.3s 41.6s 0s 0.54s 0.27s 0.01s 0.41s Skip Skip Skip 200s 24.9s 100s
muller_bfi_ex 468.5s 0.27 8bit 0xFF 41.2s 29.7s 18.6s 0.03s 27.2s 0.37s 48.2s 29.7s 144s 18.4s 20s 61s 0s 0.7s 1.82s 0.01s 4.29s Skip Skip Skip 200s 43.3s 100s
abiwuthasn 372.8s 0.25 8bit 0xFF 34.5s 34.6s 26.6s 0.02s 18.4s 0.39s 35.6s 67.9s 86.7s 9.14s 6.49s 23.5s 0s 1.62s 0.13s 0.02s 0.91s Skip Skip Skip 200s 26.3s 100s
smikims_bf 492.2s 0.22 8bit 0xFF 50.8s 33.4s 24.5s 0.02s 21.5s 0.36s 44.8s 42.8s 131s 15.3s 17.8s 60.4s 0s 0.98s 1.57s 0.01s 2.99s Skip Skip Skip 200s 44s 100s
stackbfi 511.9s 0.21 8bit 0xFF 45.3s 38.2s 29.6s 0.02s 24.2s 0.42s 49.3s 46.7s 151s 17.9s 20s 72.4s 0.01s 1.13s 0s 0.01s 0s 0.01s Skip Skip 200s 35.7s 100s
QlowB_qf_i 409.8s 0.20 8bit ? 48.4s 51.5s 20.1s 0.02s 2.18s 0.41s 43.2s 30.5s 166s 30s 20s 49s 0.01s 0.66s 200s 0.96s 20s Skip Skip Skip 200s 100s 100s
pablojorge_brainfuck 553.7s 0.19 8bit Abort 65.1s 36.9s 21.5s 0.03s 26.8s 0.46s 47.5s 41.7s 157s 17.3s 18.1s 68.2s 0s 0.85s 1.46s 0.01s 1.57s Skip Skip Skip 200s 50.8s 100s
bfdb_max 217.3s 0.16 Huge Zero 74s 74.3s 5.79s 0.04s 80s 0.35s 80s 59.8s 1.46s 0.28s 0.04s 80s 0.04s 0.03s 0.45s 0.41s 1.01s 0.67s 200s 80s 200s 100s 100s
kelwing_bfi 397.6s 0.13 8bit 0xFF 82.8s 53.2s 43.9s 0.02s 45.4s 0.85s 80s 73.9s 200s 27.5s 20s 80s 0s 2.02s 2.03s 0.01s 3.37s Skip Skip Skip 200s 62.6s 100s
Tests
test32_opt 205.4s 2.51 32bit Leave 4.51s 4.8s 0.25s 0.01s 2.86s 0.07s 2.31s 9.75s 0.08s 1.29s 20s 3.56s 0.01s Skip 200s 0.11s 0.14s 41.7s 112s 80s 18.9s 3.03s 100s
test8_opt 47.32s 2.40 8bit Leave 4.68s 5.09s 0.25s 0.01s 2.88s 0.07s 2.32s 9.63s 13.1s 1.31s 1.05s 3.58s 0.01s 0.01s 0.14s 0.12s 0.14s Skip Skip Skip 200s 2.91s 100s
test_g 305.5s 1.28 8bit Leave 5.36s 6.86s 6.59s 0s 4.12s 0.08s 7.9s 10.6s 29.3s 3.15s 2.49s 10.52s 0s 0.26s 0.09s 0s 0.19s 54.28m 41.27h 4.33h 28.28s 3.93s 185.78s
test8 124.8s 1.00 8bit Leave 7.21s 8.05s 8.76s 0.03s 6.01s 0.13s 7.89s 12.1s 41.8s 4.54s 4.02s 17.4s 0.03s 0.29s 1.34s 0.14s 0.38s Skip Skip Skip 200s 4.65s 100s
test32 107s 0.98 32bit? Leave 7.19s 8.01s 9.26s 9s 6.17s 0.13s 7.87s 12.1s 0.12s 30s 20s 17.4s 0.03s Skip 201s 0.14s 0.26s 200s 200s 80s 33.6s 4.65s 100s
GCC compiled
tritium32_or_gcc 17.44s 2402 32bit Leave 0s 0.01s 0s 0s 0.61s 0s 0s 2.87s 0s 0.01s 0.11s 0s 0s 0s 0s 0.01s 0.13s 11.1s 0s 0.44s 1.53s 0.43s 0.19s
tritium32_gcc 24.88s 22.04 32bit Leave 1.08s 0.01s 0s 0s 0.62s 0.02s 0.01s 2.87s 0s 0.01s 0.11s 0.88s 0s 0s 0.01s 0s 0.13s 11.1s 5.42s 0.44s 1.53s 0.45s 0.19s
awkc32_gcc 26.89s 22.04 32bit Leave 1.06s 0.01s 0.02s 0.02s 0.64s 0.02s 0.01s 2.94s 0s 0.01s 0.11s 0.86s 0s Skip 0.01s 0s 0.13s 11.1s 7.36s 0.44s 1.56s 0.4s 0.19s
rdb_bf2_gcc 30.6s 21.84 32bit Leave 1.06s 0.01s 0.03s 0.01s 0.64s 0.02s 0.01s 2.99s 0s 0.01s 0.11s 0.87s 0s Skip 0s   0.13s 14.3s 7.25s 0.44s 2.05s 0.43s 0.24s
tritium_s_aot 185.9s 21.07 8bit Leave 1.1s 0.02s 0.02s 0s 0.63s 0.01s 0.02s 3.02s 0.06s 0.02s 0.16s 0.99s 0s 0s 0.01s 0.01s 0.14s 41.6s 120s Skip 17.3s 0.54s 0.26s
esotope32_gcc 28.41s 20.89 32bit? EOF 1.14s 0.01s 0s 0s 0.7s 0.02s 0.01s 2.95s 0s 0s 0.11s 0.9s 0s 0s 0.01s 0s 20s 14.3s 7.13s 0.45s 2.05s 0.49s 0.19s
tritium_gcc 156.9s 20.89 8bit Leave 1.14s 0.01s 0s 0s 0.65s 0.01s 0.01s 3.07s 0.05s 0.01s 0.11s 0.89s 0s 0s 0s 0s 0.13s 34.5s 103s Skip 12.7s 0.44s 0.2s
skeeto_bfc32_gcc 26.31s 20.36 32bit EOF 1.17s 0.01s 0s 0s 0.66s 0.02s 0.01s 2.95s 0s 0s 0.12s 0.85s 0s Skip 0s 0s 0s 11.1s 6.81s 0.44s 1.55s 0.39s 0.25s
nayuki_bfc_gcc 30.06s 19.22 32bit Zero 1.24s 0.01s 0s 0s 0.64s 0.01s 0.01s 2.96s 0s 0.01s 0.12s 0.84s 0s 0s 0s   0.01s 14.3s 7.26s 0.45s 1.55s 0.44s 0.21s
bfdb32_gcc 31.47s 17.66 32bit Zero 1.35s 0.01s 0s 0s 0.72s 0.02s 0.01s 3.02s 0s 0.01s 0.12s 0.88s 0s Skip 0.01s 0s 0.01s 12.1s 9.68s 0.44s 2.11s 0.44s 0.54s
rle32_gcc 82.27s 17.04 32bit Leave 1.1s 0.26s 0.05s 0s 0.99s 0.02s 0.18s 2.93s 0.01s 0s 0.16s 1.15s 0s Skip 0s 0s 0.01s 11.1s 9.36s 52.1s 1.65s 0.5s 0.7s
matslina_bfc_gcc 135.7s 16.57 8bit 0xFF 1.4s 0.01s 0.04s 0s 0.67s 0.02s 0.01s 2.95s 0.16s 0.01s 0.12s 0.89s 0s 0s 0s   0.01s 94.2s Skip Skip 34s 0.49s 0.67s
Wilfred_bfc 50.92s 11.72 8bit 0xFF 1.97s 0.07s 0.01s 0s 1.12s 0.01s 0.29s 3.24s 0.13s 0.01s 0.19s 1.17s 0s 0s 0.01s 0s 0.01s Skip Skip Skip 41.3s 0.79s 0.6s
singron_bf_aot 115.3s 11.66 8bit Leave 1.2s 0.71s 0.15s 0.02s 1.24s 0.02s 0.65s 3.03s 0.28s 0.02s 0.26s 1.31s 0s 0.01s 0.01s 0s 0.14s Skip Skip Skip 104s 0.79s 1.5s
eterevsky_bfc_gcc 199.8s 6.92 8bit? 0xFF 3.46s 0.01s 0s 0s 1.47s 0.03s 0.03s 8.13s 0.06s 0.01s 0.21s 0s 0s 0s 0s   0.01s 0.19s 156s 0s 28.7s 1.31s 0.34s
rdb_bf2go_comp 244.5s 4.86 32bit Leave 4.71s 0.15s 0.08s 0.03s 2.96s 0.08s 1.5s 9.86s 0.04s 0.06s 1.27s 9.26s 0s Skip 0s 0s 0.35s 103s 60s 9.51s 23.4s 5.95s 12.3s
triv_asm 91.45s 1.99 8bit Leave 1.84s 1.95s 8.29s 0s 1.83s 0.03s 5.91s 3s 7.21s 0.83s 0.9s 3.24s 0s 0.29s 0.04s 0s 0.08s Skip Skip Skip 200s 0.89s 55.2s
triv_nasm 93.57s 1.97 8bit Leave 1.83s 2.01s 8.33s 0.01s 2.01s 0.03s 5.89s 3.06s 7.43s 0.82s 0.92s 3.3s 0s 0.29s 0.04s 0.01s 0.27s Skip Skip Skip 200s 0.93s 56.4s
Robert's extras
rdb_bf2jit32.2 33.88s 22.04 32bit Leave 1.05s 0.03s 0.01s 0s 0.73s 0.02s 0.2s 2.95s 0.02s 0.01s 0.15s 1.03s 0s Skip 0.08s 0.03s 0.02s 11.2s 11.5s 1.74s 1.92s 0.48s 0.71s
rdb_bf2jit.2 173s 22.04 8bit Leave 1.05s 0.03s 0.01s 0s 0.69s 0.02s 0.2s 2.91s 0.15s 0.01s 0.15s 1.01s 0s 0s 0.09s 0.03s 0.02s 117s Skip Skip 48.5s 0.48s 0.69s
tritium_q.2 191.6s 21.64 8bit Leave 1.05s 0.02s 0.04s 0.01s 0.65s 0.02s 0.01s 2.05s 0.37s 0.01s 0.15s 0.91s 0s 0s 0.23s 2.67s 0.07s 43.6s 122s Skip 16.9s 0.49s 0.32s
tritium32_q.2 32.37s 21.45 32bit Leave 1.06s 0.02s 0.04s 0.01s 0.67s 0.02s 0.02s 2.91s 0.02s 0.01s 0.16s 0.95s 0s 0s 0.23s 2.63s 0.07s 11.1s 9.29s 0.91s 1.45s 0.48s 0.32s
tritium32_j 30.54s 20.18 32bit Leave 1.13s 0.02s 0.04s 0s 0.7s 0.02s 0.02s 2.91s 0.01s 0.01s 0.16s 0.98s 0s 0s 0.21s 2.62s 0.07s 11.1s 9.84s 0.91s 1.63s 0.46s 0.32s
tritium_s 187.4s 20.02 8bit Leave 1.09s 0.02s 0.09s 0.01s 0.63s 0.03s 0.02s 3s 0.42s 0.02s 0.17s 1.01s 0.01s 0s 0.64s 4.09s 0.28s 42.8s 119s Skip 17.2s 0.64s 0.35s
tritium16_q 132.2s 18.34 16bit Leave 1.24s 0.02s 0.05s 0.01s 0.73s 0.03s 0.02s 3.04s 0.39s 0.01s 0.17s 1.02s 0s 0s 0.22s 2.67s 0.07s 11.3s 110s 0.97s 2.04s 0.53s 0.35s
tritium_j 207s 18.20 8bit Leave 1.26s 0.02s 0.04s 0s 0.69s 0.02s 0.02s 2.97s 0.37s 0.02s 0.16s 0.95s 0s 0s 0.22s 2.65s 0.06s 47.3s 134s Skip 18.1s 0.51s 0.33s
tritium32_gco 73.67s 14.05 32bit Leave 1.15s 0.08s 0.48s 0.08s 0.72s 0.21s 0.08s 3s 0.09s 0.13s 0.28s 1.37s 0.07s 0.05s 29.2s 63s 5.18s 14.9s 7.35s 0.34s 2.4s 5.28s 1.07s
tritium_gco 302.2s 13.88 8bit Leave 1.16s 0.08s 0.49s 0.08s 0.71s 0.22s 0.08s 3s 1.44s 0.13s 0.29s 1.34s 0.07s 0.04s 29.6s 63s 5.42s 124s 113s Skip 14.5s 5.28s 1.1s
tritium32_gco2 94.69s 11.89 32bit Leave 1.17s 0.1s 0.75s 0.09s 0.71s 0.33s 0.09s 2.98s 0.09s 0.17s 0.38s 1.76s 0.08s 0.04s 35s 63s 7.66s 18.8s 5.51s 0.54s 3s 13.5s 1.74s
tritium32_gc 48.67s 11.60 32bit Leave 1.75s 0.07s 0.25s 0.06s 0.85s 0.11s 0.08s 3.1s 0.08s 0.1s 0.28s 1.32s 0.06s 0.04s 3.47s 18s 1.24s 14.9s 14.4s 1.29s 3.14s 1.18s 0.77s
tritium_gco2 324.5s 11.55 8bit Leave 1.21s 0.1s 0.77s 0.09s 0.75s 0.33s 0.1s 3.18s 1.97s 0.17s 0.38s 1.76s 0.08s 0.05s 35.7s 63s 7.97s 137s 104s Skip 14.1s 12.8s 1.77s
tritium32_rc 54.46s 11.02 32bit Leave 1.85s 0.08s 0.25s 0.07s 0.86s 0.1s 0.07s 3.1s 0.06s 0.09s 0.28s 1.33s 0.06s 0s 0.28s 3.18s 0.09s 22.4s 15s 1.29s 4.58s 1.77s 0.73s
tritium_gc 274.8s 11.02 8bit Leave 1.84s 0.08s 0.26s 0.06s 0.84s 0.11s 0.07s 3.11s 0.8s 0.09s 0.28s 1.32s 0.06s 0.05s 3.77s 18.3s 1.33s 71.2s 161s Skip 26.4s 1.2s 0.81s
tritium_rc 180.7s 10.58 8bit Leave 1.93s 0.07s 0.27s 0.06s 0.86s 0.12s 0.08s 3.08s 0.43s 0.09s 0.28s 1.33s 0.06s 0s 0.26s 3.25s 0.09s 123s Skip Skip 46.1s 1.75s 0.76s
tritium64_gc 50.19s 10.54 64bit Leave 1.94s 0.07s 0.27s 0.05s 0.95s 0.11s 0.07s 3.1s 0.77s 0.1s 0.27s 1.35s 0.06s 0.04s 3.6s 17s 1.27s 14.9s 14.2s 1.28s 3.58s 1.26s 0.83s
tritium32_c.2 88.52s 8.93 32bit Leave 2.59s 0.04s 0.06s 0.01s 1.63s 0.05s 0.04s 9.52s 0.02s 0.03s 0.31s 2.6s 0.01s 0.01s 0.28s 3.21s 0.18s 34.5s 23.6s 2.12s 5.18s 1.78s 0.73s
tritium_c.2 193.3s 8.86 8bit Leave 2.62s 0.04s 0.05s 0.01s 1.58s 0.05s 0.04s 9.48s 0.43s 0.02s 0.35s 2.81s 0.01s 0.01s 0.28s 3.25s 0.18s 123s Skip Skip 46.5s 1.79s 0.76s
tritium128_gc 77.09s 8.83 128bit Leave 2.33s 0.09s 0.3s 0.06s 1.48s 0.12s 0.08s 4.44s 0.87s 0.11s 0.36s 1.75s 0.06s 0.05s 6.32s 19.3s 1.52s 26.1s 21.1s 1.95s 5.01s 1.78s 1.09s
tritium16_c 62.86s 8.80 16bit Leave 2.64s 0.04s 0.05s 0.01s 1.56s 0.05s 0.04s 9.47s 0.43s 0.03s 0.32s 2.64s 0.01s 0.01s 0.27s 3.1s 0.18s 35.3s Skip 2.12s 5.15s 1.79s 0.73s
tritium16_rc 58.75s 7.85 16bit Leave 2.68s 0.13s 0.25s 0.06s 1.24s 0.12s 0.09s 3.11s 0.43s 0.1s 0.33s 1.68s 0.05s 0s 0.27s 3.09s 0.08s 35.3s Skip 5.01s 5.18s 1.8s 0.73s
rdb_bf2gas32 78.07s 7.11 8bit Leave 1.27s 1.92s 0.19s 0.04s 1.45s 0.06s 4.49s 2.92s 5.93s 0.61s 1.14s 1.3s 0.03s 0.03s 0.87s 1.1s 0.22s Skip Skip Skip 200s 0.84s 54.7s
rdb_bf2gas64 78.84s 7.06 8bit Leave 1.22s 1.99s 0.19s 0.03s 1.48s 0.06s 4.11s 2.94s 5.94s 0.64s 1.14s 1.31s 0.03s 0.03s 0.89s 1.18s 0.23s Skip Skip Skip 200s 0.85s 55.7s
rdb_bf2crun 166.4s 5.75 8bit Leave 4.04s 0.08s 0.06s 0.02s 1.81s 0.05s 0.56s 9.59s 0.48s 0.03s 0.61s 2.74s 0.01s 0.01s 0.15s 0.79s 0.18s Skip Skip Skip 142s 1.77s 2.17s
rdb_bf2crun32 106.7s 5.73 32bit Leave 4.06s 0.08s 0.05s 0.02s 1.77s 0.06s 0.56s 9.63s 0.04s 0.03s 0.37s 2.72s 0.01s Skip 0.15s 0.82s 0.18s 34.2s 35.8s 4.87s 8.23s 1.73s 2.07s
rdb_bf2run.2 32.69s 5.36 8bit Leave 4.2s 0.23s 0.05s 0.02s 2.46s 0.03s 1.18s 3.81s 1.48s 0.03s 0.82s 3.6s 0s 0s 0.08s 0.02s 0.19s Skip Skip Skip 200s 5.57s 8.92s
rdb_bf2run32.2 152.2s 5.36 32bit Leave 4.2s 0.23s 0.05s 0.02s 2.46s 0.04s 1.19s 3.81s 0.02s 0.03s 0.82s 3.6s 0s Skip 0.07s 0.02s 0.25s 39.9s 57.6s 14.5s 9.29s 5.57s 8.48s
rdb_bf2f90 182.9s 4.13 32bit Leave 4.77s 0.22s 0.82s 0.12s 2.87s 0.16s 1.52s 9.85s 2.3s 0.13s 0.87s 4.87s 0.05s Skip 11s 60s 3.27s 42.5s 61.4s 10.3s 14.3s 4.02s 7.42s
tritium_r.2 33.85s 3.89 8bit Leave 5.99s 0.12s 0.06s 0.01s 3.54s 0.03s 0.1s 5.4s 1.22s 0.03s 0.69s 3.4s 0s 0s 0.23s 2.69s 0.11s Skip Skip Skip 200s 5.91s 4.32s
tritium16_r 90.14s 3.89 16bit Leave 5.99s 0.12s 0.06s 0.01s 3.54s 0.03s 0.1s 5.49s 1.23s 0.03s 0.69s 3.35s 0s 0s 0.22s 2.66s 0.1s 41.6s Skip 7.78s 9.56s 5.93s 4.3s
tritium32_r.2 141.3s 3.88 32bit Leave 6s 0.13s 0.06s 0.01s 3.55s 0.03s 0.1s 5.37s 0.03s 0.03s 0.69s 3.39s 0s 0s 0.22s 2.62s 0.11s 41.7s 49.7s 7.8s 9.56s 5.91s 4.29s
rdb_bf2go 270s 3.85 32bit Leave 4.74s 0.3s 1.2s 0.22s 3.09s 0.29s 1.63s 9.91s 5.73s 0.23s 1.42s 9.01s 0.14s 25.1s 4.96s 0.22s 12.1s 104s 56.2s 9.59s 26.6s 7.74s 15.5s
rdb_bf2luajit 288.1s 3.12 Float Leave 7.18s 0.09s 0.43s 0.03s 4.54s 0.1s 0.86s 13.5s 0.05s 0.04s 0.61s 4.53s 0.01s Skip 0.23s 0.2s 0.3s 46.2s 47.9s 5.23s 9.88s 54.6s 91.7s
hydrogen 112.7s 3.09 8bit Leave 7.48s 0.23s 0.07s 0.01s 2.66s 0.04s 1.18s 4.2s 1.82s 0.03s 0.9s 3.92s 0.01s 0s 0.35s 0.06s 0.19s 58.8s Skip 10.3s 13.8s 6.49s 0.19s
rdb_bf2asmjs 396s 2.51 32bit Leave 7.77s 0.95s 0.86s 0.16s 16s 0.37s 2.3s 14.9s 2.26s 0.22s 4.38s 24.1s 0.05s Skip 18.7s 2.46s 1.76s 199s 116s 56.5s 75.4s 17.1s 36.1s
roastbeef 56.09s 1.88 8bit Leave 5.93s 6.47s 0.38s 0.01s 4.26s 0.06s 2.67s 5.7s 17.2s 1.71s 1.71s 4.5s 0s 0.01s 0.06s 0.02s 0.3s Skip Skip Skip 200s 5.12s 100s
rdb_bf_luajit 160.8s 1.35 8bit Leave 8.33s 7.94s 1.54s 0.03s 5.4s 0.15s 3.92s 17.5s 34s 2.48s 2.2s 8.33s 0.01s 0.01s 0.98s 0.12s 0.49s Skip Skip Skip 200s 67.5s 100s
rdb_bf2cgmp 446.5s 1.16 Huge Leave 18.5s 1.01s 1.16s 0.14s 12.6s 0.27s 7.79s 24.8s 3.36s 0.32s 3.93s 20.9s 0.07s Skip 8.82s 23s 2.26s 184s 200s 59.2s 52.9s 12.2s 32.1s
proton 86.05s 1.00 8bit Leave 9.62s 6.27s 8.21s 0.02s 5.93s 0.09s 10.3s 10.7s 16.4s 1.54s 1.76s 5.94s 0s 0.5s 0.06s 0.01s 0.34s Skip Skip Skip 200s 8.37s 100s
freshbeef 98.58s 0.98 8bit Leave 13.5s 10.3s 0.64s 0.02s 7.05s 0.08s 9.69s 5.64s 28s 2.81s 2.5s 6.67s 0s 0.01s 0.06s 0.01s 0.41s Skip Skip Skip 200s 11.2s 100s
rdb_bf2julia 300.1s 0.72 32bit Leave 2.88s 0.96s 29.3s 1.38s 2.31s 8s 1.74s 5.65s 200s 1.38s 2.78s 9.26s 0.63s Skip 200s 60s 20s 50.8s 35.9s 8.1s 145s 99s 100s
profilebf 227.7s 0.39 8bit Leave 36.3s 24.4s 1.24s 0.02s 14.7s 0.24s 12.2s 38s 51.8s 5.06s 4.79s 17.1s 0s 0.01s 0.08s 0.01s 0.73s Skip Skip Skip 200s 21s 100s
easy 380.6s 0.30 16bit Leave 42.9s 20.1s 17.5s 0.53s 22.6s 0.24s 38.2s 27.1s 200s 13.6s 20s 45.9s 0s Skip 10.7s 0.01s 1.55s 200s Skip 80s 108s 31.7s 100s
neutron 403.7s 0.29 8bit Leave 36.5s 30.1s 15.9s 0.02s 21.7s 0.45s 33.3s 25.9s 145s 15.4s 10.4s 42.1s 0.01s 0.65s 0.37s 0.02s 0.89s Skip Skip Skip 200s 25s 100s
microbf 576.9s 0.21 8bit Leave 51.5s 37.5s 26.1s 0.02s 30.1s 0.42s 52s 40.8s 182s 20.4s 19.9s 70.8s 0s 1.05s 1.77s 0.01s 2.36s Skip Skip Skip 200s 40.2s 100s
tritium2php 228.7s 0.17 Float Leave 140s 3.73s 0.55s 0.02s 80s 1s 2.03s 80s 0.81s 0.91s 17.8s 80s 0.1s 0.02s 0.58s 3.34s 0.94s 200s 200s 80s 200s 100s 59.9s
rdb_bf2php 301.5s 0.16 Float Leave 141s 6.42s 0.69s 0.05s 80s 0.98s 52.3s 80s 0.62s 1.06s 20s 80s 0.02s Skip 0.38s 0.65s 1.1s 200s 200s 80s 200s 96.8s 100s
rdb_bf2lua 209s 0.16 Float Leave 146s 5.58s 0.68s 0.03s 80s 0.97s 52.9s 80s 0.54s 0.98s 20s 80s 0.01s Skip 0.25s 0.26s 1s 200s 200s 80s 200s 100s 100s
rdb_bf2ruby 206.7s 0.16 Huge Leave 146s 5.89s 0.62s 0.08s 80s 0.9s 48.5s 80s 0.91s 0.98s 20s 80s 0.04s Skip 0.99s 2.84s 1.58s 200s 200s 80s 200s 100s 100s
rdb_bf2mawk 242.2s 0.14 Float Leave 168s 7.92s 0.72s 0.02s 80s 1.08s 61s 80s 0.72s 1.36s 20s 80s 0.01s Skip 0.24s 0.19s 1s 200s 200s 80s 200s 100s 100s
rdb_bf2tcl 253.3s 0.10 Huge Leave 234s 10.8s 0.99s 0.06s 80s 1.22s 80s 80s 1.19s 1.76s 20s 80s 0.01s Skip 0.97s 60s 2.15s 200s 200s 80s 200s 100s 100s
rdb_bf2python 261.9s 0.09 Huge Leave 243s 11.2s 1.13s 0.05s 80s 1.85s 80s 80s 1.19s 1.91s 20s 80s 0.02s Skip 1.38s 0.59s 0.18s 0.09s 200s 80s 200s 100s 100s
rdb_bf2gawk 320.6s 0.08 Float Leave 298s 13.2s 1.24s 0.03s 80s 2.18s 80s 80s 1.21s 2.16s 20s 80s 0.01s Skip 0.48s 4.01s 1.88s 200s 200s 80s 200s 100s 100s
rdb_bf2perl 328s 0.08 Float Leave 305s 13s 1.36s 0.04s 80s 2.05s 80s 80s 1.2s 2.11s 20s 80s 0.01s Skip 0.94s 1.09s 2.1s 200s 200s 80s 200s 100s 100s
Failures
bf_elf_166 16.98s 0.15 8bit? Leave 1.83s 2.02s 0.02s 0.02s 2.03s 0.04s 5.9s 3.08s 0.02s 0.83s 0.93s 80s 0.02s 0.29s 0.03s 0.02s 0.02s 0.01s 0.01s 0.01s 0.02s 0.01s 0.01s
atehwa_bfc 129.5s 0.15 32bit Zero 4.53s 0.11s 0.11s 0.04s 2.35s 0.08s 0.76s 8.94s 0.48s 0.04s 0.51s 3.21s 0.02s Skip 0.9s 17.8s 0.73s 39.6s 49s 6.49s 8.16s 2.1s 3.07s
muller_bfi 102.7s 0.11 8bit? 0xFF 41s 24.8s 0s 0.03s 0s 0.01s 36.2s 0s 0s 0s 0s 0s 0s 0.7s 0s 0s 0s 0s 0s 0s 0s 0s 0s
scravy_bf 233.7s 0.09 32bit? EOF 50.7s 47.7s 0s 9s 32.7s 0.65s 55.8s 46.1s 0s 30s 20s 80s 0s Skip 200s 0.01s 0s 0s 200s 80s 0s 0s 0s
tomsik68_brainfuck 274.7s 0.09 8bit 0xFF 67.5s 80s 41.3s 0.02s 44.6s 0.95s 72.8s 80s 200s 30s 20s 80s 0.01s 1.48s 0.87s 0.02s 1.86s Skip Skip Skip 200s 43.3s 100s
bff4_shortbfi 191.8s 0.07 8bit Leave 107s 79.3s 80s 0.04s 80s 1.66s 80s 80s 200s 30s 20s 80s 0.01s 3.75s 0s 0.02s 0s Skip Skip Skip 200s 100s 100s
esco 227.2s 0.06 32bit? EOF 95.5s 80s 80s 9s 65.9s 1.4s 80s 80s 1.21s 30s 20s 80s 0.03s Skip 200s 1.86s 20s 200s 200s 80s 200s 63.1s 100s
msdos_bf 287.7s 0.04 8bit Leave 248s 80s 80s 0.1s 80s 3.22s 80s 80s 200s 30s 20s 80s 0.01s 18.5s 6.47s 0.03s 11.4s Skip Skip Skip 200s 100s 100s
yabi 299.8s 0.04 8bit 0xFF 271s 80s 80s 0.1s 80s 3.52s 80s 80s 200s 30s 20s 80s 0.01s 18.9s 6.29s 0.02s 8s Skip Skip Skip 200s 100s 100s
beef 428.3s 0.03 8bit Zero 421s 80s 80s 0.21s 80s 5.92s 80s 80s 200s 30s 20s 80s 0s 20s 1.18s 0.02s 0.01s Skip Skip Skip 200s 100s 100s
rdb_bf2ksh 1593s 0.01 32bit Leave 1570s 80s 8.05s 0.29s 82s 9s 80s 80s 13.7s 20s 80s 0.01s Skip 0.54s 35s 80s
felix_bf 1645s 0.01 8bit 0xFF 1560s 80s 80s 0.32s 80s 9s 80s 80s 200s 30s 20s 80s 0.05s 20s 85s 0.15s 20s Skip Skip Skip 200s 100s 100s
cyberpython_bfck 3174s 0.01 8bit 0xFF 3040s 80s 80s 0.76s 80s 9s 80s 80s 200s 30s 20s 80s 0.08s 20s 133s 17.8s 20s Skip Skip Skip 200s 100s 100s
rdb_bf2sh 1.56h 0.00 64bit Leave 5550s 80s 27.9s 2.66s 80s 9s 80s 80s 17.1s 31s 20s 80s 0.02s Skip 7.49s 0.57s 24s 200s 200s 80s 200s 100s 100s
rdb_bf2bash 3.84h 0.00 64bit Leave 13700s 80s 53.8s 0.97s 80s 9s 80s 80s 48s 30s 20s 80s 0.04s Skip 9.99s 6.14s 20s 200s 200s 80s 200s 100s 100s
rdb_bf2v7sh 11.06h 0.00 8bit Zero 39800s 80s 80s 9s 80s 9s 80s 81s 200s 30s 20s 80s 6.21s 20s 200s 8.43s 23s Skip Skip Skip 200s 100s 100s

Interpreter List

Interpreter Description
awib Also Written In Brainfuck is an optimizing brainfuck compiler written in brainfuck. (using C output)
bcci The fascist, score-computing interpreter used for BFCC, written in portable C by Daniel B Cristofani. Homepage
beef A widely distributed brainfuck interpreter by Andrea Bolognani
beefit An optimizing, fast brainfuck JIT interpreter by Ryan Hitchman which creates machine code at runtime using DynASM. Codehome
bf-elf-166 A tiny 166 byte BF to Linux ELF converter Homepage
bf-rosetta A brainfuck interpreter written in C++ and released to rosettacode.org by Mike Mol and Mike Neurohr. Link
bfdb An optimizing Brainfuck interpreter, debugger and compiler. Download
bfdb 8bit interpreter
bfdb16 16bit interpreter
bfdb32 32bit interpreter
bfdb32-c 32bit C generator
bfdb32-gcc 32bit GCC without compile time
bfdb-c 8bit C generator
bfdb-max bignum interpreter
bff4 An optimizing interpreter written in C by Oleg Mazonka. Homepage
bffsree A very fast interpreter written by Sree Kotay (user:Sreekotay). Homepage
bfli A very fast optimizing JIT interpreter written in C by Laurent Vogel (user:lvogel). Homepage
bfli 8bit jit
bfli16 16bit jit
bfli-nb 16bit jit with no bounds checks
bfref The reference (slow) interpreter from the BFDB sources. Download
cyberpython-bfck A really slow BF interpreter by Georgios Migdos cyberpython on github
dw-fbi An optimizing interpreter written in C by user:David.werecat. Download
dubbelboer-bf A JIT compiler using GNU lightning by Erik Dubbelboer. Homepage
ebfc BF to Linux ELF convert as a demonstration of an ELF manipulation library Homepage Codehome
ejbosman-bf The interpreter written by Erik Bosman (mandelbrot.b) and distributed by Jon Ripley with the Lost Kingdom interactive fiction brainfuck program.
esotope An optimizing Brainfuck-to-C compiler written in Python, which performs several state-of-the-art optimizations. codehome (8bit)
esotope32 An optimizing Brainfuck-to-C compiler written in Python, which performs several state-of-the-art optimizations. codehome (32bit compile)
eterevsky-bfc A well optimised BF to C translator from Oleg Eterevsky on github
jm3lee-bf Rather quick lightly optimising interpreter from jm3lee on github.
libbf A library containing several interpreters, compilers and optimizers. The fastest generate machine code with heavy optimisation. Codehome

8, 16 and 32bit versions.

microbf A very small, simple and slow non-optimising BF interpreter by Robert de Bath
nayuki-bfc A solid structural optimizing BF to C/Python/Java translator written in Python. Homepage
qdb A quick and dirty interpreter, written in portable C by Daniel B Cristofani. Homepage
rdb-bf2run A strongly optimising interpreter with very fast execution loop by Robert de Bath on github (8bit)
rdb-bf2run32 A strongly optimising interpreter with very fast execution loop by Robert de Bath on github (32bit)
rdb-bfi Tritium interpreter from Robert de Bath on github
rdb-bfi32-q 32bit using dynasm JIT
rdb-bfi32-r 32bit running in 'slow' mode
rdb-bfi32-rc 32bit using libtcc or dlopen run C code
rdb-bfi-q 8bit using dynasm JIT
rdb-bfi-r 8bit running in 'slow' mode
rdb-bfi-rc 8bit using libtcc or dlopen run C code
skeeto-bfi A Multi-threading brainfuck compiler by Christopher Wellons skeeto on github (8bit)
skeeto32-bfi A Multi-threading brainfuck compiler by Christopher Wellons skeeto on github (32bit)
stackbfi An interpreter written in C by Oleg Manzonka which only uses stack memory. Homepage
test-g A fake interpreter running at exactly 1,000,000,000 BF instructions per second.
test32 Trivial BF to C conversion without optimisation compiled with tcc.
test8 Trivial BF to C conversion without optimisation compiled with tcc.
twal-sbf A quite quick interpreter (and now jit) and macro code generator written in C++ by Theophile Wallez (TWal on github)