groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Release Candidate 1.23.0.rc1


From: G. Branden Robinson
Subject: Re: Release Candidate 1.23.0.rc1
Date: Thu, 15 Apr 2021 21:29:54 +1000
User-agent: NeoMutt/20180716

Hi, Bertrand!

At 2021-04-10T11:30:13+0200, Bertrand Garrigues wrote:
> Hi Branden,
> 
> On Thu, Apr 08 2021 at 12:24:56 PM, "G. Branden Robinson" 
> <g.branden.robinson@gmail.com> wrote:
> > That's my understanding.  I inquired after an rc2 a few weeks ago[1]
> > but nothing has come of it as yet.
> 
> I will probably need to take one day off holiday in order to make this
> rc2, perhaps next week or the week after.  We could also add Deri's
> latest extension to gropdf and ms, what do you think?  I also owe a
> small dev for Ingo on the texinfo doc generation (this was discussed
> off-list last year).

I don't want to apply any pressure to your schedule.  I've now committed
the itchiest thing I've been working on, the change to localization.

I'm happy to work on Deri's change next.

I had several other goals for "the next groff release" and I've met some
of them; I'll follow-up at some point to my email about that from about
6 months ago.

I was a little disappointed at the lack of feedback or evidence of
uptake of the previous release candidate; while it would be nice to
chalk this up to it being rock-solid and making everyone happy, I
suspect it may be more due to the release announcement not flogging
what's changed.  With that in mind, here's a light adaptation of the
NEWS file to tell people what's changed since the last RC, and since
the previous release.  Feel free to use it for an rc2 announcement mail.

===SNIP===

Changes since groff 1.23.0.rc1
==============================

troff
-----

o The groff locale (the default input language) is now determined using
  the system locale.  The LC_ALL and LANG environment variables are
  checked, in that order.  If set, the value's first two characters
  determine the groff locale.  If these variables are not set, if the
  first one found is set to "C", or if no groff localization file exists
  for the language, groff falls back to English, loading en.tmac.

  Those who want groff's default locale to differ from LC_ALL/LANG
  should edit the troffrc file to source the appropriate groff locale
  macro file (cs.tmac, de.tmac, den.tmac, fr.tmac, ja.tmac, sv.tmac,
  zh.tmac).

  The default hyphenation mode (as used by the .hy request) for users of
  English is thus changed from "1", which was inappropriate for the
  TeX-based hyphenation patterns groff has used since at least 1991, to
  "4".  However, calling .hy without an argument remains synonymous with
  ".hy 1".

o A new read-only register ".nm" is implemented.  It reports the
  enablement status of output line numbering (caused by the .nm
  request) irrespective of the temporary suspension of numbering with
  the .nn request.  This register was introduced because there was no
  way to introspect its state, tbl(1) needs to be able to do so, and the
  writable line number register \n[ln] is not a reliable proxy for it.

o New requests 'soquiet' and 'msoquiet' are available.  They operate as
  'so' and 'mso', respectively, except that they do not emit a warning
  diagnostic if the file name argument does not exist.

nroff
-----

o nroff now recognizes the -b, -k, -K, and -z options and passes them
  through to troff.

Macro Packages
--------------

o The new rfc1345 macro package, contributed by Dorai Sitaram, defines
  special character glyph names implementing RFC 1345 mnemonics (plus
  some additions from Vim, which itself uses RFC 1345 for its digraphs).
  It is documented in the groff_rfc1345(7) man page.

o The s (ms) macro package supports a new string, FR, which defines the
  ratio of the footnote line length to the current line length.  The
  default expression is "11/12", 11/12ths of the normal line length,
  adopted for better compatibility with ms documents prepared with AT&T
  ms or its descendant implementations in Heirloom Doctools and
  neatroff.  This is a change from previous groff releases, which used a
  ratio of 5/6ths.

  You may wish to set the FR string to 1 to align with contemporary
  typesetting practices.  In Version 7 Unix ms, its descendants, and
  groff prior to this release, an FL register was used for the line
  length in footnotes; however, setting this register at document
  initialization time had no effect on the footnote line length in
  multi-column arrangements.

  FR should be used in preference to the old FL register in contemporary
  documents; see the groff Texinfo manual or the "Using groff with the
  ms macros" document, also part of this release.

Miscellaneous
-------------

o The semantics of the environment variable SOURCE_DATE_EPOCH (support
  for which was added in 1.22.4) to groff were not established with
  respect to time zone selection, prompting divergent interpretations;
  Debian and distributions derived from it have for several years
  patched groff to implicitly use UTC as the time zone when interpreting
  the current time (or SOURCE_DATE_EPOCH) as a local time.  While a
  convenient and defensible choice for reproducible build efforts, it
  runs against the grain of user expectations.  Systems programmers like
  monotonically increasing clocks; the broader user base usually prefers
  a clock that follows an applicable civil calendar.  Users of
  SOURCE_DATE_EPOCH may also wish to set the TZ environment variable.


Changes since groff 1.22.4
==============================

troff
-----

o A new read-only register ".cp" is implemented.  Within a .do request,
  "\n[.cp]" holds the saved value of compatibility mode.  See
  groff_diff(7) or the groff Texinfo manual for rationale, use case, and
  example.

