In programming languages, a macro is any programming or user interface that allows one to associate a macro name to a set of instructions to be substituted wherever the macro name appears in a program. The macro, when used, expands into something usually larger than itself. Often, the macro facility allows arguments to be substituted into the expanded code. Sometimes, the facility permits conditional expansion, internalized dynamic generation of unique names, etc.
Peter Spjuth has "an experminent on compiled macros" with a very small core mod http://chiselapp.com/user/pspjuth/repository/tcl/home%|%now hosted on chiselapp%|% ([http://sourceforge.net/p/tcl/patches/535/%|%original patch submission @ sourceforge%|%). This is interesting for the very simplicity of the approach