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

Attachment: signature.asc
Description: PGP signature

  • ... hbezemer
    • ... Ingo Schwarze
      • ... hbezemer--- via discussion of the GNU roff typesetting system and related software
        • ... G. Branden Robinson
        • ... G. Branden Robinson
          • ... hbezemer--- via discussion of the GNU roff typesetting system and related software

Reply via email to