Incidentally, UNIX had a different language-independent macro processor called m6. I think it was created by Doug McIlroy and Andy Hall, and, as I recall, that was even before UNIX became widely used. Hall's M6 implementation was in Fortran, possibly initially for the GE/Honeywell machines running at Murray Hill. Even before I'd heard of UNIX and before I did SCCS, I got the source from Andy and compiled M6 on our IBM mainframe. I'm sure Doug can provide a lot more information about M6. I recall once talking to Andy about a minor bug, and he said that he knew about it, had talked to Doug about it, and Doug said let it go. (I was just starting out at Holmdel and had never met Doug, Andy, or anybody else at Murray Hill. I didn't know it, but Ken and Dennis were writing the first version of UNIX around that time.)