a bit more compiler detection