add compile-dwim function