self-compilers