Pass compilation with callbacks