better compiler detection