auto tail compilation