let the user choose the compiler; fix write outside of buffer