On Sat, May 10, 2025 at 2:09 PM Eric Blake <ebl...@redhat.com> wrote: > > On Fri, May 09, 2025 at 04:33:44PM -0400, Nikolaos Chatzikonstantinou wrote: > > Hello lists, > > > > I rewrote GNU m4 in Python. Long story short, I wanted to learn m4 to > > fix some issues I had with GNU Guile and Autotools, and after > > realizing m4 1.4 is ~8000 lines of code and reading e.g. > > <https://www.owlfolio.org/development/autoconf-swot/> which claims > > "Feature gaps in GNU M4 hold back development of Autoconf." I thought > > I'd rewrite it in Rust. (It turned out to be more beneficial to > > rewrite in Python due to faster prototyping for the time being.) > > Eventually I plan to get back to my original purpose of fixing the > > integration of GNU Guile and Autotools. > > > > You can find the project home page here, > > <https://codeberg.org/annoyingusername/m4p> and you can install with > > pip via `pip install m4p`. > > > > > > I have not yet implemented: > > > > 1. traceon, traceoff, changeword, debugmode, debugfile, dumpdef > > traceon and dumpdef are mandated by POSIX. Don't bother implementing > changeword (it's already ripped out of branch-1.6). debugmode is also > going to be essential for controlling compatibility.
As of v0.3 the only unimplemented macro is debugmode (and I think $@ which I forgot). I will get around to it. > > 2. Some of the command-line options. > > Does it handle frozen files yet? Not yet. I estimate that in another month or so it should all come together to the point where I'll start testing it against real uses of m4. Regards, Nikolaos Chatzikonstantinou