update compiler, add back constrain support