Hi Hans, At 2026-09-29T16:16:47+0000, hbezemer--- via discussion of the GNU roff typesetting system and related software wrote: > cat > Test.groff << EOF > .INITR references > .TB "Table name" "" "" "Ref" > See Table > .GETST Ref > for more info. > EOF > mmroff -Tpdf Test.groff > Test.pdf > When reporting *any* error for *any* software, always show the > complete output and/or error messages. > cat references.qrf yields: > m.tmac:Test.groff:2: internal error: qrf*caller string not initialized > troff: backtrace: '/usr/share/groff/1.24.1/tmac/m.tmac':83: macro '@abort' > troff: backtrace: '/usr/share/groff/1.24.1/tmac/m.tmac':3749: macro > 'qrf*validate-identifier' > troff: backtrace: '/usr/share/groff/1.24.1/tmac/m.tmac':3793: macro 'SETR' > troff: backtrace: '/usr/share/groff/1.24.1/tmac/m.tmac':3157: macro > 'lix@print-text' > troff: backtrace: '/usr/share/groff/1.24.1/tmac/m.tmac':3127: macro > 'lix@print-line' > troff: backtrace: '/usr/share/groff/1.24.1/tmac/m.tmac':3095: macro 'TB' > troff: backtrace: file 'Test.groff':2 > .nr pict*max-height 0 > .nr pict*max-width 0
I am able to reproduce this problem. The first thing I checked was the impact of having multiple versions of groff in one's $PATH, which was instructive. I almost always do, and the first groff in the $PATH is the one that older versions of mmroff(1) run. Setting GROFF_BIN_PATH in the environment helps, but only partially. For example: $ GROFF_BIN_PATH=$HOME/groff-1.23.0/bin ~/groff-1.23.0/bin/mmroff -v GNU groff version 1.22.4 Copyright (C) 2018 Free Software Foundation, Inc. GNU groff comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of groff and its subprograms under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING. called subprograms: GNU grops (groff) version 1.23.0 GNU troff (groff) version 1.23.0 The mmroff in groff 1.24.0 seems to honor $GROFF_BIN_PATH correctly. Those in earlier versions of groff do not. $ GROFF_BIN_PATH=$HOME/groff-1.24.0/bin ~/groff-1.24.0/bin/mmroff -v GNU groff version 1.24.0 Copyright 1989-2026 Free Software Foundation, Inc. and others This is free software, distributed under the terms of the GNU General Public License, version 3, or any later version, at your option. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "COPYING", "FDL", and "LICENSES" files in the groff distribution or package for additional notices and permissions. programs in constructed pipeline: GNU grops (groff) version 1.24.0 GNU troff (groff) version 1.24.0 Same for groff 1.24.1: $ GROFF_BIN_PATH=$HOME/groff-1.24.0/bin ~/groff-1.24.0/bin/mmroff -v GNU groff version 1.24.1 Copyright 1989-2026 Free Software Foundation, Inc. and others This is free software, distributed under the terms of the GNU General Public License, version 3, or any later version, at your option. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "COPYING", "FDL", and "LICENSES" files in the groff distribution or package for additional notices and permissions. programs in constructed pipeline: GNU grops (groff) version 1.24.1 GNU troff (groff) version 1.24.1 ...and for the brand-new groff 1.24.2: $ GROFF_BIN_PATH=$HOME/groff-1.24.1/bin ~/groff-1.24.1/bin/mmroff -v GNU groff version 1.24.2 Copyright 1989-2026 Free Software Foundation, Inc. and others This is free software, distributed under the terms of the GNU General Public License, version 3, or any later version, at your option. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "COPYING", "FDL", and "LICENSES" files in the groff distribution or package for additional notices and permissions. programs in constructed pipeline: GNU grops (groff) version 1.24.2 GNU troff (groff) version 1.24.2 Has it regressed on groff's "master" branch? $ GROFF_BIN_PATH=$HOME/groff-1.24.2/bin ~/groff-1.24.2/bin/mmroff -vGROFF_BIN_PATH=$HOME/groff-HEAD/bin ~/groff-HEAD/bin/mmroff -v GNU groff version 1.25.0.rc2.199-b10f5 Copyright 1989-2026 Free Software Foundation, Inc. and others This is free software, distributed under the terms of the GNU General Public License, version 3, or any later version, at your option. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "COPYING", "FDL", and "LICENSES" files in the groff distribution or package for additional notices and permissions. programs in constructed pipeline: GNU grops (groff) version 1.25.0.rc2.199-b10f5 GNU troff (groff) version 1.25.0.rc2.199-b10f5 Signs point to no! Unfortunately, it looks like while groff 1.24.0 fixed mmroff's GROFF_BIN_PATH problem, it regressed something else and created the problem you're seeing. $ GROFF_BIN_PATH=$HOME/groff-1.23.0/bin ~/groff-1.23.0/bin/mmroff -T pdf hans.mm >| hans.pdf; cat references.qrf .\" references .ds qrf*ref-Ref-hn .ds qrf*ref-Ref-pn 1 .ds qrf*ref-Ref-xx 1 $ GROFF_BIN_PATH=$HOME/groff-1.24.0/bin ~/groff-1.24.0/bin/mmroff -T pdf hans.mm >| hans.pdf; cat references.qrf .\" references .ds qrf*ref-Ref-hn .ds qrf*ref-Ref-pn 1 m.tmac:hans.mm:2: internal error: qrf*caller string not initialized troff: backtrace: '/home/branden/groff-1.24.0/share/groff/1.24.0/tmac/m.tmac':83: macro '@abort' troff: backtrace: '/home/branden/groff-1.24.0/share/groff/1.24.0/tmac/m.tmac':3749: macro 'qrf*validate-identifier' troff: backtrace: '/home/branden/groff-1.24.0/share/groff/1.24.0/tmac/m.tmac':3793: macro 'SETR' troff: backtrace: '/home/branden/groff-1.24.0/share/groff/1.24.0/tmac/m.tmac':3157: macro 'lix@print-text' troff: backtrace: '/home/branden/groff-1.24.0/share/groff/1.24.0/tmac/m.tmac':3127: macro 'lix@print-line' troff: backtrace: '/home/branden/groff-1.24.0/share/groff/1.24.0/tmac/m.tmac':3095: macro 'TB' troff: backtrace: file 'hans.mm':2 .nr pict*max-height 0 .nr pict*max-width 0 So that's a bug. Would you be willing to file a bug for this issue in the Savannah ticket tracker? https://savannah.gnu.org/bugs/?group=groff&func=additem Regards, Branden
signature.asc
Description: PGP signature
