compile primitive