refactor compiler interface to return *bytecode.File