cl-m4 is a complete M4 programming language implementation from scratch targeted at GNU M4 compatibility.

It has been created by Alexander Kahl from a branch of evol in order to reach a broader audience. One might ask, "why in hell do we need another implementation of this terrifying language?" - it is because generating an AST from M4 code is impossible and GNU M4 doesn't offer enough means of hooking up into macro evaluation, thus only a powerful CL version might enable one to convert M4 or re-utilize libraries like GNU Autoconf.

Warning: Alpha stage!

The link to the git repository is available from Github.