[looping in groff@gnu list] [was: '^\}$' is (not) changed to a space character]
Hi Alex, At 2025-10-06T12:25:23+0200, Alejandro Colomar wrote: > On Mon, Oct 06, 2025 at 03:51:49AM -0500, G. Branden Robinson wrote: > > Right, but the excess space in the document should not still be > > present, either. > > Hmmm, it's weird. If I produce the PDF in my computer, the space is > now correct. However, the PDF book served on my website still has the > wrong space. I know it has the correct source code, because it > doesn't use CW anymore. > > The only difference I can see is the groff(1) version. In my computer, > I have > > GNU groff version 1.23.0.2695-49927 > > but on my server I have > > GNU groff version 1.23.0.1254-19a18 > > But I also tested 1.23.0, and it does the right thing. Maybe the > version on my server has a temporary bug that appeared after 1.23.0 > and was fixed before 1.23.0.2695-49927. That could explain it. I find bugs I introduced myself all the time. (Such discoveries often drive new regression test scripts.) This one doesn't ring a bell, but that doesn't mean much. > I tried building groff from git HEAD to see if that fixed the issues > in my server. However, it seems groff doesn't build at the moment: > > $ make > make all-recursive > make[1]: Entering directory '/srv/alx/src/gnu/groff/master' > make[2]: Entering directory '/srv/alx/src/gnu/groff/master' > CXX src/roff/troff/div.o > In file included from src/roff/troff/div.cpp:29: > src/roff/troff/hvunits.h: In member function ‘units vunits::to_units()’: > src/roff/troff/hvunits.h:91:7: error: ‘ckd_mul’ was not declared in > this scope > 91 | if (ckd_mul(&r, n, vresolution)) > | ^~~~~~~ > src/roff/troff/hvunits.h: In function ‘vunits operator+(const vunits&, > const vunits&)’: > src/roff/troff/hvunits.h:105:7: error: ‘ckd_add’ was not declared in > this scope > 105 | if (ckd_add(&r.n, r.n, y.n)) > | ^~~~~~~ > src/roff/troff/hvunits.h: In function ‘vunits operator-(const vunits&, > const vunits&)’: > src/roff/troff/hvunits.h:114:7: error: ‘ckd_sub’ was not declared in > this scope > 114 | if (ckd_sub(&r.n, r.n, y.n)) > | ^~~~~~~ > src/roff/troff/hvunits.h: In function ‘vunits operator-(const vunits&)’: > src/roff/troff/hvunits.h:123:7: error: ‘ckd_mul’ was not declared in > this scope > 123 | if (ckd_mul(&r.n, x.n, -1)) > | ^~~~~~~ > src/roff/troff/hvunits.h: In function ‘vunits operator*(const vunits&, > int)’: > src/roff/troff/hvunits.h:145:7: error: ‘ckd_mul’ was not declared in > this scope > 145 | if (ckd_mul(&r.n, x.n, n)) > | ^~~~~~~ > src/roff/troff/hvunits.h: In function ‘vunits operator*(int, const > vunits&)’: > src/roff/troff/hvunits.h:154:7: error: ‘ckd_mul’ was not declared in > this scope > 154 | if (ckd_mul(&r.n, n, x.n)) > | ^~~~~~~ > src/roff/troff/hvunits.h: In member function ‘units hunits::to_units()’: > src/roff/troff/hvunits.h:208:7: error: ‘ckd_mul’ was not declared in > this scope > 208 | if (ckd_mul(&r, n, hresolution)) > | ^~~~~~~ > src/roff/troff/hvunits.h: In function ‘hunits operator+(const hunits&, > const hunits&)’: > src/roff/troff/hvunits.h:222:7: error: ‘ckd_add’ was not declared in > this scope > 222 | if (ckd_add(&r.n, r.n, y.n)) > | ^~~~~~~ > src/roff/troff/hvunits.h: In function ‘hunits operator-(const hunits&, > const hunits&)’: > src/roff/troff/hvunits.h:231:7: error: ‘ckd_sub’ was not declared in > this scope > 231 | if (ckd_sub(&r.n, r.n, y.n)) > | ^~~~~~~ > src/roff/troff/hvunits.h: In function ‘hunits operator-(const hunits&)’: > src/roff/troff/hvunits.h:241:7: error: ‘ckd_mul’ was not declared in > this scope > 241 | if (ckd_mul(&r.n, x.n, -1)) > | ^~~~~~~ > src/roff/troff/hvunits.h: In function ‘hunits operator*(const hunits&, > int)’: > src/roff/troff/hvunits.h:263:7: error: ‘ckd_mul’ was not declared in > this scope > 263 | if (ckd_mul(&r.n, x.n, n)) > | ^~~~~~~ > src/roff/troff/hvunits.h: In function ‘hunits operator*(int, const > hunits&)’: > src/roff/troff/hvunits.h:272:7: error: ‘ckd_mul’ was not declared in > this scope > 272 | if (ckd_mul(&r.n, x.n, n)) > | ^~~~~~~ > src/roff/troff/div.cpp: In member function ‘virtual void > macro_diversion::output(node*, bool, vunits, vunits, hunits)’: > src/roff/troff/div.cpp:325:7: error: ‘ckd_add’ was not declared in this > scope > 325 | if (ckd_add(&new_vpos, vpos, lineht)) > | ^~~~~~~ > make[2]: *** [Makefile:9395: src/roff/troff/div.o] Error 1 > make[2]: Leaving directory '/srv/alx/src/gnu/groff/master' > make[1]: *** [Makefile:11776: all-recursive] Error 1 > make[1]: Leaving directory '/srv/alx/src/gnu/groff/master' > make: *** [Makefile:6977: all] Error 2 > > Did you forget some #include? It builds for me and others, like Deri and Grisha Levit. https://lists.gnu.org/archive/html/groff/2025-10/msg00009.html Have you "bootstrapped" lately? That's necessary for Git users when we bump the version of gnulib we include, which we probably did after either 1.23.0.2695-49927 or 1.23.0.1254-19a18, and maybe both. One thing I do recall is bumping gnulib to get at the checked arithmetic functions--precisely the ones you see above. Also, FYI: $ git describe origin/master 1.23.0-4017-g3ea378d35 I'll probably be bumping gnulib again soon--the version we're using hits end-of-support in less than three months. Regards, Branden
signature.asc
Description: PGP signature
