introduce built-in function compile