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've checked out the repository, but the README.txt was very sparse at the command line I should use to build and install the binary into any place where I can quickly use it. I'd rather run it from git than from a pip checkout (so that I can experiment with patching your code and instantly testing those results, rather than having to wait for the next release to land on pip). My initial attempt, 'python m4p', fails: $ python m4p /usr/bin/python: can't find '__main__' module in '/home/eblake/m4p/m4p' and this also fails: $ python m4p/main.py /home/eblake/m4p/m4p/main.py:18: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html import pkg_resources Traceback (most recent call last): File "/home/eblake/m4p/m4p/main.py", line 20, in <module> from m4p.stream import Stream ModuleNotFoundError: No module named 'm4p' Maybe it's my naivete with python, but unless I can figure out how to run your code, I can't compare it against the C version to spot out where you are still incomplete in your implementation. -- Eric Blake, Principal Software Engineer Red Hat, Inc. Virtualization: qemu.org | libguestfs.org