Re: m4p: an implementation of GNU m4 in Python

Jacob Bachmeyer <[email protected]> Fri, 9 May 2025 22:13:26 -0500
Newsgroups gmane.comp.sysutils.autoconf.general
Message-ID <[email protected]>
On 5/9/25 16:45, Nikolaos Chatzikonstantinou wrote:
> [...]
> I'm worried about:
>
> 1. What mode GNU m4 opens files in; m4p always open in binary,
> potentially treating carriage return differently on Windows.
> 2. Sneaky bugs.
>
> The functions that I have not yet implemented are debug functions, so
> they probably will not affect production m4 macros. The changeword
> macro might be removed in future versions of GNU m4 and I might not
> implement it at all, not sure if anyone uses it. I have not had any
> benchmarks, but from roughly looking at
> how long tests take I'm measuring a 100x slowdown.

Have you tried running it with PyPy? (<URL:https://pypy.org/>)

>   I'm hoping to
> rewrite it in Rust later to address that.

Unfortunately, Rust has ... problems as a language and ecosystem.  For 
reasons that are partially technical and partially political, the 
general view of Rust at the GNU project seems rather dim to me.  (An 
"AI"-assisted switch to Rust was the April Fool's joke earlier this year.)

The political problems were bad enough to spawn a Rust fork 
(<URL:https://crablang.org/>) which amusingly has provided most of the 
logo for the ongoing efforts to implement a Rust frontend for GCC.  
(<URL:https://rust-gcc.github.io/>)

Rust should probably be considered unusable for GNU development until 
that GCC frontend is complete due to one of the larger problems with 
Rust:  the Rust language drifts "out from underneath" existing code.  
That is not acceptable at GNU, but the GCC Rust-language frontend is 
expected to follow the same convention GCC uses for other languages 
where the standards have evolved with time.

I believe that their first goal is to implement Rust 1.49, which gccrs 
will continue to support into the indefinite future.


-- Jacob