Compiler use macros for Source