update compiler, macro self-expansion