o Point-size escapes of the form '\sNN', where NN is in the range 10-39,
  are now recognized only in compatibility mode (groff -C); when
  encountered, an error diagnostic is emitted.  In normal mode, \sN is
  interpreted as setting the point size to the single-digit value N,
  which ends the escape.  This change eliminates a quirk in the language
  grammar that dates back to the mid-1970s (AT&T troff by Ossanna) but
  was not documented in the Troff User's Manual until 1992 when
  Kernighan updated CSTR #54 for device-independent AT&T troff.

  The form '\s(NN' is accepted for two-digit point sizes in all known
  troffs.  The form '\s[NNN]' accepts a numeric expression of variable
  length; it has been supported by groff since version 1.02 (June 1991)
  at the latest and is by current versions of Heirloom Doctools troff
  and neatroff.  The form "\s'NNN'" is also widely supported.

  Summary: in your documents, rewrite escapes beginning with '\s1',
  '\s2', or '\s3' in an unambiguous and portable form.  For instance,
  '\s36' can become any of:
    \s(36
    \s[36]
    \s'36'
  You can use
    grep '\\s[123]'
  to find instances in your documents.

  Those who have changed the escape character with the 'ec' request (an
  advanced usage) are expected to be able to cope; ask the development
  team for support if you need it.

o New requests 'stringdown' and 'stringup' are available.  These change
  the string named in their argument by replacing each of its bytes with
  its lowercase or uppercase version (if any), respectively.  groff
  special characters (see the groff_char(7) man page) can be used and
  the output will often transform in the expected way due to the
  regular naming convention of the special character escapes for
  accented letters.

nroff
-----

o The new option -P takes an argument to pass to the output driver
  (always grotty(1)).  "-P-i" directs the terminal device to display
  real italic (oblique) characters instead of underlining: it is up to
  your terminal (emulator) to support italics (xterm does since patch
  #314 [2014-12-28]).  "-P-c" and "-P-h" can now be used instead of "-c"
  and "-h"; the latter pair may eventually be deprecated and repurposed.

o The new option -V emits the constructed groff command that nroff would
  run to standard output instead of executing it.  Arguments to nroff
  that contain shell metacharacters may not be sufficiently escaped for
  the output of nroff -V to be copied and pasted to the shell prompt;
  this is a historical deficiency of the Bourne shell family not yet
  corrected by the POSIX standard.

o nroff now recognizes the -E option and passes it through to troff.

Macro Packages
--------------

o The an (man) and doc (mdoc) macro packages support new CS and CT
  registers to control rendering of man page section headings and titles
  (seen in the page header), respectively, in full capitals.  These
  default off (with no visible effect on pages which already fully
  capitalize these strings in man page sources).  The rationale is to
  encourage man page authors to preserve case distinction information in
  (or restore it to) their titles and section headings, while giving
  users (including system administrators, distributors, integrators, and
  maintainers of man(1) implementations) a way to view the rendered page
  elements in full capitals if desired.

o The an (man) macro package no longer honors an .ll request to set the
  line length in nroff devices prior to processing a man page.  This was
  deprecated 18 years ago, and all known man program and macro package
  implementations either have set an LL register since 2002 (man-db
  man), 2005 (Brouwer/Lucifredi man), or don't let the user vary the
  line length freely (DWB troff, Solaris troff, Plan 9 troff) or at all
  (mandoc, Heirloom Doctools troff).

o The groff_man(7) man page documenting the groff implementation of the
  groff_man_style(7), is a tutorial and style guide containing the same
  material supplemented with explanations, examples, and advice for the
  reader who is not an expert in *roff systems or in writing man pages.

o The doc (mdoc) macro package now honors the HY register as the an
  (man) package does: to set the default hyphenation mode.  It
  furthermore recognizes but ignores the AD string (see above) for
  compatibility with an (man).
o The s (ms) macro package has added strings, \*< and \*>, to perform
  subscripting within a paragraph.  They work analogously to the \*{ and
  \*} superscripting strings that have been present in groff ms since
  1991 or earlier.

o The s (ms) macro package no longer manipulates the warning level.  If
  you want all warnings on, use the ".warn" request with no arguments in
  your ms document or pass "-w w" to groff (see troff(1) or the groff
  Texinfo manual for more on warnings).

grotty
------

o On the Latin-1 output device ("groff -T latin1") the output glyph
  \[oq] (opening quote) is now rendered as code point 0x27 (apostrophe)
  instead of 0x60 (grave accent).  The ISO 8859/ECMA-94 Latin character
  sets do not define any glyphs for directional ("typographer's")
  quotation marks, but the apostrophe is depicted as a neutral
  (vertical) glyph, whereas the grave accent 0x60 and acute accent 0xB4
  are mirror-symmetric diacritical marks.

  This change has no effect on _input_ conventions for roff source
  documents.  You can still get directional single quotes on UTF-8,
  PostScript, PDF, and other output devices supporting them by typing
  sequences like `this' in the input (character remapping with ".char"
  requests and similar notwithstanding).

Miscellaneous
-------------

 o groffer has been deleted from the distribution.

===SNIP===

Regards,
Branden

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]