Merge changes Ia3280936,I66d7b5eb,Ibfbb6f58

* changes:
  bison: fix glr parser on 32-bit builds.
  Re-add build files
  Replace with bison-3.5
diff --git a/.prev-version b/.prev-version
new file mode 100644
index 0000000..4deff84
--- /dev/null
+++ b/.prev-version
@@ -0,0 +1 @@
+3.4.92
diff --git a/.tarball-version b/.tarball-version
new file mode 100644
index 0000000..5a95802
--- /dev/null
+++ b/.tarball-version
@@ -0,0 +1 @@
+3.5
diff --git a/.version b/.version
new file mode 100644
index 0000000..5a95802
--- /dev/null
+++ b/.version
@@ -0,0 +1 @@
+3.5
diff --git a/ABOUT-NLS b/ABOUT-NLS
index 4f50fb5..b1de1b6 100644
--- a/ABOUT-NLS
+++ b/ABOUT-NLS
@@ -18,35 +18,7 @@
 available translations.  They tell how people wanting to contribute and
 work on translations can contact the appropriate team.
 
-   When reporting bugs in the `intl/' directory or bugs which may be
-related to internationalization, you should tell about the version of
-`gettext' which is used.  The information can be found in the
-`intl/VERSION' file, in internationalized packages.
-
-1.1 Quick configuration advice
-==============================
-
-If you want to exploit the full power of internationalization, you
-should configure it using
-
-     ./configure --with-included-gettext
-
-to force usage of internationalizing routines provided within this
-package, despite the existence of internationalizing capabilities in the
-operating system where this package is being installed.  So far, only
-the `gettext' implementation in the GNU C library version 2 provides as
-many features (such as locale alias, message inheritance, automatic
-charset conversion or plural form handling) as the implementation here.
-It is also not possible to offer this additional functionality on top
-of a `catgets' implementation.  Future versions of GNU `gettext' will
-very likely convey even more functionality.  So it might be a good idea
-to change to GNU `gettext' as soon as possible.
-
-   So you need _not_ provide this option if you are using GNU libc 2 or
-you have installed a recent copy of the GNU gettext package with the
-included `libintl'.
-
-1.2 INSTALL Matters
+1.1 INSTALL Matters
 ===================
 
 Some packages are "localizable" when properly installed; the programs
@@ -56,36 +28,19 @@
 
    By default, this package will be installed to allow translation of
 messages.  It will automatically detect whether the system already
-provides the GNU `gettext' functions.  If not, the included GNU
-`gettext' library will be used.  This library is wholly contained
-within this package, usually in the `intl/' subdirectory, so prior
-installation of the GNU `gettext' package is _not_ required.
-Installers may use special options at configuration time for changing
-the default behaviour.  The commands:
+provides the GNU `gettext' functions.  Installers may use special
+options at configuration time for changing the default behaviour.  The
+command:
 
-     ./configure --with-included-gettext
      ./configure --disable-nls
 
-will, respectively, bypass any pre-existing `gettext' to use the
-internationalizing routines provided within this package, or else,
-_totally_ disable translation of messages.
+will _totally_ disable translation of messages.
 
    When you already have GNU `gettext' installed on your system and run
 configure without an option for your new package, `configure' will
-probably detect the previously built and installed `libintl.a' file and
-will decide to use this.  This might not be desirable.  You should use
-the more recent version of the GNU `gettext' library.  I.e. if the file
-`intl/VERSION' shows that the library which comes with this package is
-more recent, you should use
-
-     ./configure --with-included-gettext
-
-to prevent auto-detection.
-
-   The configuration process will not test for the `catgets' function
-and therefore it will not be used.  The reason is that even an
-emulation of `gettext' on top of `catgets' could not provide all the
-extensions of the GNU `gettext' library.
+probably detect the previously built and installed `libintl' library
+and will decide to use it.  If not, you may have to to use the
+`--with-libintl-prefix' option to tell `configure' where to look for it.
 
    Internationalized packages usually have many `po/LL.po' files, where
 LL gives an ISO 639 two-letter code identifying the language.  Unless
@@ -96,7 +51,7 @@
 `LINGUAS' should then contain a space separated list of two-letter
 codes, stating which languages are allowed.
 
-1.3 Using This Package
+1.2 Using This Package
 ======================
 
 As a user, if your language has been installed for this package, you
@@ -148,7 +103,7 @@
 to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
 (Portuguese as spoken in Portugal) in this context.
 
-1.4 Translating Teams
+1.3 Translating Teams
 =====================
 
 For the Free Translation Project to be a success, we need interested
@@ -177,566 +132,566 @@
 the terminology in use.  Proven linguistic skills are praised more than
 programming skills, here.
 
-1.5 Available Packages
+1.4 Available Packages
 ======================
 
 Languages are not equally supported in all packages.  The following
-matrix shows the current state of internationalization, as of May 2010.
-The matrix shows, in regard of each package, for which languages PO
-files have been submitted to translation coordination, with a
+matrix shows the current state of internationalization, as of June
+2010.  The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination, with a
 translation percentage of at least 50%.
 
-     Ready PO files       af am ar as ast az be be@latin bg bn_IN bs ca crh
-                        +---------------------------------------------------+
-     a2ps               |                    []                      []     |
-     aegis              |                                                   |
-     ant-phone          |                                                   |
-     anubis             |                                                   |
-     aspell             |             []                             []     |
-     bash               |                                                   |
-     bfd                |                                                   |
-     bibshelf           |             []                                    |
-     binutils           |                                                   |
-     bison              |                                                   |
-     bison-runtime      |             []                                    |
-     bluez-pin          | []          []                                    |
-     bombono-dvd        |                                                   |
-     buzztard           |                                                   |
-     cflow              |                                                   |
-     clisp              |                                                   |
-     coreutils          |                                []          []     |
-     cpio               |                                                   |
-     cppi               |                                                   |
-     cpplib             |                                            []     |
-     cryptsetup         |                                                   |
-     dfarc              |                                                   |
-     dialog             |                          []                []     |
-     dico               |                                                   |
-     diffutils          |                                            []     |
-     dink               |                                                   |
-     doodle             |                                                   |
-     e2fsprogs          |                                            []     |
-     enscript           |                                            []     |
-     exif               |                                                   |
-     fetchmail          |                                            []     |
-     findutils          |                                []                 |
-     flex               |                                            []     |
-     freedink           |                                                   |
-     gas                |                                                   |
-     gawk               |             []                             []     |
-     gcal               |                                            []     |
-     gcc                |                                                   |
-     gettext-examples   | []          []                 []          []     |
-     gettext-runtime    |                    []          []          []     |
-     gettext-tools      |                                []          []     |
-     gip                |                                []                 |
-     gjay               |                                                   |
-     gliv               |                                []                 |
-     glunarclock        |             []                 []                 |
-     gnubiff            |                                                   |
-     gnucash            |                                            []     |
-     gnuedu             |                                                   |
-     gnulib             |                                                   |
-     gnunet             |                                                   |
-     gnunet-gtk         |                                                   |
-     gnutls             |                                                   |
-     gold               |                                                   |
-     gpe-aerial         |                                                   |
-     gpe-beam           |                                                   |
-     gpe-bluetooth      |                                                   |
-     gpe-calendar       |                                                   |
-     gpe-clock          |             []                                    |
-     gpe-conf           |                                                   |
-     gpe-contacts       |                                                   |
-     gpe-edit           |                                                   |
-     gpe-filemanager    |                                                   |
-     gpe-go             |                                                   |
-     gpe-login          |                                                   |
-     gpe-ownerinfo      |             []                                    |
-     gpe-package        |                                                   |
-     gpe-sketchbook     |                                                   |
-     gpe-su             |             []                                    |
-     gpe-taskmanager    |             []                                    |
-     gpe-timesheet      |             []                                    |
-     gpe-today          |             []                                    |
-     gpe-todo           |                                                   |
-     gphoto2            |                                                   |
-     gprof              |                                []                 |
-     gpsdrive           |                                                   |
-     gramadoir          |                                                   |
-     grep               |                                                   |
-     grub               |             []                             []     |
-     gsasl              |                                                   |
-     gss                |                                                   |
-     gst-plugins-bad    |                                []                 |
-     gst-plugins-base   |                                []                 |
-     gst-plugins-good   |                                []                 |
-     gst-plugins-ugly   |                                []                 |
-     gstreamer          | []                             []          []     |
-     gtick              |                                                   |
-     gtkam              |                    []                             |
-     gtkorphan          |                                []                 |
-     gtkspell           | []          []     []                             |
-     gutenprint         |                                                   |
-     hello              |                                []                 |
-     help2man           |                                                   |
-     hylafax            |                                                   |
-     idutils            |                                                   |
-     indent             |                                []          []     |
-     iso_15924          |                                                   |
-     iso_3166           | []       []        []          []  []   [] [] []  |
-     iso_3166_2         |                                                   |
-     iso_4217           |                                                   |
-     iso_639            |          [] []     []              []         []  |
-     iso_639_3          |                                               []  |
-     jwhois             |                                                   |
-     kbd                |                                                   |
-     keytouch           |                                            []     |
-     keytouch-editor    |                                                   |
-     keytouch-keyboa... |                                            []     |
-     klavaro            |       []                                          |
-     latrine            |                                                   |
-     ld                 |                                []                 |
-     leafpad            |                                []          []     |
-     libc               |                                []          []     |
-     libexif            |                    ()                             |
-     libextractor       |                                                   |
-     libgnutls          |                                                   |
-     libgpewidget       |                                                   |
-     libgpg-error       |                                                   |
-     libgphoto2         |                                                   |
-     libgphoto2_port    |                                                   |
-     libgsasl           |                                                   |
-     libiconv           |                                []                 |
-     libidn             |                                                   |
-     lifelines          |                                                   |
-     liferea            |                          []                []     |
-     lilypond           |                                                   |
-     linkdr             |       []                                          |
-     lordsawar          |                                                   |
-     lprng              |                                                   |
-     lynx               |                                            []     |
-     m4                 |                                                   |
-     mailfromd          |                                                   |
-     mailutils          |                                                   |
-     make               |                                                   |
-     man-db             |                                                   |
-     man-db-manpages    |                                                   |
-     minicom            |                                                   |
-     mkisofs            |                                                   |
-     myserver           |                                                   |
-     nano               |                                []          []     |
-     opcodes            |                                                   |
-     parted             |                                                   |
-     pies               |                                                   |
-     popt               |                                                   |
-     psmisc             |                                                   |
-     pspp               |                                            []     |
-     pwdutils           |                                                   |
-     radius             |                                            []     |
-     recode             |                    []                      []     |
-     rosegarden         |                                                   |
-     rpm                |                                                   |
-     rush               |                                                   |
-     sarg               |                                                   |
-     screem             |                                                   |
-     scrollkeeper       |                 [] []                      []     |
-     sed                |             []                             []     |
-     sharutils          |                                []          []     |
-     shishi             |                                                   |
-     skencil            |                                                   |
-     solfege            |                                                   |
-     solfege-manual     |                                                   |
-     soundtracker       |                                                   |
-     sp                 |                                                   |
-     sysstat            |                                                   |
-     tar                |                                []                 |
-     texinfo            |                                                   |
-     tin                |                                                   |
-     unicode-han-tra... |                                                   |
-     unicode-transla... |                                                   |
-     util-linux-ng      |                                            []     |
-     vice               |                                                   |
-     vmm                |                                                   |
-     vorbis-tools       |                                                   |
-     wastesedge         |                                                   |
-     wdiff              |                                                   |
-     wget               |                    []                      []     |
-     wyslij-po          |                                                   |
-     xchat              |             []     []          []          []     |
-     xdg-user-dirs      | []       [] []     []    []    []  []      [] []  |
-     xkeyboard-config   |                                []          [] []  |
-                        +---------------------------------------------------+
-                          af am ar as ast az be be@latin bg bn_IN bs ca crh
-                           6  0  2  3 19   1 11     3    28   3    1 38  5
+     Ready PO files       af am an ar as ast az be be@latin bg bn_IN bs ca
+                        +--------------------------------------------------+
+     a2ps               |                       []                      [] |
+     aegis              |                                                  |
+     ant-phone          |                                                  |
+     anubis             |                                                  |
+     aspell             |                []                             [] |
+     bash               |                                                  |
+     bfd                |                                                  |
+     bibshelf           |                []                                |
+     binutils           |                                                  |
+     bison              |                                                  |
+     bison-runtime      |                []                                |
+     bluez-pin          | []             []                                |
+     bombono-dvd        |                                                  |
+     buzztard           |                                                  |
+     cflow              |                                                  |
+     clisp              |                                                  |
+     coreutils          |                                   []          [] |
+     cpio               |                                                  |
+     cppi               |                                                  |
+     cpplib             |                                               [] |
+     cryptsetup         |                                                  |
+     dfarc              |                                                  |
+     dialog             |                             []                [] |
+     dico               |                                                  |
+     diffutils          |                                               [] |
+     dink               |                                                  |
+     doodle             |                                                  |
+     e2fsprogs          |                                               [] |
+     enscript           |                                               [] |
+     exif               |                                                  |
+     fetchmail          |                                               [] |
+     findutils          |                                   []             |
+     flex               |                                               [] |
+     freedink           |                                                  |
+     gas                |                                                  |
+     gawk               |                []                             [] |
+     gcal               |                                               [] |
+     gcc                |                                                  |
+     gettext-examples   | []             []                 []          [] |
+     gettext-runtime    |                                   []          [] |
+     gettext-tools      |                                   []          [] |
+     gip                |                                   []             |
+     gjay               |                                                  |
+     gliv               |                                   []             |
+     glunarclock        |                []                 []             |
+     gnubiff            |                                                  |
+     gnucash            |                                               [] |
+     gnuedu             |                                                  |
+     gnulib             |                                                  |
+     gnunet             |                                                  |
+     gnunet-gtk         |                                                  |
+     gnutls             |                                                  |
+     gold               |                                                  |
+     gpe-aerial         |                                                  |
+     gpe-beam           |                                                  |
+     gpe-bluetooth      |                                                  |
+     gpe-calendar       |                                                  |
+     gpe-clock          |                []                                |
+     gpe-conf           |                                                  |
+     gpe-contacts       |                                                  |
+     gpe-edit           |                                                  |
+     gpe-filemanager    |                                                  |
+     gpe-go             |                                                  |
+     gpe-login          |                                                  |
+     gpe-ownerinfo      |                []                                |
+     gpe-package        |                                                  |
+     gpe-sketchbook     |                                                  |
+     gpe-su             |                []                                |
+     gpe-taskmanager    |                []                                |
+     gpe-timesheet      |                []                                |
+     gpe-today          |                []                                |
+     gpe-todo           |                                                  |
+     gphoto2            |                                                  |
+     gprof              |                                   []             |
+     gpsdrive           |                                                  |
+     gramadoir          |                                                  |
+     grep               |                                                  |
+     grub               |                []                             [] |
+     gsasl              |                                                  |
+     gss                |                                                  |
+     gst-plugins-bad    |                                   []             |
+     gst-plugins-base   |                                   []             |
+     gst-plugins-good   |                                   []             |
+     gst-plugins-ugly   |                                   []             |
+     gstreamer          | []                                []          [] |
+     gtick              |                                                  |
+     gtkam              |                       []                         |
+     gtkorphan          |                                   []             |
+     gtkspell           | []             []     []                         |
+     gutenprint         |                                                  |
+     hello              |                                   []             |
+     help2man           |                                                  |
+     hylafax            |                                                  |
+     idutils            |                                                  |
+     indent             |                                   []          [] |
+     iso_15924          |                                                  |
+     iso_3166           | []          []        []          []  []   [] [] |
+     iso_3166_2         |                                                  |
+     iso_4217           |                                                  |
+     iso_639            |             [] []     []              []         |
+     iso_639_3          |                                                  |
+     jwhois             |                                                  |
+     kbd                |                                                  |
+     keytouch           |                                               [] |
+     keytouch-editor    |                                                  |
+     keytouch-keyboa... |                                               [] |
+     klavaro            |          []                                      |
+     latrine            |                                                  |
+     ld                 |                                   []             |
+     leafpad            |                                   []          [] |
+     libc               |                                   []          [] |
+     libexif            |                       ()                         |
+     libextractor       |                                                  |
+     libgnutls          |                                                  |
+     libgpewidget       |                                                  |
+     libgpg-error       |                                                  |
+     libgphoto2         |                                                  |
+     libgphoto2_port    |                                                  |
+     libgsasl           |                                                  |
+     libiconv           |                                   []             |
+     libidn             |                                                  |
+     lifelines          |                                                  |
+     liferea            |                             []                [] |
+     lilypond           |                                                  |
+     linkdr             |          []                                      |
+     lordsawar          |                                                  |
+     lprng              |                                                  |
+     lynx               |                                               [] |
+     m4                 |                                                  |
+     mailfromd          |                                                  |
+     mailutils          |                                                  |
+     make               |                                                  |
+     man-db             |                                                  |
+     man-db-manpages    |                                                  |
+     minicom            |                                                  |
+     mkisofs            |                                                  |
+     myserver           |                                                  |
+     nano               |                                   []          [] |
+     opcodes            |                                                  |
+     parted             |                                                  |
+     pies               |                                                  |
+     popt               |                                                  |
+     psmisc             |                                                  |
+     pspp               |                                               [] |
+     pwdutils           |                                                  |
+     radius             |                                               [] |
+     recode             |                       []                      [] |
+     rosegarden         |                                                  |
+     rpm                |                                                  |
+     rush               |                                                  |
+     sarg               |                                                  |
+     screem             |                                                  |
+     scrollkeeper       |                    [] []                      [] |
+     sed                |                []                             [] |
+     sharutils          |                                   []          [] |
+     shishi             |                                                  |
+     skencil            |                                                  |
+     solfege            |                                                  |
+     solfege-manual     |                                                  |
+     soundtracker       |                                                  |
+     sp                 |                                                  |
+     sysstat            |                                                  |
+     tar                |                                   []             |
+     texinfo            |                                                  |
+     tin                |                                                  |
+     unicode-han-tra... |                                                  |
+     unicode-transla... |                                                  |
+     util-linux-ng      |                                               [] |
+     vice               |                                                  |
+     vmm                |                                                  |
+     vorbis-tools       |                                                  |
+     wastesedge         |                                                  |
+     wdiff              |                                                  |
+     wget               |                       []                      [] |
+     wyslij-po          |                                                  |
+     xchat              |                []     []          []          [] |
+     xdg-user-dirs      | []    []    [] []     []    []    []  []      [] |
+     xkeyboard-config   |                                   []          [] |
+                        +--------------------------------------------------+
+                          af am an ar as ast az be be@latin bg bn_IN bs ca
+                           6  0  1  2  3 19   1 10     3    28   3    1 38
 
-                          cs da  de  el en en_GB en_ZA eo es et eu fa fi
+                          crh cs da  de  el en en_GB en_ZA eo es et eu fa
                         +-------------------------------------------------+
-     a2ps               | [] []  []  []     []            [] []       []  |
-     aegis              |    []  []                       []              |
-     ant-phone          |    []  ()                                       |
-     anubis             |    []  []                                   []  |
-     aspell             | [] []  []         []            []              |
-     bash               | []                           [] []          []  |
-     bfd                |                                 []          []  |
-     bibshelf           |    []  []                       []          []  |
-     binutils           |                                 []          []  |
-     bison              |        []  []                               []  |
-     bison-runtime      |    []  []  []                      []       []  |
-     bluez-pin          | [] []  []  []                [] []          []  |
-     bombono-dvd        |    []                                       []  |
-     buzztard           | [] []  []                                       |
-     cflow              |    []  []                                   []  |
-     clisp              |    []  []     []                []              |
-     coreutils          | [] []  []                          []           |
-     cpio               |                                             []  |
-     cppi               |                                             []  |
-     cpplib             |    []  []                       []              |
-     cryptsetup         |        []                                       |
-     dfarc              |    []  []                       []          []  |
-     dialog             |    []  []                    [] []    []        |
+     a2ps               |     [] []  []  []     []            [] []       |
+     aegis              |        []  []                       []          |
+     ant-phone          |        []  ()                                   |
+     anubis             |        []  []                                   |
+     aspell             |     [] []  []         []            []          |
+     bash               |     []                           [] []          |
+     bfd                |                                     []          |
+     bibshelf           |        []  []                       []          |
+     binutils           |                                     []          |
+     bison              |            []  []                               |
+     bison-runtime      |        []  []  []                      []       |
+     bluez-pin          |     [] []  []  []                [] []          |
+     bombono-dvd        |        []                                       |
+     buzztard           |     [] []  []                                   |
+     cflow              |        []  []                                   |
+     clisp              |        []  []     []                []          |
+     coreutils          |     [] []  []                          []       |
+     cpio               |                                                 |
+     cppi               |                                                 |
+     cpplib             |        []  []                       []          |
+     cryptsetup         |            []                                   |
+     dfarc              |        []  []                       []          |
+     dialog             |        []  []                    [] []    []    |
      dico               |                                                 |
-     diffutils          | [] []  []  []                [] []          []  |
-     dink               |    []  []                       []              |
-     doodle             |        []                                       |
-     e2fsprogs          | []     []                       []              |
-     enscript           |    []  []         []                            |
-     exif               | () []  []                                   []  |
-     fetchmail          | [] []  ()  []     []            []              |
-     findutils          | [] []  []                                   []  |
-     flex               |        []                       []          []  |
-     freedink           |    []  []                       []          []  |
-     gas                |                                 []              |
-     gawk               |    []  []                       []              |
-     gcal               |                                 []              |
-     gcc                |        []                       []              |
-     gettext-examples   |        []  []                [] []          []  |
-     gettext-runtime    |    []  []                    [] []          []  |
-     gettext-tools      |        []                       []    []        |
-     gip                |    []  []                       []    []    []  |
-     gjay               |        []                                   []  |
-     gliv               | [] []  []                                   []  |
-     glunarclock        |    []  []                                   []  |
-     gnubiff            |        ()                                       |
-     gnucash            | []     ()  ()     ()            ()          ()  |
-     gnuedu             |    []                           []              |
-     gnulib             |        []                       []          []  |
+     diffutils          |     [] []  []  []                [] []          |
+     dink               |        []  []                       []          |
+     doodle             |            []                                   |
+     e2fsprogs          |     []     []                       []          |
+     enscript           |        []  []         []                        |
+     exif               |     () []  []                                   |
+     fetchmail          |     [] []  ()  []     []            []          |
+     findutils          |     [] []  []                                   |
+     flex               |            []                       []          |
+     freedink           |        []  []                       []          |
+     gas                |                                     []          |
+     gawk               |        []  []                       []          |
+     gcal               |                                     []          |
+     gcc                |            []                       []          |
+     gettext-examples   |            []  []                [] []          |
+     gettext-runtime    |        []  []                    [] []          |
+     gettext-tools      |            []                       []    []    |
+     gip                |        []  []                       []    []    |
+     gjay               |            []                                   |
+     gliv               |     [] []  []                                   |
+     glunarclock        |        []  []                                   |
+     gnubiff            |            ()                                   |
+     gnucash            |     []     ()  ()     ()            ()          |
+     gnuedu             |        []                           []          |
+     gnulib             |            []                       []          |
      gnunet             |                                                 |
-     gnunet-gtk         |    []                                           |
-     gnutls             | []     []                                       |
-     gold               |                                 []          []  |
-     gpe-aerial         | [] []  []                       []          []  |
-     gpe-beam           | [] []  []                       []          []  |
-     gpe-bluetooth      |    []  []                                   []  |
-     gpe-calendar       |    []                                       []  |
-     gpe-clock          | [] []  []                       []          []  |
-     gpe-conf           | [] []  []                                   []  |
-     gpe-contacts       |    []  []                       []          []  |
-     gpe-edit           |    []  []                                   []  |
-     gpe-filemanager    |    []  []                       []          []  |
-     gpe-go             | [] []  []                       []          []  |
-     gpe-login          |    []  []                                   []  |
-     gpe-ownerinfo      | [] []  []                       []          []  |
-     gpe-package        |    []  []                       []          []  |
-     gpe-sketchbook     | [] []  []                       []          []  |
-     gpe-su             | [] []  []                       []          []  |
-     gpe-taskmanager    | [] []  []                       []          []  |
-     gpe-timesheet      | [] []  []                       []          []  |
-     gpe-today          | [] []  []                       []          []  |
-     gpe-todo           |    []  []                       []          []  |
-     gphoto2            | [] []  ()         []            []    []    []  |
-     gprof              |    []  []                       []          []  |
-     gpsdrive           |    []                           [] []           |
-     gramadoir          |    []  []                    []                 |
-     grep               | []                                          []  |
-     grub               |    []  []                                   []  |
-     gsasl              |        []                                   []  |
-     gss                |                                             []  |
-     gst-plugins-bad    | [] []  []                       []    []    []  |
-     gst-plugins-base   | [] []  []                       []    []    []  |
-     gst-plugins-good   | [] []  []  []                   []    []    []  |
-     gst-plugins-ugly   | [] []  []  []                   []    []    []  |
-     gstreamer          | [] []  []                       []    []    []  |
-     gtick              |    []  ()                    []             []  |
-     gtkam              | [] []  ()                    [] []              |
-     gtkorphan          | [] []  []                    []                 |
-     gtkspell           | [] []  []  []                [] []    []    []  |
-     gutenprint         |    []  []         []                        []  |
-     hello              |    []  []                    [] []          []  |
-     help2man           |        []                                   []  |
-     hylafax            |        []                       []              |
-     idutils            |    []  []                                   []  |
-     indent             | [] []  []                    [] [] [] []    []  |
-     iso_15924          |    []      ()                [] []          []  |
-     iso_3166           | [] []  []  ()                [] [] [] ()    []  |
-     iso_3166_2         |            ()                                   |
-     iso_4217           | [] []  []  ()                   [] []       []  |
-     iso_639            | [] []  []  ()                [] []          []  |
-     iso_639_3          |                                                 |
-     jwhois             |                                 []          []  |
-     kbd                | [] []  []  []                   []              |
-     keytouch           |    []  []                                   []  |
-     keytouch-editor    |    []  []                                   []  |
-     keytouch-keyboa... |    []                                       []  |
-     klavaro            | [] []  []                    []                 |
-     latrine            |    []  ()                                   []  |
-     ld                 |    []                           []          []  |
-     leafpad            | [] []  []  []                   []    []    []  |
-     libc               | [] []  []                       []          []  |
-     libexif            |    []  []         ()                            |
+     gnunet-gtk         |        []                                       |
+     gnutls             |     []     []                                   |
+     gold               |                                     []          |
+     gpe-aerial         |     [] []  []                       []          |
+     gpe-beam           |     [] []  []                       []          |
+     gpe-bluetooth      |        []  []                                   |
+     gpe-calendar       |        []                                       |
+     gpe-clock          |     [] []  []                       []          |
+     gpe-conf           |     [] []  []                                   |
+     gpe-contacts       |        []  []                       []          |
+     gpe-edit           |        []  []                                   |
+     gpe-filemanager    |        []  []                       []          |
+     gpe-go             |     [] []  []                       []          |
+     gpe-login          |        []  []                                   |
+     gpe-ownerinfo      |     [] []  []                       []          |
+     gpe-package        |        []  []                       []          |
+     gpe-sketchbook     |     [] []  []                       []          |
+     gpe-su             |     [] []  []                       []          |
+     gpe-taskmanager    |     [] []  []                       []          |
+     gpe-timesheet      |     [] []  []                       []          |
+     gpe-today          |     [] []  []                       []          |
+     gpe-todo           |        []  []                       []          |
+     gphoto2            |     [] []  ()         []            []    []    |
+     gprof              |        []  []                       []          |
+     gpsdrive           |        []                           [] []       |
+     gramadoir          |        []  []                    []             |
+     grep               |     []                                          |
+     grub               |        []  []                                   |
+     gsasl              |            []                                   |
+     gss                |                                                 |
+     gst-plugins-bad    |     [] []  []                       []    []    |
+     gst-plugins-base   |     [] []  []                       []    []    |
+     gst-plugins-good   |     [] []  []  []                   []    []    |
+     gst-plugins-ugly   |     [] []  []  []                   []    []    |
+     gstreamer          |     [] []  []                       []    []    |
+     gtick              |        []  ()                    []             |
+     gtkam              |     [] []  ()                    [] []          |
+     gtkorphan          |     [] []  []                    []             |
+     gtkspell           |     [] []  []  []                [] []    []    |
+     gutenprint         |        []  []         []                        |
+     hello              |        []  []                    [] []          |
+     help2man           |            []                                   |
+     hylafax            |            []                       []          |
+     idutils            |        []  []                                   |
+     indent             |     [] []  []                    [] [] [] []    |
+     iso_15924          |        []      ()                [] []          |
+     iso_3166           | []  [] []  []  ()                [] [] [] ()    |
+     iso_3166_2         |                ()                               |
+     iso_4217           |     [] []  []  ()                   [] []       |
+     iso_639            | []  [] []  []  ()                [] []          |
+     iso_639_3          | []                                              |
+     jwhois             |                                     []          |
+     kbd                |     [] []  []  []                   []          |
+     keytouch           |        []  []                                   |
+     keytouch-editor    |        []  []                                   |
+     keytouch-keyboa... |        []                                       |
+     klavaro            |     [] []  []                    []             |
+     latrine            |        []  ()                                   |
+     ld                 |        []                           []          |
+     leafpad            |     [] []  []  []                   []    []    |
+     libc               |     [] []  []                       []          |
+     libexif            |        []  []         ()                        |
      libextractor       |                                                 |
-     libgnutls          | []                                              |
-     libgpewidget       |    []  []                                   []  |
-     libgpg-error       | []     []                                       |
-     libgphoto2         |    []  ()                                       |
-     libgphoto2_port    |    []  ()                             []        |
-     libgsasl           |                                             []  |
-     libiconv           | [] []  []                    []    []       []  |
-     libidn             | []     []                    []             []  |
-     lifelines          |    []  ()                                       |
-     liferea            | []     []  []                   []    []        |
-     lilypond           | []     []                       []          []  |
-     linkdr             |    []  []                       []          []  |
-     lordsawar          |    []                                           |
+     libgnutls          |     []                                          |
+     libgpewidget       |        []  []                                   |
+     libgpg-error       |     []     []                                   |
+     libgphoto2         |        []  ()                                   |
+     libgphoto2_port    |        []  ()                             []    |
+     libgsasl           |                                                 |
+     libiconv           |     [] []  []                    []    []       |
+     libidn             |     []     []                    []             |
+     lifelines          |        []  ()                                   |
+     liferea            |     []     []  []                   []    []    |
+     lilypond           |     []     []                       []          |
+     linkdr             |        []  []                       []          |
+     lordsawar          |        []                                       |
      lprng              |                                                 |
-     lynx               | [] []  []                          []           |
-     m4                 | [] []  []  []                               []  |
+     lynx               |     [] []  []                          []       |
+     m4                 |     [] []  []  []                               |
      mailfromd          |                                                 |
-     mailutils          |                                 []              |
-     make               |    []  []                       []          []  |
+     mailutils          |                                     []          |
+     make               |        []  []                       []          |
      man-db             |                                                 |
      man-db-manpages    |                                                 |
-     minicom            | [] []  []                       []          []  |
-     mkisofs            |                                             []  |
+     minicom            |     [] []  []                       []          |
+     mkisofs            |                                                 |
      myserver           |                                                 |
-     nano               |        []                       []    []    []  |
-     opcodes            |        []                       []          []  |
-     parted             | []     []                                       |
+     nano               |            []                       []    []    |
+     opcodes            |            []                       []          |
+     parted             |     []     []                                   |
      pies               |                                                 |
-     popt               | [] []  []                    [] []          []  |
-     psmisc             | []     []                             []    []  |
-     pspp               |                                 []              |
-     pwdutils           |    []                                           |
-     radius             |                                 []              |
-     recode             | [] []  []  []                [] []          []  |
-     rosegarden         | ()     ()                       ()          ()  |
-     rpm                |    []  []                       []              |
+     popt               |     [] []  []                    [] []          |
+     psmisc             |     []     []                             []    |
+     pspp               |                                     []          |
+     pwdutils           |        []                                       |
+     radius             |                                     []          |
+     recode             |     [] []  []  []                [] []          |
+     rosegarden         |     ()     ()                       ()          |
+     rpm                |        []  []                       []          |
      rush               |                                                 |
      sarg               |                                                 |
      screem             |                                                 |
-     scrollkeeper       | [] []  []         []            []          []  |
-     sed                | []     []  []                [] [] []       []  |
-     sharutils          |    []  []                       [] []       []  |
+     scrollkeeper       |     [] []  []         []            []          |
+     sed                |     []     []  []                [] [] []       |
+     sharutils          |        []  []                       [] []       |
      shishi             |                                                 |
-     skencil            |    []  ()                       []              |
-     solfege            |        []                    []    []       []  |
-     solfege-manual     |                              []    []           |
-     soundtracker       |    []  []                       []              |
-     sp                 |        []                                       |
-     sysstat            |    []  []                             []    []  |
-     tar                | []     []                          [] []    []  |
-     texinfo            |        []                    [] []              |
-     tin                |        []                          []           |
+     skencil            |        []  ()                       []          |
+     solfege            |            []                    []    []       |
+     solfege-manual     |                                  []    []       |
+     soundtracker       |        []  []                       []          |
+     sp                 |            []                                   |
+     sysstat            |        []  []                             []    |
+     tar                |     []     []                          [] []    |
+     texinfo            |            []                    [] []          |
+     tin                |            []                          []       |
      unicode-han-tra... |                                                 |
      unicode-transla... |                                                 |
-     util-linux-ng      | [] []  []                       []          []  |
-     vice               |    ()  ()                                       |
-     vmm                |        []                                       |
-     vorbis-tools       | []                           []                 |
-     wastesedge         |    []                                           |
-     wdiff              |        []                       []          []  |
-     wget               | []     []                          []       []  |
-     wyslij-po          |                                             []  |
-     xchat              | []     []  []                   [] []       []  |
-     xdg-user-dirs      | [] []  []  []                [] [] [] []    []  |
-     xkeyboard-config   | [] []  []                    [] []          []  |
+     util-linux-ng      |     [] []  []                       []          |
+     vice               |        ()  ()                                   |
+     vmm                |            []                                   |
+     vorbis-tools       |     []                           []             |
+     wastesedge         |        []                                       |
+     wdiff              |            []                       []          |
+     wget               |     []     []                          []       |
+     wyslij-po          |                                                 |
+     xchat              |     []     []  []                   [] []       |
+     xdg-user-dirs      | []  [] []  []  []                [] [] [] []    |
+     xkeyboard-config   | []  [] []  []                    [] []          |
                         +-------------------------------------------------+
-                          cs da  de  el en en_GB en_ZA eo es et eu fa fi
-                          64 105 117 18  1   8     0   28 89 18 19  0 104
+                          crh cs da  de  el en en_GB en_ZA eo es et eu fa
+                           5  64 105 117 18  1   8     0   28 89 18 19  0
 
-                          fr  ga gl gu he hi hr hu hy id  is it ja ka kn
-                        +------------------------------------------------+
-     a2ps               | []                          []        []       |
-     aegis              | []                                 []          |
-     ant-phone          | []                                 []          |
-     anubis             | []                          []     []          |
-     aspell             | []  []                      []     []          |
-     bash               | []                          []        []       |
-     bfd                | []                          []                 |
-     bibshelf           | []  []                      []     []          |
-     binutils           | []                          []                 |
-     bison              | []  []                      []                 |
-     bison-runtime      | []  []                      []     [] []       |
-     bluez-pin          | []  []                [] [] []  []    []       |
-     bombono-dvd        |                                                |
-     buzztard           |                             []                 |
-     cflow              |     []                      []                 |
-     clisp              | []                                             |
-     coreutils          | []  []                []    []     []          |
-     cpio               | []  []                      []                 |
-     cppi               | []                                             |
-     cpplib             | []                          []                 |
-     cryptsetup         | []                          []     []          |
-     dfarc              | []                                 []          |
-     dialog             | []  [] []                   []  [] [] []       |
-     dico               |                                                |
-     diffutils          | []  [] []    []       []    []     [] []       |
-     dink               | []                                             |
-     doodle             |     []                             []          |
-     e2fsprogs          | []                          []                 |
-     enscript           | []  []             []       []                 |
-     exif               | []                          []  [] [] []       |
-     fetchmail          | []                          []     [] []       |
-     findutils          | []  []                []    []     []          |
-     flex               | []  []                                         |
-     freedink           | []                          []                 |
-     gas                | []                          []                 |
-     gawk               | []  []       []             []     () []       |
-     gcal               | []                                             |
-     gcc                |                             []                 |
-     gettext-examples   | []  []                []    []     [] []       |
-     gettext-runtime    | []  []                      []     [] []       |
-     gettext-tools      | []                          []     [] []       |
-     gip                | []  [] []                   []        []       |
-     gjay               |                                                |
-     gliv               | ()                                             |
-     glunarclock        |     []                []    []                 |
-     gnubiff            | ()                          []     ()          |
-     gnucash            | ()           ()       ()           () []       |
-     gnuedu             | []                                 []          |
-     gnulib             | []  []                []           [] []       |
-     gnunet             |                                                |
-     gnunet-gtk         | []                                             |
-     gnutls             | []                                 []          |
-     gold               |                             []                 |
-     gpe-aerial         | []                          []                 |
-     gpe-beam           | []                          []        []       |
-     gpe-bluetooth      |                             []     [] []       |
-     gpe-calendar       |                                       []       |
-     gpe-clock          | []                    []    []        []       |
-     gpe-conf           | []                          []        []       |
-     gpe-contacts       | []                          []        []       |
-     gpe-edit           |                             []        []       |
-     gpe-filemanager    |                       []    []        []       |
-     gpe-go             | []                    []    []        []       |
-     gpe-login          |                             []        []       |
-     gpe-ownerinfo      | []                    []    []        []       |
-     gpe-package        |                             []        []       |
-     gpe-sketchbook     | []                          []        []       |
-     gpe-su             | []     []             []    []        []       |
-     gpe-taskmanager    | []                    []    []        []       |
-     gpe-timesheet      | []  []                      []        []       |
-     gpe-today          | []  [] []             []    []        []       |
-     gpe-todo           |                             []        []       |
-     gphoto2            | []                    []    []     [] []       |
-     gprof              | []  []                      []                 |
-     gpsdrive           |        []                   []     []          |
-     gramadoir          | []  []                      []                 |
-     grep               |                                    []          |
-     grub               |                       []    []     []          |
-     gsasl              | []  []                      []     []          |
-     gss                | []  []                      []     []          |
-     gst-plugins-bad    | []                    []    []     []          |
-     gst-plugins-base   | []                    []    []     [] []       |
-     gst-plugins-good   | []                    []    []     [] []       |
-     gst-plugins-ugly   | []                    []    []     [] []       |
-     gstreamer          | []                    []    []     []          |
-     gtick              | []  []                      []     []          |
-     gtkam              | []                    []    []     [] []       |
-     gtkorphan          | []                          []     []          |
-     gtkspell           | []  [] []             [] [] []     [] []       |
-     gutenprint         | []                    []           []          |
-     hello              |     []                      []                 |
-     help2man           | []                                             |
-     hylafax            |                             []                 |
-     idutils            | []  []                []    []     []          |
-     indent             | []  [] []             []    []     [] []       |
-     iso_15924          | ()                          []     []          |
-     iso_3166           | ()  [] [] [] [] [] [] []    []     [] []       |
-     iso_3166_2         | ()                    []    []     []          |
-     iso_4217           | ()                    []    []     [] []       |
-     iso_639            | ()  []    []          []    []     [] []    [] |
-     iso_639_3          | ()                                 []       [] |
-     jwhois             | []                    []    []     []          |
-     kbd                | []                          []                 |
-     keytouch           | []  []                []    []     []          |
-     keytouch-editor    |     []                []    []     []          |
-     keytouch-keyboa... |     []                []    []     []          |
-     klavaro            |        []             []                       |
-     latrine            |                             []     []          |
-     ld                 | []  []                      []                 |
-     leafpad            | []  []       []       []    []     [] ()       |
-     libc               | []     []                   []        []       |
-     libexif            |                                                |
-     libextractor       |                                                |
-     libgnutls          | []                                 []          |
-     libgpewidget       |     []                      []        []       |
-     libgpg-error       | []                                 []          |
-     libgphoto2         | []                                 [] []       |
-     libgphoto2_port    | []                                 [] []       |
-     libgsasl           | []  []                      []     []          |
-     libiconv           | []  []                      []     [] []       |
-     libidn             | []                          []     []          |
-     lifelines          | ()                                             |
-     liferea            | []                    []           [] []       |
-     lilypond           | []                                             |
-     linkdr             |              []    [] []           []          |
-     lordsawar          |                                                |
-     lprng              |                             []                 |
-     lynx               | []                    []    []     [] []       |
-     m4                 | []  [] []                   []        []       |
-     mailfromd          |                                                |
-     mailutils          | []                          []                 |
-     make               | []  [] []    []    []       []     [] []       |
-     man-db             |                             []     []          |
-     man-db-manpages    |                             []                 |
-     minicom            | []                    []    []        []       |
-     mkisofs            | []                          []     []          |
-     myserver           |                                                |
-     nano               | []  [] []             []           []          |
-     opcodes            | []  []                      []                 |
-     parted             | []                          []     [] []       |
-     pies               |                                                |
-     popt               | []  [] []             []    []  [] [] []       |
-     psmisc             | []                          []                 |
-     pspp               |                                                |
-     pwdutils           | []                          []                 |
-     radius             | []                          []                 |
-     recode             | []  [] []    []       []    []     []          |
-     rosegarden         | ()                          ()     () ()       |
-     rpm                |                             []        []       |
-     rush               |                                                |
-     sarg               | []                                             |
-     screem             |                                    [] []       |
-     scrollkeeper       |                       []    []     []          |
-     sed                | []  [] []             []    []     [] []       |
-     sharutils          | []  []                []    []     [] []       |
-     shishi             | []                                             |
-     skencil            | []                                             |
-     solfege            | []     []                          []          |
-     solfege-manual     | []     []                                      |
-     soundtracker       | []                                 []          |
-     sp                 | []                                    ()       |
-     sysstat            | []                          []     [] []       |
-     tar                | []  []                []    []     [] []       |
-     texinfo            | []                          []     [] []       |
-     tin                | []                                             |
-     unicode-han-tra... |                                                |
-     unicode-transla... | []  []                                         |
-     util-linux-ng      | []                    []    []     [] []       |
-     vice               | ()                    ()           ()          |
-     vmm                | []                                             |
-     vorbis-tools       |                             []                 |
-     wastesedge         | ()                                 ()          |
-     wdiff              |                                                |
-     wget               | []  []             [] []    []     [] []       |
-     wyslij-po          | []                          []                 |
-     xchat              | []        []    []    []    []     [] []    [] |
-     xdg-user-dirs      | []  [] [] [] []       []    []  [] [] []    [] |
-     xkeyboard-config   | []                    []    []     []          |
-                        +------------------------------------------------+
-                          fr  ga gl gu he hi hr hu hy id  is it ja ka kn
-                          121 53 20  4  8  2  5 53  2 120  5 83 66  0  4
+                          fi  fr  ga gl gu he hi hr hu hy id  is it ja ka kn
+                        +----------------------------------------------------+
+     a2ps               | []  []                          []        []       |
+     aegis              |     []                                 []          |
+     ant-phone          |     []                                 []          |
+     anubis             | []  []                          []     []          |
+     aspell             |     []  []                      []     []          |
+     bash               | []  []                          []        []       |
+     bfd                | []  []                          []                 |
+     bibshelf           | []  []  []                      []     []          |
+     binutils           | []  []                          []                 |
+     bison              | []  []  []                      []                 |
+     bison-runtime      | []  []  []                      []     [] []       |
+     bluez-pin          | []  []  []                [] [] []  []    []       |
+     bombono-dvd        | []                                                 |
+     buzztard           |                                 []                 |
+     cflow              | []      []                      []                 |
+     clisp              |     []                                             |
+     coreutils          |     []  []                []    []     []          |
+     cpio               | []  []  []                      []                 |
+     cppi               | []  []                                             |
+     cpplib             | []  []                          []                 |
+     cryptsetup         |     []                          []     []          |
+     dfarc              | []  []                                 []          |
+     dialog             |     []  [] []                   []  [] [] []       |
+     dico               |                                                    |
+     diffutils          | []  []  [] []    []       []    []     [] []       |
+     dink               |     []                                             |
+     doodle             |         []                             []          |
+     e2fsprogs          |     []                          []                 |
+     enscript           |     []  []             []       []                 |
+     exif               | []  []                          []  [] [] []       |
+     fetchmail          |     []                          []     [] []       |
+     findutils          | []  []  []                []    []     []          |
+     flex               | []  []  []                                         |
+     freedink           | []  []                          []                 |
+     gas                |     []                          []                 |
+     gawk               |     []  []       []             []     () []       |
+     gcal               |     []                                             |
+     gcc                |                                 []                 |
+     gettext-examples   | []  []  []                []    []     [] []       |
+     gettext-runtime    | []  []  []                      []     [] []       |
+     gettext-tools      |     []                          []     [] []       |
+     gip                | []  []  [] []                   []        []       |
+     gjay               | []                                                 |
+     gliv               | []  ()                                             |
+     glunarclock        | []      []                []    []                 |
+     gnubiff            |     ()                          []     ()          |
+     gnucash            | ()  ()           ()       ()           () []       |
+     gnuedu             |     []                                 []          |
+     gnulib             | []  []  []                []           [] []       |
+     gnunet             |                                                    |
+     gnunet-gtk         |     []                                             |
+     gnutls             |     []                                 []          |
+     gold               | []                              []                 |
+     gpe-aerial         | []  []                          []                 |
+     gpe-beam           | []  []                          []        []       |
+     gpe-bluetooth      | []                              []     [] []       |
+     gpe-calendar       | []                                        []       |
+     gpe-clock          | []  []                    []    []        []       |
+     gpe-conf           | []  []                          []        []       |
+     gpe-contacts       | []  []                          []        []       |
+     gpe-edit           | []                              []        []       |
+     gpe-filemanager    | []                        []    []        []       |
+     gpe-go             | []  []                    []    []        []       |
+     gpe-login          | []                              []        []       |
+     gpe-ownerinfo      | []  []                    []    []        []       |
+     gpe-package        | []                              []        []       |
+     gpe-sketchbook     | []  []                          []        []       |
+     gpe-su             | []  []     []             []    []        []       |
+     gpe-taskmanager    | []  []                    []    []        []       |
+     gpe-timesheet      | []  []  []                      []        []       |
+     gpe-today          | []  []  [] []             []    []        []       |
+     gpe-todo           | []                              []        []       |
+     gphoto2            | []  []                    []    []     [] []       |
+     gprof              | []  []  []                      []                 |
+     gpsdrive           |            []                   []     []          |
+     gramadoir          |     []  []                      []                 |
+     grep               | []                                     []          |
+     grub               | []                        []    []     []          |
+     gsasl              | []  []  []                      []     []          |
+     gss                | []  []  []                      []     []          |
+     gst-plugins-bad    | []  []                    []    []     [] []       |
+     gst-plugins-base   | []  []                    []    []     [] []       |
+     gst-plugins-good   | []  []                    []    []     [] []       |
+     gst-plugins-ugly   | []  []                    []    []     [] []       |
+     gstreamer          | []  []                    []    []     []          |
+     gtick              | []  []  []                      []     []          |
+     gtkam              |     []                    []    []     [] []       |
+     gtkorphan          |     []                          []     []          |
+     gtkspell           | []  []  [] []             [] [] []     [] []       |
+     gutenprint         | []  []                    []           []          |
+     hello              | []      []                      []                 |
+     help2man           | []  []                                             |
+     hylafax            |                                 []                 |
+     idutils            | []  []  []                []    []     []          |
+     indent             | []  []  [] []             []    []     [] []       |
+     iso_15924          | []  ()                          []     []          |
+     iso_3166           | []  ()  [] [] [] [] [] [] []    []     [] []       |
+     iso_3166_2         |     ()                    []    []     []          |
+     iso_4217           | []  ()                    []    []     [] []       |
+     iso_639            | []  ()  []    []          []    []     [] []    [] |
+     iso_639_3          |     ()                                 []       [] |
+     jwhois             | []  []                    []    []     []          |
+     kbd                |     []                          []                 |
+     keytouch           | []  []  []                []    []     []          |
+     keytouch-editor    | []      []                []    []     []          |
+     keytouch-keyboa... | []      []                []    []     []          |
+     klavaro            |            []             []                       |
+     latrine            | []                              []     []          |
+     ld                 | []  []  []                      []                 |
+     leafpad            | []  []  []       []       []    []     [] ()       |
+     libc               | []  []     []                   []        []       |
+     libexif            |                                        []          |
+     libextractor       |                                                    |
+     libgnutls          |     []                                 []          |
+     libgpewidget       | []      []                      []        []       |
+     libgpg-error       |     []                                 []          |
+     libgphoto2         |     []                                 [] []       |
+     libgphoto2_port    |     []                                 [] []       |
+     libgsasl           | []  []  []                      []     []          |
+     libiconv           | []  []  []                      []     [] []       |
+     libidn             | []  []                          []     []          |
+     lifelines          |     ()                                             |
+     liferea            |     []                    []           [] []       |
+     lilypond           | []  []                                             |
+     linkdr             | []               []    [] []           []          |
+     lordsawar          |                                                    |
+     lprng              |                                 []                 |
+     lynx               |     []                    []    []     [] []       |
+     m4                 | []  []  [] []                   []        []       |
+     mailfromd          |                                                    |
+     mailutils          |     []                          []                 |
+     make               | []  []  [] []    []    []       []     [] []       |
+     man-db             |                                 []     []          |
+     man-db-manpages    |                                 []                 |
+     minicom            | []  []                    []    []        []       |
+     mkisofs            | []  []                          []     []          |
+     myserver           |                                                    |
+     nano               | []  []  [] []             []           []          |
+     opcodes            | []  []  []                      []                 |
+     parted             |     []                          []     [] []       |
+     pies               |                                                    |
+     popt               | []  []  [] []             []    []  [] [] []       |
+     psmisc             | []  []                          []                 |
+     pspp               |                                                    |
+     pwdutils           |     []                          []                 |
+     radius             |     []                          []                 |
+     recode             | []  []  [] []    []       []    []     []          |
+     rosegarden         | ()  ()                          ()     () ()       |
+     rpm                |                                 []        []       |
+     rush               |                                                    |
+     sarg               |     []                                             |
+     screem             |                                        [] []       |
+     scrollkeeper       | []                        []    []     []          |
+     sed                | []  []  [] []             []    []     [] []       |
+     sharutils          | []  []  []                []    []     [] []       |
+     shishi             |     []                                             |
+     skencil            |     []                                             |
+     solfege            | []  []     []                          []          |
+     solfege-manual     |     []     []                                      |
+     soundtracker       |     []                                 []          |
+     sp                 |     []                                    ()       |
+     sysstat            | []  []                          []     [] []       |
+     tar                | []  []  []                []    []     [] []       |
+     texinfo            |     []                          []     [] []       |
+     tin                |     []                                             |
+     unicode-han-tra... |                                                    |
+     unicode-transla... |     []  []                                         |
+     util-linux-ng      | []  []                    []    []     [] []       |
+     vice               |     ()                    ()           ()          |
+     vmm                |     []                                             |
+     vorbis-tools       |                                 []                 |
+     wastesedge         |     ()                                 ()          |
+     wdiff              | []                                                 |
+     wget               | []  []  []             [] []    []     [] []       |
+     wyslij-po          | []  []                          []                 |
+     xchat              | []  []        []    []    []    []     [] []    [] |
+     xdg-user-dirs      | []  []  [] [] [] [] []    []    []  [] [] []    [] |
+     xkeyboard-config   | []  []                    []    []     []          |
+                        +----------------------------------------------------+
+                          fi  fr  ga gl gu he hi hr hu hy id  is it ja ka kn
+                          105 121 53 20  4  8  3  5 53  2 120  5 84 67  0  4
 
                           ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
                         +-----------------------------------------------+
@@ -820,7 +775,7 @@
      grub               |                                               |
      gsasl              |                                               |
      gss                |                                               |
-     gst-plugins-bad    |                []                []           |
+     gst-plugins-bad    |             [] []                [] []        |
      gst-plugins-base   |             [] []                             |
      gst-plugins-good   |                []                []           |
      gst-plugins-ugly   |             [] []             [] [] []        |
@@ -920,7 +875,7 @@
      xkeyboard-config   | []    []    []                                |
                         +-----------------------------------------------+
                           ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
-                          20  5 10  1 12 48  4  2  2  4 24 10 19  3   1
+                          20  5 10  1 13 48  4  2  2  4 24 10 20  3   1
 
                           nl  nn or pa pl  ps pt pt_BR ro ru rw sk sl sq sr
                         +---------------------------------------------------+
@@ -1004,7 +959,7 @@
      grub               | []           []                 []                |
      gsasl              | []           []                       []       [] |
      gss                |              []              []       []          |
-     gst-plugins-bad    | []           []         []      []    []          |
+     gst-plugins-bad    | []           []         []      []    []    []    |
      gst-plugins-base   | []           []         []      []    []          |
      gst-plugins-good   | []           []         []      []    []          |
      gst-plugins-ugly   | []           []         []      []    [] []       |
@@ -1041,7 +996,7 @@
      libgpewidget       | []           []                          []       |
      libgpg-error       |              []              []                   |
      libgphoto2         | []           []                                   |
-     libgphoto2_port    | []           []                 []    []          |
+     libgphoto2_port    | []           []         []      []    []          |
      libgsasl           | []           []              []       []       [] |
      libiconv           | []           []                       [] []    [] |
      libidn             | []           []                                   |
@@ -1101,10 +1056,10 @@
      wyslij-po          | []  []       []                                   |
      xchat              | []        [] []     []          []    [] [] [] [] |
      xdg-user-dirs      | []  [] [] [] []  [] []  []   [] []    [] [] [] [] |
-     xkeyboard-config   | []           []                 []    [] []       |
+     xkeyboard-config   | []           []                 []                |
                         +---------------------------------------------------+
                           nl  nn or pa pl  ps pt pt_BR ro ru rw sk sl sq sr
-                          135 10  4  7 105  1 29  61   47 91  3 55 47  8 37
+                          135 10  4  7 105  1 29  62   47 91  3 54 46  9 37
 
                           sv  sw ta te tg th tr uk vi  wa zh_CN zh_HK zh_TW
                         +---------------------------------------------------+
@@ -1113,7 +1068,7 @@
      ant-phone          | []                 []    []      []               |  9
      anubis             | []                 [] [] []                       | 15
      aspell             |                       [] []  []                   | 20
-     bash               | []                       []                       | 11
+     bash               | []                    [] []                       | 12
      bfd                |                          []                       |  6
      bibshelf           | []                       []      []               | 16
      binutils           |                       [] []                       |  8
@@ -1127,7 +1082,7 @@
      coreutils          | []                    [] []      []               | 22
      cpio               | []                 [] [] []      []          []   | 13
      cppi               |                       [] []                       |  5
-     cpplib             | []                 [] [] []      []          []   | 13
+     cpplib             | []                 [] [] []      []          []   | 14
      cryptsetup         | []                       []                       |  7
      dfarc              |                          []                       |  9
      dialog             | []  []          []       []  []  []          []   | 30
@@ -1147,14 +1102,14 @@
      gcal               | []                 []                             |  5
      gcc                | []                 []            []               |  7
      gettext-examples   | []                 [] [] []      []    []    []   | 34
-     gettext-runtime    | []                 [] [] []      []    []    []   | 30
+     gettext-runtime    | []                 [] [] []      []    []    []   | 29
      gettext-tools      | []                 [] [] []      []          []   | 22
      gip                | []                       []      []          []   | 22
      gjay               |                          []                       |  3
      gliv               | []                 []    []                       | 14
      glunarclock        | []                       []  []  []          []   | 19
      gnubiff            | []                       []                       |  4
-     gnucash            |                    () [] ()                  ()   |  9
+     gnucash            |                    () [] ()      []          ()   | 10
      gnuedu             |                          []                  []   |  7
      gnulib             | []                    [] []      []               | 16
      gnunet             |                          []                       |  1
@@ -1188,9 +1143,9 @@
      grub               | []                       []      []               | 14
      gsasl              | []                       []      []          []   | 14
      gss                | []                       []      []               | 11
-     gst-plugins-bad    | []                 []    []      []               | 22
+     gst-plugins-bad    | []                 []    []      []               | 26
      gst-plugins-base   | []                 [] [] []      []               | 24
-     gst-plugins-good   | []                 [] [] []      []               | 25
+     gst-plugins-good   | []                 []    []      []               | 24
      gst-plugins-ugly   | []                 [] [] []      []               | 29
      gstreamer          | []                    [] []      []               | 22
      gtick              |                       [] []      []               | 13
@@ -1219,13 +1174,13 @@
      ld                 | []                 []    []                  []   | 11
      leafpad            | []                 [] [] []      []          []   | 33
      libc               | []                 []    []      []          []   | 21
-     libexif            |                          []      ()               |  6
+     libexif            |                          []      ()               |  7
      libextractor       |                          []                       |  1
      libgnutls          | []                       []      []               |  9
      libgpewidget       | []                       []      []               | 14
      libgpg-error       | []                       []      []               |  9
      libgphoto2         |                       [] []                       |  8
-     libgphoto2_port    | []                    [] []                  []   | 13
+     libgphoto2_port    | []                    [] []                  []   | 14
      libgsasl           | []                       []      []               | 13
      libiconv           | []                       []  []  []               | 21
      libidn             | ()                       []      []               | 11
@@ -1271,7 +1226,7 @@
      sp                 |                    []                             |  3
      sysstat            |                          []      []               | 15
      tar                | []                 [] [] []      []          []   | 23
-     texinfo            | []                 []    []      []               | 16
+     texinfo            | []                 [] [] []      []               | 17
      tin                |                                                   |  4
      unicode-han-tra... |                                                   |  0
      unicode-transla... |                                                   |  2
@@ -1284,11 +1239,11 @@
      wget               | []                 []    []      []          []   | 26
      wyslij-po          |                       [] []                       |  8
      xchat              | []              []    [] []      []          []   | 36
-     xdg-user-dirs      | []     []       [] [] [] []      []    []    []   | 60
-     xkeyboard-config   | []                 [] [] []                       | 25
+     xdg-user-dirs      | []     [] []    [] [] [] []      []    []    []   | 63
+     xkeyboard-config   | []                    [] []                       | 22
                         +---------------------------------------------------+
-       84 teams           sv  sw ta te tg th tr uk vi  wa zh_CN zh_HK zh_TW
-      178 domains         119  1  3  2  0 10 66 50 155 17  97     7    41    2610
+       85 teams           sv  sw ta te tg th tr uk vi  wa zh_CN zh_HK zh_TW
+      178 domains         119  1  3  3  0 10 65 51 155 17  98     7    41    2618
 
    Some counters in the preceding matrix are higher than the number of
 visible blocks let us expect.  This is because a few extra PO files are
@@ -1301,12 +1256,12 @@
 lag between the mere existence a PO file and its wide availability in a
 distribution.
 
-   If May 2010 seems to be old, you may fetch a more recent copy of
+   If June 2010 seems to be old, you may fetch a more recent copy of
 this `ABOUT-NLS' file on most GNU archive sites.  The most up-to-date
 matrix with full percentage details can be found at
 `http://translationproject.org/extra/matrix.html'.
 
-1.6 Using `gettext' in new packages
+1.5 Using `gettext' in new packages
 ===================================
 
 If you are writing a freely available program and want to
diff --git a/AUTHORS b/AUTHORS
index 806b144..63946aa 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -24,7 +24,7 @@
 
 -----
 
-Copyright (C) 1998-2012 Free Software Foundation, Inc.
+Copyright (C) 1998-2015, 2018-2019 Free Software Foundation, Inc.
 
 This file is part of Bison, the GNU Compiler Compiler.
 
diff --git a/Android.bp b/Android.bp
index ee4a1f3..19965bf 100644
--- a/Android.bp
+++ b/Android.bp
@@ -17,7 +17,9 @@
 
     cflags: [
         "-Wall",
-        "-Wno-sign-compare",
+        "-Werror",
+
+        "-DEXEEXT=\"\"",
     ],
 
     target: {
@@ -26,186 +28,43 @@
                 "darwin-lib",
                 "lib",
             ],
-            cflags: ["-Wno-shift-count-overflow"],
         },
         linux: {
             local_include_dirs: [
                 "linux-lib",
                 "lib",
             ],
-            cflags: ["-Werror"],
         },
     },
 }
 
 cc_library_host_static {
     name: "libbison",
-    defaults: ["bison_defaults"],
-
-    srcs: [
-        "lib/abitset.c",
-        "lib/argmatch.c",
-        "lib/asnprintf.c",
-        "lib/basename-lgpl.c",
-        "lib/basename.c",
-        "lib/binary-io.c",
-        "lib/bitrotate.c",
-        "lib/bitset.c",
-        "lib/bitset_stats.c",
-        "lib/bitsetv-print.c",
-        "lib/bitsetv.c",
-        "lib/c-ctype.c",
-        "lib/c-strcasecmp.c",
-        "lib/c-strncasecmp.c",
-        "lib/cloexec.c",
-        "lib/close-stream.c",
-        "lib/closeout.c",
-        "lib/dirname-lgpl.c",
-        "lib/dirname.c",
-        "lib/dup-safer-flag.c",
-        "lib/dup-safer.c",
-        "lib/ebitset.c",
-        "lib/exitfail.c",
-        "lib/fatal-signal.c",
-        "lib/fd-hook.c",
-        "lib/fd-safer-flag.c",
-        "lib/fd-safer.c",
-        "lib/fopen-safer.c",
-        "lib/fprintf.c",
-        "lib/fseterr.c",
-        "lib/get-errno.c",
-        "lib/hash.c",
-        "lib/isnand.c",
-        "lib/isnanf.c",
-        "lib/isnanl.c",
-        "lib/lbitset.c",
-        "lib/localcharset.c",
-        "lib/math.c",
-        "lib/mbchar.c",
-        "lib/mbschr.c",
-        "lib/mbsrchr.c",
-        "lib/mbswidth.c",
-        "lib/mbuiter.c",
-        "lib/pipe-safer.c",
-        "lib/pipe2-safer.c",
-        "lib/pipe2.c",
-        "lib/printf-args.c",
-        "lib/printf-frexp.c",
-        "lib/printf-frexpl.c",
-        "lib/printf-parse.c",
-        "lib/printf.c",
-        "lib/progname.c",
-        "lib/quotearg.c",
-        "lib/sig-handler.c",
-        "lib/snprintf.c",
-        "lib/spawn-pipe.c",
-        "lib/sprintf.c",
-        "lib/stdio.c",
-        "lib/strerror_r.c",
-        "lib/stripslash.c",
-        "lib/strnlen1.c",
-        "lib/timevar.c",
-        "lib/unistd.c",
-        "lib/vasnprintf.c",
-        "lib/vbitset.c",
-        "lib/vfprintf.c",
-        "lib/vsnprintf.c",
-        "lib/vsprintf.c",
-        "lib/wait-process.c",
-        "lib/wctype-h.c",
-        "lib/xalloc-die.c",
-        "lib/xmalloc.c",
-        "lib/xmemdup0.c",
-        "lib/xsize.c",
-        "lib/xstrndup.c",
-        "lib/yyerror.c",
-        "lib/glthread/lock.c",
-        "lib/glthread/threadlib.c",
-        "lib/uniwidth/width.c",
+    defaults: [
+        "bison_defaults",
+        "libbison_linux_defaults",
+        "libbison_darwin_defaults",
     ],
-
-    target: {
-        darwin: {
-            srcs: [
-                "lib/error.c",
-                "lib/fpending.c",
-                "lib/getdelim.c",
-                "lib/getline.c",
-                "lib/getopt.c",
-                "lib/getopt1.c",
-                "lib/obstack.c",
-                "lib/obstack_printf.c",
-                "lib/open.c",
-                "lib/perror.c",
-                "lib/rawmemchr.c",
-                "lib/stat.c",
-                "lib/strchrnul.c",
-                "lib/strerror-override.c",
-                "lib/strerror.c",
-                "lib/strndup.c",
-                "lib/strnlen.c",
-                "lib/strverscmp.c",
-                "lib/wcwidth.c",
-            ],
-        },
-
-        linux: {
-            srcs: ["lib/fcntl.c"],
-        },
-    },
 }
 
 //##########################################
 
 cc_binary_host {
     name: "bison",
-    defaults: ["bison_defaults"],
-
-    cflags: [
-        "-DPKGDATADIR=\"prebuilts/build-tools/common/bison\"",
-
-        "-Wno-sometimes-uninitialized",
-        "-Wno-unused-parameter",
+    defaults: [
+        "bison_defaults",
+        "bison_linux_defaults",
+        "bison_darwin_defaults",
     ],
 
     static_libs: ["libbison"],
 
-    srcs: [
-        "src/AnnotationList.c",
-        "src/InadequacyList.c",
-        "src/LR0.c",
-        "src/Sbitset.c",
-        "src/assoc.c",
-        "src/closure.c",
-        "src/complain.c",
-        "src/conflicts.c",
-        "src/derives.c",
-        "src/files.c",
-        "src/getargs.c",
-        "src/gram.c",
-        "src/graphviz.c",
-        "src/ielr.c",
-        "src/lalr.c",
-        "src/location.c",
-        "src/main.c",
-        "src/muscle-tab.c",
-        "src/named-ref.c",
-        "src/nullable.c",
-        "src/output.c",
-        "src/parse-gram.c",
-        "src/print-xml.c",
-        "src/print.c",
-        "src/print_graph.c",
-        "src/reader.c",
-        "src/reduce.c",
-        "src/relation.c",
-        "src/scan-code-c.c",
-        "src/scan-gram-c.c",
-        "src/scan-skel-c.c",
-        "src/state.c",
-        "src/symlist.c",
-        "src/symtab.c",
-        "src/tables.c",
-        "src/uniqstr.c",
-    ],
+    target: {
+        linux: {
+            cflags: ["-DINSTALLDIR=\"/nonexistent/linux-x86/bin\""],
+        },
+        darwin: {
+            cflags: ["-DINSTALLDIR=\"/nonexistent/darwin-x86/bin\""],
+        },
+    },
 }
diff --git a/ChangeLog b/ChangeLog
index a3cee66..e4200fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15637 @@
+2019-12-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.5
+	* NEWS: Record release date.
+
+2019-12-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	news: prepare for 3.5
+
+2019-12-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.cc: disable warnings from Clang on macOS
+	    $ cat test.cc
+	    #include <stddef.h>
+	    #include <stdint.h>
+
+	    ptrdiff_t half_max_capacity = PTRDIFF_MAX;
+	    $ clang++-mp-9.0 -pedantic -std=c++98 /tmp/test.cc -c
+	    /tmp/test.cc:4:31: warning: 'long long' is a C++11 extension [-Wc++11-long-long]
+	    ptrdiff_t half_max_capacity = PTRDIFF_MAX;
+	                                  ^
+	    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdint.h:149:23:
+	            note: expanded from macro 'PTRDIFF_MAX'
+	    #define PTRDIFF_MAX       INT64_MAX
+	                              ^
+	    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdint.h:75:26:
+	            note: expanded from macro 'INT64_MAX'
+	    #define INT64_MAX        9223372036854775807LL
+	                             ^
+	    1 warning generated.
+
+	* data/skeletons/glr.cc: here.
+
+2019-12-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	api.token.raw: fix it in C++
+	Another breakage revealed by vcsn.
+
+	* data/skeletons/c++.m4 (yytranslate_): Do not hard code "yy" and
+	"parser", both can be changed by the user.
+	Actually, since we are in the parser itself, there's really no need to
+	qualify the type.
+
+2019-12-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: fix comments for %code blocks
+	In a project of mine, vcsn, this commit fixes the following comments.
+
+	    --- /tmp/parse.hh	2019-12-08 15:51:24.792934703 +0100
+	    +++ lib/vcsn/rat/parse.hh	2019-12-08 16:00:59.137107503 +0100
+	    @@ -43,7 +43,7 @@
+
+	     #ifndef YY_YY_USERS_AKIM_SRC_LRDE_2_LIB_VCSN_RAT_PARSE_HH_INCLUDED
+	     # define YY_YY_USERS_AKIM_SRC_LRDE_2_LIB_VCSN_RAT_PARSE_HH_INCLUDED
+	    -// //                    "%code requires" blocks.
+	    +// "%code requires" blocks.
+	     #line 20 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy"
+
+	       #include <iostream>
+	    @@ -1851,7 +1851,7 @@
+
+	    -// //                    "%code provides" blocks.
+	    +// "%code provides" blocks.
+	     #line 60 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy"
+
+	       #define YY_DECL_(Class) \
+
+	* data/skeletons/bison.m4 (b4_percent_code_get): Pass an expanded
+	string to b4_comment.
+
+2019-12-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: pretend we are Bison 3.5
+	* src/parse-gram.y: Accept we're Bison 3.5.
+
+2019-12-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: fix spello
+	* data/skeletons/lalr1.cc: here.
+
+2019-12-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	todo: update
+	* TODO: Schedule some features for 3.6.
+	Remove obsolete stuff.
+
+2019-12-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2019-12-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.4.92
+	* NEWS: Record release date.
+
+2019-12-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	news: fixes
+	Reported by Paul Eggert.
+	https://lists.gnu.org/archive/html/bison-patches/2019-12/msg00014.html
+
+	* NEWS: here.
+
+2019-12-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: minor changes
+	* README-hacking.md: here.
+
+2019-12-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2019-12-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: clearly deprecate YYPRINT
+	* doc/bison.texi (Prologue): Stop using YYPRINT as an example.
+	(The YYPRINT Macro): Clearly show this macro is deprecated.
+
+2019-12-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: formatting changes
+	* doc/bison.texi: here.
+	No change in content.
+
+2019-12-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	news: update
+
+2019-12-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: obey parse.error
+	* data/skeletons/lalr1.d (yysyntax_error): Let the dispatch be
+	bison-time, not runtime.
+
+2019-12-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: also prefer YY_ASSERT to YYASSERT
+	Like the other skeletons.
+
+	* data/skeletons/variant.hh: here.
+
+2019-12-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.c: obey the parse.assert %define variable
+	* data/skeletons/glr.c (YYASSERT): Rename as...
+	(YY_ASSERT): this, for consistency with yacc.c, and also to emphasize
+	the fact that this is not for the end user (YY_ prefix).
+	* tests/glr-regression.at: Define parse.assert.
+
+2019-12-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: beware of short ranges for state numbers
+	Now that we use small integral types, possibly unsigned (e.g.,
+	unsigned char), to store state numbers, using -1 to denote an empty
+	state (i.e., a state that stores no semantical value) is very
+	dangerous: it will be confused with state 255, which might be
+	non-empty.
+
+	Rather than allocating a larger range of state numbers to keep the
+	empty-state apart, let's use the number of a state known to store no
+	value.  The initial state, numbered 0, seems to fit perfectly the job.
+
+	Reported by Frank Heckenbach.
+	https://lists.gnu.org/archive/html/bug-bison/2019-11/msg00016.html
+
+	* data/skeletons/lalr1.cc (empty_state): Be 0.
+
+2019-12-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	api.token.raw: check it against api.token.constructor
+	* tests/scanner.at: here.
+
+2019-12-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-12-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	warnings: enable -Wuseless-cast, and eliminate warnings
+	Prompted by Frank Heckenbach.
+	https://lists.gnu.org/archive/html/bug-bison/2019-11/msg00016.html.
+
+	* configure.ac (warn_cxx): Add -Wuseless-cast.
+	* data/skeletons/c.m4 (b4_attribute_define): Define
+	YY_IGNORE_USELESS_CAST_BEGIN and YY_IGNORE_USELESS_CAST_END.
+	* data/skeletons/glr.c (YY_FPRINTF): New, replaces YYFPRINTF, wrapped
+	with YY_IGNORE_USELESS_CAST_BEGIN and YY_IGNORE_USELESS_CAST_END.
+	(YY_DPRINTF): Likewise.
+	* tests/actions.at: Remove useless cast.
+	* tests/headers.at: Adjust.
+
+2019-12-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: style changes
+	* src/complain.h, src/complain.c: Comment changes.
+	* src/scan-skel.l: Reduce scopes.
+	* data/skeletons/bison.m4: Factor diagnostic functions.
+
+2019-12-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.c: style changes
+	* data/skeletons/glr.c (yysplitStack): Reduce scopes.
+	* tests/atlocal.in: Formatting changes.
+
+2019-12-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: get rid of symbol_type::token ()
+	It is not used.  And its implementation was wrong when api.token.raw
+	was defined, as it was still mapping to the external token numbers,
+	instead of the internal ones.  Besides it was provided only when
+	api.token.constructor is defined, yet always declared.
+
+	* data/skeletons/c++.m4 (by_type::token): Remove, useless.
+
+2019-12-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: remove useless cast about user_token_number_max_
+	Reported by Frank Heckenbach.
+	https://lists.gnu.org/archive/html/bug-bison/2019-11/msg00016.html
+
+	The cast is needed when yytranslate_'s argument type is token_type,
+	i.e., when api.token.constructor is defined.
+
+	    373. types.at:138: testing lalr1.cc api.value.type=variant api.token.constructor ...
+	    ======== Testing with C++ standard flags: ''
+	    ../../tests/types.at:138: bison --color=no -fno-caret  -o test.cc test.y
+	    ../../tests/types.at:138: $CXX $CXXFLAGS $CPPFLAGS  $LDFLAGS -o test test.cc $LIBS
+	    stderr:
+	    test.cc:966:16: error: result of comparison of constant 257 with
+	                    expression of type 'yy::parser::token_type'
+	                   (aka 'yy::parser::token::yytokentype') is always true
+	                   [-Werror,-Wtautological-constant-out-of-range-compare]
+	        else if (t <= user_token_number_max_)
+	                 ~ ^  ~~~~~~~~~~~~~~~~~~~~~~
+	    1 error generated.
+
+	It is because it is expected that when api.token.constructor is
+	defined, only symbol constructors will be used, that yytranslate_ then
+	takes a token_type.  But it is wrong: we still allow literal
+	characters in this case, as demonstrated by test 373 for instance.
+
+	    %define api.value.type variant
+	    %define api.token.constructor
+	    %token <std::pair<int, int>> '1' '2';
+	    [...]
+	    static yy::parser::symbol_type yylex ()
+	    {
+	      static char const input[] = "12";
+	      int res = input[toknum++];
+	      typedef yy::parser::symbol_type symbol;
+	      if (res)
+	        return symbol (res, std::make_pair (res - '0', res - '0' + 1));
+	      else
+	        return symbol (res);
+	    }
+
+	So let yytranslate_ always take an int, which makes the cast truly
+	useless.
+
+	* data/skeletons/c++.m4, data/skeletons/lalr1.cc (yytranslate_): here.
+
+2019-12-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: clean a few issues wrt special tokens
+	The C++ implementation of LAC did not skip the $undefined token,
+	probably because it was not exposed.  Expose it, and use clearer
+	names.
+
+	* data/skeletons/c++.m4: Don't define undef_token_ in yytranslate_,
+	but...
+	* data/skeletons/lalr1.cc (yy_undef_token_): here.
+	Use a more precise type to define yy_undef_token_ and yy_error_token_.
+	Unfortunately we move from a compile-time value defined via an enum to
+	a static const member.  Eventually we should make it constexpr.
+	Make LAC implementation more alike yacc.c's one.
+
+2019-12-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	d, java: improve yytranslate and neighbors
+	* data/skeletons/lalr1.d, data/skeletons/lalr1.java: Don't expose
+	yyuser_token_number_max_ and yyundef_token_.  Do as in C++: scope them
+	into yytranslate_, and only when api.token.raw is not defined.
+	(yyterror_): Rename as...
+	(yy_error_token_): this.
+	* data/skeletons/lalr1.d (token_number_type): New.
+	Use it.
+	Can't be done in the Java backend, as Java does not have type aliases.
+
+2019-12-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	d, java: get rid of a useless table
+	* data/skeletons/lalr1.d, data/skeletons/lalr1.java (yytoken_number_):
+	Remove, useless.
+	Was used in ancient C skeletons to support YYPRINT, long obsoleted by
+	%printer.
+
+2019-11-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++, d, java: remove yyerrcode
+	It is not used at all.  We will remove it also from yacc.c, but
+	later (see TODO).
+
+	* data/skeletons/lalr1.cc, data/skeletons/lalr1.d,
+	* data/skeletons/lalr1.java (yyerrcode_):
+	Remove.
+
+2019-11-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: improve typing
+	* data/skeletons/lalr1.cc (yysyntax_error_): symbol_type::type_get
+	returns a symbol_number_type (which is indeed an int).
+
+2019-11-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: remove useless cast about yyeof_
+	Reported by Frank Heckenbach.
+	https://lists.gnu.org/archive/html/bug-bison/2019-11/msg00016.html
+
+	* data/skeletons/c++.m4 (b4_yytranslate_define): Don't use yyeof_ as
+	if it had two different types.
+	It is used once against the input argument, which is the value
+	returned by yylex, which is an "external token number", typically an
+	int.  It is also used as output type, an "internal symbol number".
+	It turns out that in both cases we mean "0", but let's keep yyeof_
+	only for the case "internal symbol number", i.e., _after_ conversion
+	by yytranslate.
+	This frees us from one cast.
+
+2019-11-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr: style change
+	* data/skeletons/glr.c (YYDPRINTF): Expand into an empty statement,
+	instead of nothing.
+	Simplify callers.
+
+2019-11-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr: remove useless casts
+	Reported by GCC's -Wuseless-cast.
+
+	* data/skeletons/glr.c: Don't cast to yybool, it's useless.
+
+2019-11-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c, glr.c: fix crash when reporting errors in consistent states
+	The current code for yysyntax_error for %define parse.error verbose is
+	fishy (given that YYEMPTY is -2, invalid argument for yytname[]):
+
+	    static int
+	    yysyntax_error ([...])
+	    {
+	      YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
+	    [...]
+	      if (yytoken != YYEMPTY)
+
+	A nearby comment reports
+
+	    The only way there can be no lookahead present (in yychar) is if
+	    this state is a consistent state with a default action.  Thus,
+	    detecting the absence of a lookahead is sufficient to determine
+	    that there is no unexpected or expected token to report.  In that
+	    case, just report a simple "syntax error".
+
+	So it _is_ possible to call yysyntax_error with yytoken == YYEMPTY,
+	albeit quite difficult when meaning to, so virtually impossible by
+	accident (after all, there was never a bug report about this).
+
+	I failed to produce a test case, but Joel E. Denny provided me with
+	one (added to the test suite below).  The yacc.c skeleton fails on
+	this, and once fixed dies on a second problem.  The glr.c skeleton was
+	also dying, but immediately of this second problem.
+
+	Indeed we were not allocating space for the error message's final \0.
+	This was hidden by the fact that we only had error messages with at
+	least an unexpected token displayed, so with at least one "%s" in the
+	format string, whose size (2) was included (incorrectly) in the final
+	size of the message (where the %s have been replaced by the actual
+	content).
+
+	* data/skeletons/glr.c, data/skeletons/yacc.c (yysyntax_error):
+	Do not invoke yytnamerr on YYEMPTY.
+	Clarify the computation of the length of the _final_ error message,
+	with the NUL terminator but without the '%s's.
+	* tests/conflicts.at (Syntax error in consistent error state):
+	New, contributed by Joel E. Denny.
+
+2019-11-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: avoid creating files whose name collide with standard headers
+	Having a file named "exception" is risky: the compiler might use that
+	file in #include.
+	Reported by 马俊 <majun123@whu.edu.cn>.
+
+	* tests/local.at (AT_SKIP_IF_EXCEPTION_SUPPORT_IS_POOR): Generate
+	'exceptions', not 'exception'.
+
+2019-11-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: more details about the test suite
+	* README-hacking.md: here.
+
+2019-11-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2019-11-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.4.91
+	* NEWS: Record release date.
+
+2019-11-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: pacify syntax-check
+	* cfg.mk: No need to translate *.md files.
+	* data/skeletons/glr.c, data/skeletons/yacc.c: Fix space issues.
+
+2019-11-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2019-11-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: don't promote dangling aliases
+	String literals as tokens serve two distinct purposes: freeing from
+	having to implement the keyword matching in the scanner, and improving
+	error messages.  Most of the time both can be achieved at the same
+	time, but on occasions, it does not work so well.
+
+	We promote their use for error messages.  We will also still support
+	the former case, but it is _not_ the recommended approach.
+
+	* doc/bison.texi (Tokens from Literals): Clearly state that we don't
+	recommend looking up the token types in the list of token names.
+
+2019-11-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: complain about undeclared string tokens
+	String literals, which allow for better error messages, are (too)
+	liberally accepted by Bison, which might result in silent errors.  For
+	instance
+
+	    %type <exVal> cond "condition"
+
+	does not define “condition” as a string alias to 'cond' (nonterminal
+	symbols do not have string aliases).  It is rather equivalent to
+
+	    %nterm <exVal> cond
+	    %token <exVal> "condition"
+
+	i.e., it gives the type 'exVal' to the "condition" token, which was
+	clearly not the intention.
+
+	Introduce -Wdangling-alias to catch this.
+
+	* src/complain.h, src/complain.c: Add support for -Wdangling-alias.
+	(argmatch_warning_args): Sort.
+	* src/symtab.c (symbol_check_defined): Complain about dangling
+	aliases.
+	* doc/bison.texi: Document it.
+	* tests/input.at (Dangling aliases): New test.
+
+2019-11-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: yacc reserves %type to nonterminals
+	On
+
+	    %token TOKEN1
+	    %type  <ival> TOKEN1 TOKEN2 't'
+	    %token TOKEN2
+	    %%
+	    expr:
+
+	bison -Wyacc gives
+
+	    input.y:2.15-20: warning: POSIX yacc reserves %type to nonterminals [-Wyacc]
+	        2 | %type  <ival> TOKEN1 TOKEN2 't'
+	          |               ^~~~~~
+	    input.y:2.29-31: warning: POSIX yacc reserves %type to nonterminals [-Wyacc]
+	        2 | %type  <ival> TOKEN1 TOKEN2 't'
+	          |                             ^~~
+	    input.y:2.22-27: warning: POSIX yacc reserves %type to nonterminals [-Wyacc]
+	        2 | %type  <ival> TOKEN1 TOKEN2 't'
+	          |                      ^~~~~~
+
+	The messages appear to be out of order, but they are emitted when the
+	error is found.
+
+	* src/symtab.h (symbol_class): Add pct_type_sym, used to denote
+	symbols appearing in %type.
+	* src/symtab.c (complain_pct_type_on_token): New.
+	(symbol_class_set): Check that %type is not applied to tokens.
+	(symbol_check_defined): pct_type_sym also means undefined.
+	* src/parse-gram.y (symbol_decl.1): Set the class to pct_type_sym.
+	* src/reader.c (grammar_current_rule_begin): pct_type_sym also means
+	undefined.
+	* tests/input.at (Yacc's %type): New.
+
+2019-11-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: promote %nterm over %type
+	As an extension to POSIX Yacc, Bison's %type accepts tokens.
+	Unfortunately with string literals as implicit tokens, this is
+	misleading, and led some users to write
+
+	    %type <exVal> cond "condition"
+
+	believing that "condition" would be associated to the 'cond'
+	nonterminal (see https://github.com/apache/httpd/pull/72).
+
+	* doc/bison.texi: Promote %nterm rather than %type to declare the type
+	of nonterminals.
+
+2019-11-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: formatting changes
+	* doc/bison.texi: No visible changes.
+
+2019-11-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: work around warnings when Flex C output is compiled in C++
+	* doc/bison.texi (calc++/scanner.ll): here.
+	While at it, clarify clang vs. warnings.
+
+2019-11-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: be robust to old Perl versions on Cygwin
+	Reported by Denis Excoffier.
+	https://lists.gnu.org/archive/html/bug-bison/2019-11/msg00008.html.
+
+	* tests/output.at: Be sure to remove back up files.
+
+2019-11-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-11-12  kaneko y  <spiketeika@gmail.com>
+
+	gram.c: Fix condition of aver
+	* src/gram.c (grammar_dump): Fix condition of aver.
+	What we want to check is that rhs is followed by its rule.
+
+2019-11-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: clarify build instructions
+	* README: A few fixes.
+	Explain how to install color support.
+	* README-hacking: Rename as...
+	* README-hacking.md: this, and convert to Markdown.
+	Improve typography.
+	Improve explanations about update-test.
+
+2019-11-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2019-11-11  Yuichiro Kaneko  <spiketeika@gmail.com>
+
+	gram.c: also print terminals in grammar_dump
+	* src/gram.c (grammar_dump): Print terminals likewise non terminals.
+	* tests/sets.at (Reduced Grammar): Update test case to catch up the
+	change and add a test case where prec and assoc are used.
+
+2019-11-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: work around Texinfo 6.7 bug
+	When @code is used in a @deftype... definition, it issues quotes.
+	Remove them.
+	See https://lists.gnu.org/archive/html/help-texinfo/2019-11/msg00004.html.
+
+	* doc/local.mk: here.
+
+2019-11-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: formatting changes
+	* doc/bison.texi: Wrap lines.
+	No semantical difference.
+
+2019-11-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: use upper case for tokens
+	* doc/bison.texi: here.
+
+2019-11-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: type-face fixes
+	* doc/bison.texi: Use @code for types in function definitions.
+
+2019-11-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: expose the type used to store line and column numbers
+	* data/skeletons/location.cc (position::counter_type)
+	(location::counter_type): New.
+	Use them.
+	* doc/bison.texi (C++ position, C++ location): Adjust.
+
+2019-11-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix comment and adjust to locale names on GNU/Linux
+	Reported by Denis Excoffier.
+
+	* tests/diagnostics.at: here.
+
+2019-11-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: really check complaints from m4
+	* tests/diagnostics.at (Locations from M4, Tabulations and multibyte
+	characters from M4): These tests are actually checking a message
+	coming from C, not from M4.  Replace with...
+	(Complaints from M4): This.
+
+2019-11-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: simplify prologue
+	* tests/testsuite.h: We no longer load gnulib in the tests.
+
+2019-11-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: add missing translation
+	* src/muscle-tab.c (muscle_percent_define_check_kind): Here.
+
+2019-11-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: fix old cast warnings
+	We still have a few old C casts in lalr1.cc, let's get rid of them.
+	Reported by Frank Heckenbach.
+
+	Actually, let's monitor all our casts using easy to grep macros.
+	Let's use these macros to use the C++ standard casts when we are in
+	C++.
+
+	* data/skeletons/c.m4 (b4_cast_define): New.
+	* data/skeletons/glr.c, data/skeletons/glr.cc,
+	* data/skeletons/lalr1.cc, data/skeletons/stack.hh,
+	* data/skeletons/yacc.c:
+	Use it and/or its casts.
+
+	* tests/actions.at, tests/cxx-type.at,
+	* tests/glr-regression.at, tests/headers.at, tests/torture.at,
+	* tests/types.at:
+	Use YY_CAST instead of C casts.
+
+	* configure.ac (warn_cxx): Add -Wold-style-cast.
+	* doc/bison.texi: Disable it.
+
+2019-11-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: be robust to tput errors
+	Reported by Denis Excoffier.
+
+	* tests/bison.in: here.
+
+2019-11-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	git: update ignores
+	I don't understand what happened in
+	10acc148bb90fac8a52a5d35f2bd18bd824c1639.
+
+2019-10-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2019-10-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.4.90
+	* NEWS: Record release date.
+
+2019-10-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: finish propagating the unsigned->signed conversion in locations
+	* data/skeletons/location.cc: Remove the u (for unsigned) suffix from
+	the initial line and column.
+	* NEWS: AFAICT, only C++ backends have their location types changed.
+
+2019-10-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: fix cpp indentation
+	Reported by syntax-check.
+
+	* src/system.h: here.
+
+2019-10-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: glr.c: comment changes
+	* data/skeletons/glr.c: here.
+
+2019-10-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: pass -O1 to GCC8 with sanitizers
+	This build never finishes in the 50min credit given by Travis.  See if
+	with optimizations it works better.
+
+	* .travis.yml: here.
+
+2019-10-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	reader: reduce the "scope" of global variables
+	We have too many global variables, adding structure would help.  For a
+	start, let's hide some of the variables closer to their usage.
+
+	* src/getargs.c, src/files.h (current_file): Move to...
+	* src/scan-gram.c: here.
+	* src/scan-gram.h (gram_in, gram__flex_debug): Remove, make them
+	private to the scanner.
+	* src/reader.h, src/reader.c (reader): Take a grammar file as argument.
+	Move the handling of scanner variables to...
+	* src/scan-gram.l (gram_scanner_open, gram_scanner_close): here.
+	(gram_scanner_initialize): Remove, replaced by gram_scanner_open.
+	* src/main.c: Adjust.
+
+2019-10-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-10-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: use grammar_file instead of current_file
+	* src/parse-gram (%initial-action): here.
+	(handle_skeleton): Don't depend on the current file name to look for
+	"local" skeletons (subject to changes coming from "#lines"): depend
+	only on the initial file name, the one given on the command line.
+
+2019-10-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: use grammar_file instead of current_file
+	Currently there are two globals denoting the input file: grammar_file
+	is the one from the command line, and current_file which might change
+	because of #line.  Use only the former.
+
+	* src/complain.c (error_message): here.
+	* tests/diagnostics.at: Adjust.
+
+2019-10-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	reader: let symtab deal with the symbols
+	* src/reader.c (reader): Move the setting up of the builtin symbols to...
+	* src/symtab.c (symbols_new): here.
+
+2019-10-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: remove incorrect comment
+	Reported by Paul Eggert.
+
+	* src/system.h: here.
+
+2019-10-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr1.cc: fix previous commit: printing of state numbers
+	* data/skeletons/lalr1.cc: Printing a char prints... a char.
+	Print ints instead.
+
+2019-10-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr1.cc: use computed state types
+	This skeleton uses a single stack of state structures, so it is less
+	likely to benefit from a stack size reduction than yacc.c (which uses
+	several stacks: state number, value and location).  But it will reduce
+	the size of the LAC stack.
+
+	This skeleton was already using int for state numbers, so, contrary to
+	yacc.c, this brings nothing for large automata.
+
+	Overall, it is still nicer to make the skeletons alike.
+
+	* data/skeletons/lalr1.cc (state_type): Here.
+
+2019-10-24  kaneko y  <spiketeika@gmail.com>
+
+	README: Fix a typo
+	* README: Fix a typo. Git command name is submodule.
+
+2019-10-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: fix missing dependencies
+	Reported by Thomas Petazzoni.
+	https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00000.html
+
+	* examples/c/reccalc/local.mk: Complete dependencies, including for
+	earlier versions of Automake (for sake of our CI, on top of Ubuntu
+	Xenial/Bionic, which feature only Automake 1.15).
+	(%D%/scan.c %D%/scan.h): Upgrade to the full version provided in
+	Automake's documentation.
+
+2019-10-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: simplify location handling
+	Locations start at line 1.  Don't accept line 0.
+
+	* src/location.c (location_print): Don't print locations with line 0.
+	(location_caret): Simplify.
+
+2019-10-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: reenable -Wtype-limits
+	See https://lists.gnu.org/archive/html/bug-bison/2019-10/msg00061.html
+	to https://lists.gnu.org/archive/html/bug-bison/2019-10/msg00073.html.
+
+	Paul Eggert's changes in gnulib do fix the issue for modern GCCs (7,
+	8, 9) on macOS.  Unfortunately these warnings are back on the
+	CI (GNU/Linux) with GCC 4.6, 4.7, (not 4.8) and 4.9.
+
+	Disable the warning locally.
+
+	* configure.ac (warn_common, warn_tests): Remove -Wtype-limits.
+	* src/system.h (IGNORE_TYPE_LIMITS_BEGIN, IGNORE_TYPE_LIMITS_END): New.
+	* src/InadequacyList.c, src/parse-gram.c, src/parse-gram.y,
+	* src/symtab.c: Use it.
+
+2019-10-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: remove dmalloc support
+	Today sanitizers are a better alternative.
+
+	* m4/dmalloc.m4: Remove.
+	* configure.ac, src/system.h: Adjust.
+
+2019-10-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	gitignore: update
+
+2019-10-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+	build: update gnulib submodule to latest
+
+2019-10-23  Yuichiro Kaneko  <spiketeika@gmail.com>
+
+	style: update comment in reader.c
+	rrhs and rlhs were removed by b2ed6e5826e772162719db595446b2c58e4ac5d6.
+
+	* src/reader.c (packgram): Update comment.
+
+2019-10-22  kaneko y  <spiketeika@gmail.com>
+
+	yacc.c: fix a typo
+	* data/skeletons/yacc.c (yysetstate): fix comment.
+
+2019-10-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: pacify syntax-check
+	* doc/.gitignore, src/complain.c, src/getargs.c,
+	* src/output.c: here.
+
+2019-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	main: also free memory on errors
+	* src/derives.c (derives_free): Beware of NULL.
+	* src/main.c (main): Let the 'finish' label include memory release.
+
+2019-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+	To get bitset_free accept NULL.  See
+	https://lists.gnu.org/archive/html/bug-gnulib/2019-10/msg00054.html
+
+2019-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scope in derives
+	* src/derives.c: here.
+	And prefer prefix to postfix increment.
+
+2019-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: disable -Wtautological-constant-out-of-range-compare
+	Also see e31f92495ce14a5d924b148c8ea1470003cc47c1 and
+	https://lists.gnu.org/archive/html/bug-bison/2019-10/msg00061.html
+
+	* configure.ac (warn_common): Disable
+	-Wtautological-constant-out-of-range-compare.
+	(warn_tests): Restore it.
+
+2019-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: formatting changes
+	* .travis.yml: Use the single line form of lists, when reduced to a
+	singletons.
+
+2019-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: rename jobs
+	* .travis.yml (compile, test): Rename as...
+	(dist, check): these, which are more traditional for GNU projects.
+
+2019-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: update README
+	* README: Be clearer that README-hacking _must_ be read.
+	Convert to Markdown.
+
+2019-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	bootstrap: relieve developpers from Gettext version mismatch issues
+	* .travis.yml (compile): Move the workaround from here...
+	* bootstrap.conf (bootstrap_epilogue): to there.
+
+2019-10-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: beware of GCC9 warnings in push mode
+	This is really weird: GCC points to the LHS of the assignment...
+
+	    260. headers.at:184: testing Sane headers: api.pure api.push-pull=both ...
+	    tests/headers.at:184: COLUMNS=1000; export COLUMNS;  bison --color=no -fno-caret -d -o input.c input.y
+	    tests/headers.at:184: $CC $CFLAGS $CPPFLAGS  -c -o input.o input.c
+	    stderr:
+	    input.c: In function 'yyparse':
+	    input.c:1276:16: error: 'yylval' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+	     1276 |         yylval = *yypushed_val;
+	          |         ~~~~~~~^~~~~~~~~~~~~~~
+	    input.c: In function 'yypull_parse':
+	    input.c:1276:16: error: 'yylval' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+	     1276 |         yylval = *yypushed_val;
+	          |         ~~~~~~~^~~~~~~~~~~~~~~
+	    cc1: all warnings being treated as errors
+	    stdout:
+	    tests/headers.at:184: exit code was 1, expected 0
+
+	See also d87c8ac79ab844d6a7a4f5103dcf7a842d18b611
+	and 9645a2b20ee7cbfa8bb4ac2237f87d598afe349c.
+
+	* tests/headers.at (Several parsers, Several parsers): Disable these
+	warnings when in push parser.
+
+2019-10-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: try GCC9 and Clang9
+	The logs show:
+
+	    Disallowing sources: llvm-toolchain-bionic-8, ubuntu-toolchain-r-test
+	    To add unlisted APT sources, follow instructions in
+	    https://docs.travis-ci.com/user/installing-dependencies#Installing-Packages-with-the-APT-Addon
+
+	* .travis.yml: Remove a few apt sources which are ignored in
+	Bionic (e.g., see
+	https://github.com/travis-ci/apt-source-safelist/issues/410).
+	Where needed, use sources/sourceline instead.
+	Also, don't use -DNDEBUG with older builds.
+
+2019-10-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: clarify version checking
+	* src/parse-gram.y: Use the same conventions for gnulib as elsewhere:
+	<header.h>.
+	(str_to_version): New.
+	(handle_require): Use it.
+	Prefer < to >.
+
+2019-10-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: disable -Wtype-limits, except in the test suite
+	The current implementation of lib/intprops.h results in "unsigned < 0"
+	comparisons, which triggers warnings.  See
+
+	https://lists.gnu.org/archive/html/bug-bison/2019-10/msg00061.html
+
+	* configure.ac (warn_common): Disable -Wtype-limits.
+	(warn_tests): Restore it.
+
+2019-10-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	c++: port to Sun C++ 5.12
+	The documentation for Oracle Solaris Studio 12.3 (Sun C++ 5.12
+	2011/11/16) says it supports C++03.  This compiler rejects the
+	location.cc use of std::max for some reason; I don’t know why
+	since I don’t use C++ as a rule.  The simplest workaround is to
+	open-code ‘max’.
+	* data/skeletons/location.cc (add_):
+	Do max by hand rather than relying on std::max.
+	Don’t include <algorithm.h>; no longer needed.
+
+2019-10-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	regen
+
+2019-10-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	tests: port to Solaris 10 grep
+	* tests/scanner.at (Token numbers: $1): Use $EGREP, not grep -E.
+
+2019-10-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	tests: port to Solaris 10 sed
+	As documented in the Autoconf manual, Solaris 10 sed rejects
+	script labels contianing more than 7 characters.  POSIX requires
+	support for at least 8 characters, but we might as well be portable
+	to Solaris 10 which is still supported.
+	* tests/local.at (AT_SETS_CHECK): Use only the first 7 characters
+	in sed labels.
+
+2019-10-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	bison: check for int overflow in token numbers
+	* src/symtab.c: Include intprops.h
+	(symbol_user_token_number_set): Don’t allow user_token_number ==
+	INT_MAX because too much other code adds 1 to the user token number.
+	(symbols_token_translations_init): Complain on integer overflow
+	instead of indulging in undefined behavior.
+
+2019-10-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	bison: check for int overflow when scanning
+	* src/scan-gram.l: Include errno.h, for errno.
+	(scan_integer, handle_syncline): Check for integer overflow.
+	* tests/input.at (too-large.y): Adjust to match new diagnostics.
+
+2019-10-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	bison: check version numbers more carefully
+	* src/parse-gram.y: Include intprops.h.
+	(handle_require): Don’t indulge in undefined behavior if the major
+	or minor number is out of range.  Instead, check that the
+	resulting value is nonnegative, fits in int, and that the minor
+	number is less than 100.  Also, check that a number was parsed.
+
+2019-10-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	c: port YY_ATTRIBUTE_UNUSED to Sun C 5.12
+	Sun C 5.12 defines __SUNPRO_C to 0x5120 but diagnoses
+	‘__attribute__ ((__unused__))’.  Change the ifdefs to use
+	the same method as Gnulib in this area.
+	* data/skeletons/c.m4 (YY_ATTRIBUTE): Remove, since
+	not all attributes were added in the same compiler version.
+	(YY_ATTRIBUTE_PURE, YY_ATTRIBUTE_UNUSED):
+	Use specific GCC version for each attribute.
+	Pay no attention to __SUNPRO_C.
+	* tests/headers.at (Several parsers): Tighten tests accordingly.
+
+2019-10-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	c: improve port of stdint.h usage to pre-C99
+	Oracle Solaris Studio 12.3 (Sun C 5.12 2011/11/16) by default does
+	not conform to C99; it defines __STDC_VERSION__ to be 199409L, so
+	the Bison code does not include <stdint.h> (not required by C89
+	amendment 1) even though this compiler does have <stdint.h>.  On
+	this platform <limits.h> defines INT_LEAST8_MAX (POSIX allows
+	this) so the skeleton got confused and thought that <stdint.h> had
+	been included even though it wasn’t.
+	* data/skeletons/c.m4 (b4_c99_int_type_define) [!__PTRDIFF_MAX__]:
+	Always include <limits.h>.
+	(YY_STDINT_H): Define when <stdint.h> was included.
+	All uses of expressions like ‘defined INT_LEAST8_MAX’ changed to
+	‘defined YY_STDINT_H’, since Sun C 5.12 <limits.h> defines macros
+	like INT_LEAST8_MAX but does not declare types like int_least8_t.
+
+2019-10-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	gnulib:update
+
+2019-10-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	autoconf:update
+
+2019-10-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	TODO: more updates
+
+2019-10-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	TODO: update
+
+2019-10-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc: rename types for states
+	* data/skeletons/yacc.c (yy_state_num): Rename as...
+	(yy_state_t): this.
+	(yy_state_fast_t): New.
+	Use it.
+
+2019-10-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr: style changes
+	* data/skeletons/glr.c (yytnamerr): here.
+	(yyprocessOneStack): Initialize variables.
+
+2019-10-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc: style changes
+	* data/skeletons/yacc.c: Move call to lac discard to clarify the
+	shifting of the token.
+	Like in lalr1.cc.
+
+2019-10-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: avoid $(...)
+	Reported by Paul Eggert.
+
+	* tests/local.at (AT_DATA_NO_FINAL_EOL): here.
+
+2019-10-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: use a portable 'truncate' implementation
+	Suggested by Paul Eggert.
+	https://lists.gnu.org/archive/html/bison-patches/2019-10/msg00044.html
+
+	* tests/local.at (AT_DATA_NO_FINAL_EOL): Use dd instead of perl.
+
+2019-10-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: factor the generation of files without the final eol
+	AFAICT Autotest 2.69 still does not support AT_DATA without the final
+	eol.
+
+	* tests/local.at (AT_DATA_NO_FINAL_EOL): New.
+	* tests/input.at: Use it.
+
+2019-10-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: refactor the handling of Perl
+	Let's make a difference between places where Perl is required for the
+	test (AT_PERL_REQUIRE), and the places where it's used to run the
+	test, but it's not not to run the test (AT_PERL_CHECK).
+
+	* tests/local.at (AT_REQUIRE): New.
+	(AT_PERL_CHECK, AT_PERL_REQUIRE): New.
+	Use them where appropriate.
+
+	* tests/local.mk ($(TESTSUITE)): Beware not to start the line with
+	'-pi' if Perl is empty, as Make understands this as "it's ok to fail".
+	Which it is not.
+
+2019-10-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: comment changes
+	* data/skeletons/lalr1.d: Here.
+
+2019-10-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	i18n: don't push too hard for '…'
+	Suggested by Paul Eggert.
+
+	* src/location.c (ellipsis): Clarify comment for translators.
+
+2019-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr: display line numbers in traces
+	Suggested by Lars Maier.
+
+	* data/skeletons/glr.c: Also display rule locations when rules are
+	deferred, and rejected.
+
+2019-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: be really robust to Perl missing
+	My previous tests (with ./configure PERL=false) have been fooled by
+	configure, that managed to find perl anyway.  This time, I ran this on
+	a Fedora in Docker, without Perl.
+
+	* tests/calc.at, tests/diagnostics.at, tests/headers.at,
+	* tests/input.at, tests/local.at, tests/named-refs.at,
+	* tests/output.at, tests/regression.at, tests/skeletons.at,
+	* tests/synclines.at, tests/torture.at: Don't require Perl.
+
+2019-10-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	configure: perl is not required
+	But it's used in various places, including in some tests.
+
+	* configure.ac: here.
+
+2019-10-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	news: update
+
+2019-10-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: prefer "…" to "..." if the locale supports it
+	* src/location.c (ellipsis, ellipsize): New.
+	Use them.
+
+2019-10-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+	c: improve patch for UCHAR_MAX etc. problem
+	* data/skeletons/c.m4 (b4_c99_int_type_define): Reorder to put the
+	signed types first, since they’re simpler and this keeps similar
+	code closer.  For signed types, don’t bother checking whether the
+	type promotes to int since the type must be signed anyway.  For
+	unsigned types, protect a test like ‘UCHAR_MAX <= INT_MAX’ with
+	‘!defined __UINT_LEAST8_MAX__’, as otherwise the logic is wrong
+	for oddball platforms; and once we do that, there should no need
+	for ‘defined INT_MAX’ so remove that.
+
+2019-10-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: do not depend on config.h
+	Currently we face test suite failures in different environments,
+	because of a conflict between the definitions of isnan by gnulib, and
+	by the C++ library:
+
+	    262. headers.at:186: testing Sane headers: %locations %debug c++ ...
+	    ./headers.at:186: COLUMNS=1000; export COLUMNS;  bison --color=no -fno-caret -d -o input.cc input.y
+	    ./headers.at:186: $CXX $CXXFLAGS $CPPFLAGS  -c -o input.o input.cc
+	    stderr:
+	    In file included from /usr/include/c++/4.8.2/cmath:44:0,
+	                     from /usr/include/c++/4.8.2/random:38,
+	                     from /usr/include/c++/4.8.2/bits/stl_algo.h:65,
+	                     from /usr/include/c++/4.8.2/algorithm:62,
+	                     from location.hh:41,
+	                     from input.hh:90,
+	                     from input.cc:50:
+	    /u/cs/fac/eggert/src/gnu/bison/lib/math.h: In function 'bool isnan(double)':
+	    /u/cs/fac/eggert/src/gnu/bison/lib/math.h:2849:1: error: new declaration 'bool isnan(double)'
+	     _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, isnan, bool)
+	     ^
+	    In file included from /usr/include/features.h:375:0,
+	                     from /usr/include/c++/4.8.2/x86_64-redhat-linux/bits/os_defines.h:39,
+	                     from /usr/include/c++/4.8.2/x86_64-redhat-linux/bits/c++config.h:2097,
+	                     from /usr/include/c++/4.8.2/cstdlib:41,
+	                     from input.hh:48,
+	                     from input.cc:50:
+	    /usr/include/bits/mathcalls.h:235:1: error: ambiguates old declaration 'int isnan(double)'
+	     __MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__));
+	     ^
+
+	There might be something to do in gnulib about this, but I believe
+	that gnulib should not be used in the test suite in the first place.
+
+	The test suite should work with other compilers than the one used to
+	compile the package.  For a start, Bison sources are more
+	demanding (C99) than the generated parsers.  Last time I tried, tcc
+	for example, was not able to compile Bison, yet our generated parsers
+	should compile cleanly with it.
+
+	Besides the problem at hand is with the C++ compiler, with is not the
+	one used to set up gnulib at configuration-time (config.h is mainly
+	built from probing the C compiler).
+
+	We should really not depend on gnulib in tests.
+
+	This was introduced in 2001 to check whether including
+	stdlib.h/string.h is safe thanks to STDC_HEADERS
+	(2ce1014469742b5c6618daf8506b69e38787c7d5).  Today, we assume at least
+	a C90 compiler, it should be safe enough.
+
+	* tests/local.at, tests/testsuite.h: Do not include config.h.
+	* tests/atlocal.in (conftest.cc): Likewise.
+	(CPPFLAGS): Do not expose lib/, as because of this we might picked up
+	gnulib replacement headers for system headers.
+
+	* tests/input.at: Use int instead of ptrdiff_t, for easier portability
+	(some machine on the CI did not find ptrdiff_t).
+	* tests/c++.at: Add missing include for getchar.
+
+2019-10-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: spell check
+	* doc/bison.texi: Remove the index about yyoutput, it is no longer
+	documented.
+	Spell check.
+
+2019-10-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: style changes
+	* tests/actions.at: Prefer printf to fprintf.
+	Prefer yyo to yyoutput in %printer.
+
+2019-10-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: formatting changes
+	* tests/actions.at, tests/local.at: here.
+
+2019-10-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: add missing includes
+	* tests/actions.at, tests/c++.at, tests/headers.at,
+	* tests/regression.at: here.
+
+2019-10-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	c: don't assume that UCHAR_MAX, etc. are defined
+	A number of portability issues with GCC 4.6 .. 4.9 (inclusive):
+
+	    input.c:184:7: error: "UCHAR_MAX" is not defined [-Werror=undef]
+	     #elif UCHAR_MAX <= INT_MAX
+	           ^
+	    input.c:184:20: error: "INT_MAX" is not defined [-Werror=undef]
+	     #elif UCHAR_MAX <= INT_MAX
+	                        ^
+	    input.c:202:7: error: "USHRT_MAX" is not defined [-Werror=undef]
+	     #elif USHRT_MAX <= INT_MAX
+	           ^
+	    input.c:202:20: error: "INT_MAX" is not defined [-Werror=undef]
+	     #elif USHRT_MAX <= INT_MAX
+	                        ^
+
+	* data/skeletons/c.m4 (b4_c99_int_type_define): Don't assume they are
+	defined.
+
+2019-10-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	configure: don't require Flex
+	Flex should not be required to build Bison or run the test suite (of
+	course it is needed for maintaining Bison).  Yet the Automake
+	conditional FLEX_WORKS does not work.
+
+	* m4/flex.m4 (_AC_PROG_LEX_YYTEXT_DECL): Since this is called
+	conditionally, don't define LEX_IS_FLEX here, but rather...
+	(AC_PROG_LEX): here.
+	* configure.ac: Be more cautious about possibly undefined variables.
+
+2019-10-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Move the integer-type selection into c.m4
+	That way, glr.c can use it too.
+	* data/skeletons/c.m4 (b4_int_type):
+	Do not special-case ‘char’; it’s not worth the trouble,
+	as clang complains about char subscripts.
+	(b4_c99_int_type, b4_c99_int_type_define): New macros,
+	taken from yacc.c.
+	* data/skeletons/glr.c: Use b4_int_type_define.
+	* data/skeletons/yacc.c (b4_int_type): Remove, since there’s
+	no longer any need to redefine it.
+	Use b4_c99_int_type_define rather than its body.
+
+2019-10-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Use “least” types for integers in Yacc tables
+	This changes the Yacc skeleton to use “least” integer types to
+	keep tables smaller on some platforms, which should lessen cache
+	pressure.  Since Bison uses the Yacc skeleton, it follows suit.
+	* data/skeletons/yacc.c: Include limits.h and stdint.h if this
+	seems to be needed.
+	(yytype_uint8, yytype_int8, yytype_uint16, yytype_int16):
+	If available, use GCC predefined macros __INT_MAX__ etc. to select
+	a “least” type, as this avoids namespace hassles.  Otherwise, if
+	available fall back on selecting a “least” type via the C99 macros
+	INT_MAX, INT_LEAST8_MAX, etc.  Otherwise, fall further back on one of
+	the builtin C99 types signed char, short, and int.  Make sure that
+	any selected type promotes to int.  Ignore any macros YYTYPE_INT16,
+	YYTYPE_INT8, YYTYPE_UINT16, YYTYPE_UINT8 defined by the user.
+	(ptrdiff_t, PTRDIFF_MAX): Simplify in the light of the above.
+	(yytype_uint8, yytype_uint16): Do not assume that unsigned char
+	and unsigned short promote to int, as this isn’t true on some
+	platforms (e.g., TI TMS320C55x).
+	* src/parse-gram.y (YYTYPE_INT16, YYTYPE_INT8, YYTYPE_UINT16)
+	(YYTYPE_UINT8): Remove, as these are no longer effective.
+
+2019-10-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Port better to C++ platforms
+	* data/skeletons/yacc.c (YYPTRDIFF_T, YYPTRDIFF_MAXIMUM):
+	Default to long, not int.
+	(yy_lac_stack_realloc, yy_lac, yytnamerr, yyparse):
+	Avoid casts to YYPTRDIFF_T that were masking the problem.
+
+2019-10-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Work around GCC 4.8 false alarms without casts
+	* data/skeletons/yacc.c (yyparse):
+	Initialize yyes_capacity with a signed expression.
+	* tests/local.at (AT_YYLEX_DEFINE(c)):
+	Use enum to avoid cast.
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: make recheck
+	* tests/local.mk (recheck): New.
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: also show suggested %empty
+	* src/reader.c (grammar_rule_check_and_complete): Suggest to add %empty.
+	* tests/actions.at, tests/diagnostics.at: Adjust expectations.
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: sort symbols per location
+	Because the checking of the grammar is made by phases after the whole
+	grammar was read, we sometimes have diagnostics that look weird.  In
+	some case, within one type of checking, the entities are not checked
+	in the order in which they appear in the file.  For instance, checking
+	symbols is done on the list of symbols sorted by tag:
+
+	    foo.y:1.20-22: warning: symbol BAR is used, but is not defined as a token and has no rules [-Wother]
+	        1 | %destructor {} QUX BAR
+	          |                    ^~~
+	    foo.y:1.16-18: warning: symbol QUX is used, but is not defined as a token and has no rules [-Wother]
+	        1 | %destructor {} QUX BAR
+	          |                ^~~
+
+	Let's sort them by location instead:
+
+	    foo.y:1.16-18: warning: symbol 'QUX' is used, but is not defined as a token and has no rules [-Wother]
+	        1 | %destructor {} QUX BAR
+	          |                ^~~
+	    foo.y:1.20-22: warning: symbol 'BAR' is used, but is not defined as a token and has no rules [-Wother]
+	        1 | %destructor {} QUX BAR
+	          |                    ^~~
+
+	* src/location.h (location_cmp): Be robust to empty file names.
+	* src/symtab.c (symbol_cmp): Sort by location.
+	* tests/input.at: Adjust expectations.
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: suggest fixes for undeclared symbols
+	From
+
+	    input.y:1.17-19: warning: symbol baz is used, but is not defined as a token and has no rules [-Wother]
+	         1 | %printer {} foo baz
+	           |                 ^~~
+
+	to
+
+	    input.y:1.17-19: warning: symbol 'baz' is used, but is not defined as a token and has no rules; did you mean 'bar'? [-Wother]
+	        1 | %printer {} foo baz
+	          |                 ^~~
+	          |                 bar
+
+	* bootstrap.conf: We need fstrcmp.
+	* src/symtab.c (symbol_from_uniqstr_fuzzy): New.
+	(complain_symbol_undeclared): Use it.
+	* tests/diagnostics.at (Suggestions): New.
+	* data/bison-default.css (insertion): Rename as...
+	(fixit-insert): this, as this is what GCC uses.
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: isolate complain_symbol_undeclared
+	* src/symtab.c (complain_symbol_undeclared): New.
+	Use it.
+	Use quote on the guilty symbol (like GCC does, and we also do
+	elsewhere).
+	* tests/input.at: Adjust.
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: simplify the handling of symbol and semantic_type tables
+	Both are stored in a hash, and back in the days, we used to iterate
+	over these tables using hash_do_for_each.  However, the order of
+	traversal was not deterministic, which was a nuisance for
+	deterministic output (and therefore also a problem for tests).  So at
+	some point (83b60c97ee1f98bb1f15ffa38acdc4cc765515f5) we generated a
+	sorted list of these symbols, and symbols_do actually iterated on that
+	list.  But we kept the constraints of using hash_do_for_each, which
+	requires a lot of ceremonial code, and makes it hard/unnatural to
+	preserve data between iterations (see the next commit).
+
+	Alas, this is C, not C++.
+
+	Let's remove this abstraction, and directly iterate on the sorted
+	tables.
+
+	* src/symtab.c (symbols_do): Remove.
+	Adjust callers to use a simple for-loop instead.
+	(table_sort): New.
+	(symbols_check_defined): Use it.
+	(symbol_check_defined_processor, symbol_pack_processor)
+	(semantic_type_check_defined_processor, symbol_translation_processor):
+	Remove.
+	Simplify the corresponding functions (that no longer need to return a
+	bool).
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: display suggested update after the caret-info
+	This commit adds the suggestion in green, on the line below the
+	caret-and-tildes.
+
+	    foo.y:1.1-14: warning: deprecated directive: '%error-verbose', use '%define parse.error verbose' [-Wdeprecated]
+	        1 | %error-verbose
+	          | ^~~~~~~~~~~~~~
+	          | %define parse.error verbose
+
+	The current approach, with location_caret_suggestion, is fragile:
+	there's a protocol of calls to the complain functions which is strict.
+	We should rather have a richer structure describing the diagnostics,
+	including with submessages such as the suggestions, passed in the end
+	to the routines in charge of formatting and printing them.
+
+	* src/location.h, src/location.c (location_caret_suggestion): New.
+	* src/complain.c (deprecated_directive): Use it.
+	* tests/diagnostics.at, tests/input.at: Adjust expectations.
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: isolate caret_set_column
+	* src/location.c (caret_info): Add width and skip members.
+	(caret_set_column): New.
+	Use it.
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: isolate caret_set_file
+	* src/location.c (caret_set_file): New.
+	Store the current line's length in caret_info.line_len.
+	Pay attention to fseek's return value.
+	Extracted from...
+	(location_caret): here.
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: use tput to get the number of columns
+	* tests/bison.in: here.
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	TODO: update
+	I no longer agree with that item, there are indeed two things to
+	report: lack of definition, and being useless.  We could have either
+	one without the other, they are not directly related.
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: work around warnings from G++ 4.8
+	input.c: In function 'int yyparse()':
+	input.c: error: conversion to 'long int' from 'long unsigned int'
+	                may change the sign of the result [-Werror=sign-conversion]
+	   yyes_capacity = sizeof yyesa / sizeof *yyes;
+	                                ^
+	cc1plus: all warnings being treated as errors
+
+	* data/skeletons/yacc.c: here.
+
+2019-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: work around warnings from Clang++ 3.3 and 3.4
+	When we run the test suite with these C++ compilers to compile C code,
+	we get:
+
+	    239. synclines.at:440: testing syncline escapes: yacc.c ...
+	    ../../tests/synclines.at:440: $CC $CFLAGS $CPPFLAGS \"\\\"\".c -o \"\\\"\" ||
+	              exit 77
+	    stderr:
+	    stdout:
+	    ../../tests/synclines.at:440: COLUMNS=1000; export COLUMNS;  bison --color=no -fno-caret  -o \"\\\"\".c \"\\\"\".y
+	    ../../tests/synclines.at:440: $CC $CFLAGS $CPPFLAGS  $LDFLAGS -o \"\\\"\" \"\\\"\".c $LIBS
+	    stderr:
+	    "\"".c:1102:41: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
+	          YYPTRDIFF_T yysize = yyssp - yyss + 1;
+	                      ~~~~~~   ~~~~~~~~~~~~~^~~
+	    1 error generated.
+
+	    193. conflicts.at:545: testing parse.error=verbose and consistent errors: lr.type=canonical-lr parse.lac=full ...
+	    input.c:737:75: error: implicit conversion loses integer precision: 'long' to 'int'
+	                           [-Werror,-Wshorten-64-to-32]
+	      YYPTRDIFF_T yysize_old = *yytop == yytop_empty ? 0 : *yytop - *yybottom + 1;
+	                  ~~~~~~~~~~                               ~~~~~~~~~~~~~~~~~~~^~~
+	    input.c:901:48: error: implicit conversion loses integer precision: 'long' to 'int'
+	                           [-Werror,-Wshorten-64-to-32]
+	                YYPTRDIFF_T yysize = yyesp - *yyes + 1;
+	                            ~~~~~~   ~~~~~~~~~~~~~~^~~
+
+	* data/skeletons/yacc.c: Add more casts.
+
+2019-10-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: avoid a GCC 4.8 warning
+	GCC 4.8 reports:
+
+	    input.y:57:33: error: conversion to 'int' from 'long unsigned int'
+	                          may alter its value [-Werror=conversion]
+	       int input_elts = sizeof input / sizeof input[0];
+	                                     ^
+
+	* tests/local.at (AT_YYLEX_DEFINE(c)): Add a cast (sorry, Paul!).
+
+2019-10-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/skeletons/glr.c (yysplitStack): Pacify Clang 8.
+
+2019-10-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Avoid quiet conversion of pointer to bool
+	* src/location.c (caret_set_file):
+	* src/scan-code.l (contains_dot_or_dash):
+	Do not quietly convert pointer to bool, as Oracle Developer Studio
+	12.6 complains and it is arguably confusing style anyway.
+
+2019-10-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Port ARGMATCH_DEFINE_GROUP calls to C99
+	* src/complain.c, src/getargs.c: Omit ‘;’ after call
+	to ARGMATCH_DEFINE_GROUP, as C99 does not allow ‘;’ there.
+
+2019-10-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Port lexcalc scan.l to Solaris 10
+	* examples/c/lexcalc/scan.l: Include errno.h.
+
+2019-10-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: use casts instead of pragmas when losing integer width
+	For instance with Clang 4, 8, etc.:
+
+	    input.c:1166:12: error: implicit conversion loses integer precision: 'int' to 'yy_state_num' (aka 'signed char') [-Werror,-Wconversion]
+	      *yyssp = yystate;
+	             ~ ^~~~~~~
+
+	And GCC 8:
+
+	    input.c:1166:12: error: implicit conversion loses integer precision: 'int' to 'yy_state_num' (aka 'signed char') [-Werror,-Wimplicit-int-conversion]
+	      *yyssp = yystate;
+	             ~ ^~~~~~~
+
+	* data/skeletons/yacc.c (YY_CONVERT_INT_BEGIN): Remove.
+	Adjust callers.
+
+2019-10-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: fix warnings about undefined macros
+	For instance with GCC 4.9 and --enable-gcc-warnings:
+
+	    25. input.at:1201: testing Torturing the Scanner ...
+	    ../../tests/input.at:1344: $CC $CFLAGS $CPPFLAGS  -c -o input.o input.c
+	    stderr:
+	    input.c:239:18: error: "__STDC_VERSION__" is not defined [-Werror=undef]
+	     # elif 199901 <= __STDC_VERSION__
+	                      ^
+	    input.c:256:18: error: "__STDC_VERSION__" is not defined [-Werror=undef]
+	     # elif 199901 <= __STDC_VERSION__
+	                      ^
+
+	* data/skeletons/yacc.c: Check that __STDC_VERSION__ is defined before
+	using it.
+
+2019-10-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: check more state numbers
+	* tests/torture.at (State number type): Also check 128, 129 and
+	32768.
+
+2019-10-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* doc/bison.texi (Table of Symbols): Mention memory exhaustion.
+
+2019-10-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Simplify mfcalc error handling
+	* doc/bison.texi (Mfcalc Symbol Table, Mfcalc Lexer):
+	Don’t abort on memory allocation failure or integer overflow.
+	Instead, comment that these things aren’t checked for.
+
+2019-10-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: fix comments suggesting to use %require
+	* data/skeletons/location.cc, data/skeletons/stack.hh: Here.
+
+2019-10-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr1.cc: simplify uses of size_t
+	* data/skeletons/stack.hh (stack::index_type): New type.
+	(stack::size, stack::operator[]): Be about an index_type rather than a
+	size_type and an int.
+
+2019-10-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: fixes for old compilers
+	On the CI with GCC 6:
+
+	    examples/c++/calc++/parser.cc:845:5: error: 'ptrdiff_t' was not declared in this scope
+	         ptrdiff_t yycount = 0;
+	         ^~~~~~~~~
+	    examples/c++/calc++/parser.cc:845:5: note: suggested alternatives:
+	    /usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:202:28: note:   'std::ptrdiff_t'
+	       typedef __PTRDIFF_TYPE__ ptrdiff_t;
+	                                ^~~~~~~~~
+
+	* data/skeletons/lalr1.cc: Qualify ptrdiff_t and size_t with std::.
+
+2019-10-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: be robust to -DNDEBUG
+	input.y: In function 'yylex':
+	input.y:67:7: error: unused variable 'input_elts' [-Werror=unused-variable]
+	   int input_elts = sizeof input / sizeof input[0];
+	       ^~~~~~~~~~
+	cc1: all warnings being treated as errors
+
+	* tests/input.at, tests/local.at: Avoid that.
+
+2019-10-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: remove the symlink before creating it
+	Currently we fail if we rerun a job that succeeded to push the
+	tarball.
+
+2019-10-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Adjust ‘Big horizontal’ test case
+	* tests/torture.at (Big horizontal): Adjust to recent changes with
+	integers.  If there are states 0..256, Bison now uses a signed
+	rather than an unsigned 16-bit integer.
+
+2019-10-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+	regen
+
+2019-10-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Prefer signed to unsigned integers
+	This patch contains more fixes to prefer signed to unsigned
+	integer types, as modern tools like 'gcc -fsanitize=undefined'
+	can check for signed integer overflow but not unsigned overflow.
+	* NEWS: Document the API change.
+	* boostrap.conf (gnulib_modules): Add intprops.
+	* data/skeletons/glr.c: Include stddef.h and stdint.h,
+	since this skeleton can assume C99 or later.
+	(YYSIZEMAX): Now signed, and the minimum of SIZE_MAX and PTRDIFF_MAX.
+	(yybool) [!__cplusplus]: Now signed (which is how bool behaves).
+	(YYTRANSLATE): Avoid use of unsigned, and make the macro
+	safe even for values greater than UINT_MAX.
+	(yytnamerr, struct yyGLRState, struct yyGLRStateSet, struct yyGLRStack)
+	(yyaddDeferredAction, yyinitStateSet, yyinitGLRStack)
+	(yyexpandGLRStack, yymarkStackDeleted, yyremoveDeletes)
+	(yyglrShift, yyglrShiftDefer, yy_reduce_print, yydoAction)
+	(yyglrReduce, yysplitStack, yyreportTree, yycompressStack)
+	(yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError)
+	(yyparse, yy_yypstack, yypstack, yypdumpstack):
+	* tests/input.at (Torturing the Scanner):
+	Prefer ptrdiff_t to size_t.
+	* data/skeletons/c++.m4 (b4_yytranslate_define):
+	* src/AnnotationList.c (AnnotationList__computePredecessorAnnotations):
+	* src/AnnotationList.h (AnnotationIndex):
+	* src/InadequacyList.h (InadequacyListNodeCount):
+	* src/closure.c (closure_new):
+	* src/complain.c (error_message, complains, complain_indent)
+	(complain_args, duplicate_directive, duplicate_rule_directive):
+	* src/gram.c (nritems, ritem_print, grammar_dump):
+	* src/ielr.c (ielr_compute_ritem_sees_lookahead_set)
+	(ielr_item_has_lookahead, ielr_compute_annotation_lists)
+	(ielr_compute_lookaheads):
+	* src/location.c (columns, boundary_print, location_print):
+	* src/muscle-tab.c (muscle_percent_define_insert)
+	(muscle_percent_define_check_values):
+	* src/output.c (prepare_rules, prepare_actions):
+	* src/parse-gram.y (id, handle_require):
+	* src/reader.c (record_merge_function_type, packgram):
+	* src/reduce.c (nuseless_productions, nuseless_nonterminals)
+	(inaccessable_symbols):
+	* src/relation.c (relation_print):
+	* src/scan-code.l (variant, variant_table_size, variant_count)
+	(variant_add, get_at_spec, show_sub_message, show_sub_messages)
+	(parse_ref):
+	* src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>)
+	(scan_integer, convert_ucn_to_byte, handle_syncline):
+	* src/scan-skel.l (at_complain):
+	* src/symtab.c (complain_symbol_redeclared)
+	(complain_semantic_type_redeclared, complain_class_redeclared)
+	(symbol_class_set, complain_user_token_number_redeclared):
+	* src/tables.c (conflict_tos, conflrow, conflict_table)
+	(conflict_list, save_row, pack_vector):
+	* tests/local.at (AT_YYLEX_DEFINE(c)):
+	Prefer signed to unsigned integer.
+	* data/skeletons/lalr1.cc (yy_lac_check_):
+	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
+	* tests/local.at (AT_YYLEX_DEFINE(c)):
+	Omit now-unnecessary casts.
+	* data/skeletons/location.cc (b4_location_define):
+	* doc/bison.texi (Mfcalc Lexer, C++ position, C++ location):
+	Prefer int to unsigned for line and column numbers.
+	Change example to abort explicitly on memory exhaustion,
+	and fix an off-by-one bug that led to undefined behavior.
+	* data/skeletons/stack.hh (stack::operator[]):
+	Also allow ptrdiff_t indexes.
+	(stack::pop, slice::slice, slice::operator[]):
+	Index arg is now ptrdiff_t, not int.
+	(stack::ssize): New method.
+	(slice::range_): Now ptrdiff_t, not int.
+	* data/skeletons/yacc.c (b4_state_num_type): Remove.
+	All uses replaced by b4_int_type.
+	(YY_CONVERT_INT_BEGIN, YY_CONVERT_INT_END): New macros.
+	(yylac, yyparse): Use them around conversions that -Wconversion
+	would give false alarms about. 	Omit unnecessary casts.
+	(yy_stack_print): Use int rather than unsigned, and omit
+	a cast that doesn’t seem to be needed here any more.
+	* examples/c++/variant.yy (yylex):
+	* examples/c++/variant-11.yy (yylex):
+	Omit no-longer-needed conversions to unsigned.
+	* src/InadequacyList.c (InadequacyList__new_conflict):
+	Don’t assume *node_count is unsigned.
+	* src/output.c (muscle_insert_unsigned_table):
+	Remove; no longer used.
+
+2019-10-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Prefer signed types for indexes in skeletons
+	* NEWS: Mention this.
+	* data/skeletons/c.m4 (b4_int_type):
+	Prefer char if it will do, and prefer signed types to unsigned if
+	either will do.
+	* data/skeletons/glr.c (yy_reduce_print): No need to
+	convert rule line to unsigned long.
+	(yyrecoverSyntaxError): Put action into an int to
+	avoid GCC warning of using a char subscript.
+	* data/skeletons/lalr1.cc (yy_lac_check_, yysyntax_error_):
+	Prefer ptrdiff_t to size_t.
+	* data/skeletons/yacc.c (b4_int_type):
+	Prefer signed types to unsigned if either will do.
+	* data/skeletons/yacc.c (b4_declare_parser_state_variables):
+	(YYSTACK_RELOCATE, YYCOPY, yy_lac_stack_realloc, yy_lac)
+	(yytnamerr, yysyntax_error, yyparse): Prefer ptrdiff_t to size_t.
+	(YYPTRDIFF_T, YYPTRDIFF_MAXIMUM): New macros.
+	(YYSIZE_T): Fix "! defined YYSIZE_T" typo.
+	(YYSIZE_MAXIMUM): Take the minimum of PTRDIFF_MAX and SIZE_MAX.
+	(YYSIZEOF): New macro.
+	(YYSTACK_GAP_MAXIMUM, YYSTACK_BYTES, YYSTACK_RELOCATE)
+	(yy_lac_stack_realloc, yyparse): Use it.
+	(YYCOPY, yy_lac_stack_realloc): Cast to YYSIZE_T to pacify GCC.
+	(yy_reduce_print): Use int instead of unsigned long when int
+	will do.
+	(yy_lac_stack_realloc): Prefer long to unsigned long when
+	either will do.
+	* tests/regression.at: Adjust to these changes.
+
+2019-09-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc: use the most appropriate integral type for state numbers
+	Currently we properly use the "best" integral type for tables,
+	including those storing state numbers.  However the variables for
+	state numbers used in yyparse (and its dependencies such as
+	yy_stack_print) still use int16_t invariably.  As a consequence, very
+	large models overflow these variables.
+
+	Let's use the "best" type for these variables too.  It turns out that
+	we can still use 16 bits for twice larger automata: stick to unsigned
+	types.
+
+	However using 'unsigned' when 16 bits are not enough is troublesome
+	and generates tons of warnings about signedness issues.  Instead,
+	let's use 'int'.
+
+	Reported by Tom Kramer.
+	https://lists.gnu.org/archive/html/bug-bison/2019-09/msg00018.html
+
+	* data/skeletons/yacc.c (b4_state_num_type): New.
+	(yy_state_num): Be computed from YYNSTATES.
+	* tests/linear: New.
+	* tests/torture.at (State number type): New.
+	Use it.
+
+2019-09-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc: introduce a type for states
+	* data/skeletons/yacc.c (yy_state_num): New.
+	Use it for arrays of states.
+
+2019-09-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: prefer symbolic values rather than litterals
+	Instead of
+
+	    #define YYPACT_NINF -130
+	    #define yypact_value_is_default(Yystate) \
+	      (!!((Yystate) == (-130)))
+
+	generate
+
+	    #define YYPACT_NINF (-130)
+	    #define yypact_value_is_default(Yyn) \
+	      ((Yyn) == YYPACT_NINF)
+
+	* data/skeletons/c.m4 (b4_table_value_equals): Add support for $4.
+	* data/skeletons/glr.c, data/skeletons/yacc.c: Use it.
+	Also, use shorter macro argument names, the name of the macro is clear
+	enough.
+
+2019-09-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: change misleading macro argument name
+	* data/skeletons/glr.c, data/skeletons/yacc.c
+	(yypact_value_is_default): It does not take a rule number as argument.
+
+2019-09-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	Merge remote-tracking branch 'upstream/maint'
+	* upstream/maint:
+	  c++: add copy ctors for compatibility with the IAR compiler
+	  CI: show git status
+	  CI: disable ICC
+	  tests: pass -jN from Make to the test suite
+	  quotearg: avoid leaks
+	  maint: post-release administrivia
+
+2019-09-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: add copy ctors for compatibility with the IAR compiler
+	Reported by Andreas Damm.
+	https://savannah.gnu.org/support/?110032
+
+	* data/skeletons/lalr1.cc (stack_symbol_type::operator=): New
+	overload, const, to please the IAR C++ compiler (version ca 2013).
+
+2019-09-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: show git status
+
+2019-09-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: disable ICC
+	It seems that Intel changed something in their license management.
+	https://github.com/nemequ/icc-travis/issues/15
+
+2019-09-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: pass -jN from Make to the test suite
+	I am sooooo tired of typing "make -j5 TESTSUITEFLAGS=-j5"...
+	Should have done this years ago.
+
+	* cfg.mk (TESTSUITEFLAGS): here.
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	quotearg: avoid leaks
+	Reported by Tomasz Kłoczko.
+	https://lists.gnu.org/archive/html/bug-bison/2019-09/msg00008.html
+
+	* src/main.c (main): Free quotearg's memory later.
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: get the screen width from the terminal
+	* bootstrap.conf: We need winsz-ioctl and winsz-termios.
+	* src/location.c (columns): Use winsize to get the number of
+	columns.
+	Code taken from the GNU Coreutils.
+	* src/location.h, src/location.c (caret_init): New.
+	* src/complain.c (complain_init): Call it.
+	* tests/bison.in: Export COLUMNS so that users of tests/bison can
+	enjoy proper line truncation.
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: don't print ellipsis on the caret line
+	From
+
+	    9 | ...TUVWXYZ  ABCDEFGHIJKLMNOPQRSTUVWXYZ  ABCDEFGHIJKL
+	      | ...         ^~~~~~~~~~~~~~~~~~~~~~~~~~
+
+	to
+
+	    9 | ...TUVWXYZ  ABCDEFGHIJKLMNOPQRSTUVWXYZ  ABCDEFGHI...
+	      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
+
+	* src/location.c (location_caret): here.
+	* tests/diagnostics.at: Adjust expectations.
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: also show truncation at the end of line with "..."
+	From
+
+	    9 | ...TUVWXYZ  ABCDEFGHIJKLMNOPQRSTUVWXYZ  ABCDEFGHIJKL
+	      | ...         ^~~~~~~~~~~~~~~~~~~~~~~~~~
+
+	to
+
+	    9 | ...TUVWXYZ  ABCDEFGHIJKLMNOPQRSTUVWXYZ  ABCDEFGHI...
+	      | ...         ^~~~~~~~~~~~~~~~~~~~~~~~~~
+
+	* src/location.c (location_caret): here.
+	* tests/diagnostics.at: Adjust expectations.
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: check that quoted lines are truncated
+	* tests/diagnostics.at (Screen width: 60 columns, Screen width: 80
+	columns, Screen width: 200 columns): New tests.
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: truncate quoted sources to fit the screen
+	* src/location.c (min_int, columns): New.
+	(location_caret): Compute the line width.  Based on it, compute how
+	many columns must be skipped before the quoted location and truncated
+	after, to fit the sceen width.
+	* tests/local.at (AT_QUELL_VALGRIND): Transform into...
+	(AT_SET_ENV_IF, AT_SET_ENV): these.
+	Define COLUMNS to protect the test suite from the user's environment.
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: learn how to count column number with multibyte chars
+	So far diagnostics were cheating: in addition to the 'column' field of
+	locations (based on actual screen width per multibyte characters and
+	on tabulation expansion), the scanner sets the 'byte' field.
+	Diagnostics used this byte count to decide where to insert (color)
+	style.
+
+	We want to be able to truncate the quoted lines when there are too
+	wide to fit the screen.  This requires that the diagnostics learn how
+	to count columns, the byte-in-boundary trick no longer works.
+
+	Bytes are still used for fix-its.
+
+	* bootstrap.conf: We need mbfile for mbf_getc.
+	* src/location.c (caret_info): We need an mbfile.
+	(caret_set_file): Initialize it.
+	(caret_getc): Convert to mbfile.
+	(location_caret): Instead of relying on the byte position to decide
+	where to insert the color style, count the current column using
+	boundary_compute.
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: style: rename member for clariy
+	* src/location.c (caret_info): Now that we no longer have a 'file'
+	member (see previous commit), rename 'source' as 'file'.
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: style: use a boundary to track the caret_info
+	* src/location.c (caret_info): Replace file and line with pos, a
+	boundary.  This will allow us to use features of the boundary type,
+	such as boundary_compute.
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: extract boundary_compute from location_compute
+	The handling of the contributions of the tabulations in the columns is
+	burried inside location_compute.  We will soon be willing to use the
+	boundary part of the computation (to compute the current column number
+	each time we read a multibyte char).
+
+	* src/location.c (boundary_compute): New, extracted from...
+	(location_compute): here.
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: style: add caret_set_file
+	To make the following commits easier to read.
+
+	* src/location.c (caret_set_file): New.
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: style: minor changes
+	* src/location.c (location_caret): Factor two branches of an if.
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: show git status
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	git: update ignores
+
+2019-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	git: update ignores
+
+2019-09-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	quotearg: avoid leaks
+	Reported by Tomasz Kłoczko.
+	https://lists.gnu.org/archive/html/bug-bison/2019-09/msg00008.html
+
+	* src/main.c (main): Free quotearg's memory later.
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: pass -jN from Make to the test suite
+	I am sooooo tired of typing "make -j5 TESTSUITEFLAGS=-j5"...
+	Should have done this years ago.
+
+	* cfg.mk (TESTSUITEFLAGS): here.
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	java: handle eof in yytranslate
+	* data/skeletons/lalr1.java (yytranslate_): Handle eof here, as is done
+	in lalr1.cc.
+	* tests/javapush.at: Adjust.
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: handle eof in yytranslate
+	This changes the traces from
+
+	    Reading a token:
+	    Now at end of input.
+
+	to
+
+	    Reading a token:
+	    Next token is token $end (7FFEE56E6474)
+
+	which is ok.  Actually it is even better, as it gives the location
+	when locations are enabled, and is clearer when rules explicitly use
+	the EOF token.
+
+	* data/skeletons/lalr1.d (yytranslate_): Handle eof here, as is done
+	in lalr1.cc.
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: use api.token.raw
+	* src/parse-gram.y: Here.
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	api.token.raw: document it
+	* doc/bison.texi: here.
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	api.token.raw: cannot be used with character literals
+	* src/parse-gram.y (CHAR): api.token.raw and character literals are
+	mutually exclusive.
+	* tests/input.at (Character literals and api.token.raw): New.
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	api.token.raw: apply to the other skeletons
+	* data/skeletons/c++.m4, data/skeletons/glr.c,
+	* data/skeletons/lalr1.c, data/skeletons/lalr1.java:
+	Add support for api.token.raw.
+
+	* tests/scanner.at: Check them.
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	api.token.raw: check it
+	* tests/local.at (AT_TOKEN_RAW_IF): New.
+	* tests/local.mk: New.
+	Use it.
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	api.token.raw: implement
+	Bison used to feature %raw, documented as follows:
+
+	    @item %raw
+	    The output file @file{@var{name}.h} normally defines the tokens with
+	    Yacc-compatible token numbers.  If this option is specified, the
+	    internal Bison numbers are used instead.  (Yacc-compatible numbers start
+	    at 257 except for single character tokens; Bison assigns token numbers
+	    sequentially for all tokens starting at 3.)
+
+	Unfortunately, as far as I can tell, it never worked: token numbers
+	are indeed changed in the generated tables (from external token number
+	to internal), yet the code was still applying the mapping from
+	external token numbers to internal token numbers.
+
+	This commit reintroduces the feature as it was expected to be.
+
+	* data/skeletons/bison.m4 (b4_token_format): When api.token.raw is
+	enabled, use the internal token number.
+	* data/skeletons/yacc.c (yytranslate): Don't emit if api.token.raw is
+	enabled.
+	(YYTRANSLATE): Adjust.
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: tidy yacc.c
+	* data/skeletons/yacc.c: Include 'c.m4' first.
+	Then sort the handling of %define variables.
+	* tests/input.at: Adjust.
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: disable ICC
+	It seems that Intel changed something in their license management.
+	https://github.com/nemequ/icc-travis/issues/15
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: fix use of complain_indent
+	* src/symtab.c (symbol_class_set): Here.
+	* tests/diagnostics.at, tests/input.at, tests/regression.at: Adjust
+	expectations.
+
+2019-09-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	input: stop treating lone CRs as end-of-lines
+	We used to treat lone CRs (\r, aka ^M) as regular NLs (\n), probably
+	to please Classic MacOS.  As of today, it makes more sense to treat \r
+	like a plain white space character.
+
+	https://lists.gnu.org/archive/html/bison-patches/2019-09/msg00027.html
+
+	* src/scan-gram.l (no_cr_read): Remove.  Instead, use...
+	(eol): this new abbreviation denoting end-of-line.
+	* src/location.c (caret_getc): New.
+	(location_caret): Use it.
+	* tests/diagnostics.at (Carriage return): Adjust expectations.
+	(CR NL): New.
+
+2019-09-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	Merge tag 'v3.4.2' into HEAD
+	bison 3.4.2
+
+	* tag 'v3.4.2': (24 commits)
+	  version 3.4.2
+	  CI: always uninstall icc
+	  news: more bug fixes thanks to Marc Schönefeld
+	  diagnostics: beware of unexpected EOF when quoting the source file
+	  gnulib: update
+	  build: fix distcheck
+	  tests: add noexcept to please GCC 9
+	  news: update
+	  fix: don't die when EOF token is defined twice
+	  tests: check token redeclaration
+	  yacc.c: beware of GCC's -Wmaybe-uninitialized
+	  glr.c: initialize vector of bools
+	  gnulib: update
+	  check for memory exhaustion
+	  diagnostics: avoid global variables
+	  diagnostics: fix invalid error message indentation
+	  git: ignore files generated in gnulib-po
+	  c++: avoid duplicate definition of YYUSE
+	  gnulib: update
+	  CI: more compilers
+	  ...
+
+2019-09-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2019-09-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.4.2
+	* NEWS: Record release date.
+
+2019-09-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: always uninstall icc
+
+2019-09-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	news: more bug fixes thanks to Marc Schönefeld
+
+2019-09-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: beware of unexpected EOF when quoting the source file
+	When the input file contains lone CRs (aka, ^M, \r), the locations see
+	a new line.  Diagnostics look only at \n as end-of-line, so sometimes
+	there is an offset in diagnostics.  Worse yet: sometimes we loop
+	endlessly waiting for \n to come from a continuous stream of EOF.
+
+	Fix that:
+	- check for EOF
+	- beware not to call end_use_class if begin_use_class was not
+	  called (which would abort).  This could happen if the actual
+	  line is shorter that the expected one.
+
+	Prompted by a (private) report from Marc Schönefeld.
+
+	* src/location.c (location_caret): here.
+	* tests/diagnostics.at (Carriage return): New.
+
+2019-09-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+	Contains the creation of the xhash module.
+	https://lists.gnu.org/archive/html/bug-gnulib/2019-09/msg00046.html
+
+	* src/muscle-tab.c, src/state.c, src/symtab.c, src/uniqstr.c:
+	Use hash_xinitialize.
+
+2019-09-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: fix distcheck
+	* configure.ac (gl_LIBOBJS): Adjust so that the generated files are
+	indeed the expected ones.
+
+2019-09-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: beware of unexpected EOF when quoting the source file
+	When the input file contains lone CRs (aka, ^M, \r), the locations see
+	a new line.  Diagnostics look only at \n as end-of-line, so sometimes
+	there is an offset in diagnostics.  Worse yet: sometimes we loop
+	endlessly waiting for \n to come from a continuous stream of EOF.
+
+	Fix that:
+	- check for EOF
+	- beware not to call end_use_class if begin_use_class was not
+	  called (which would abort).  This could happen if the actual
+	  line is shorter that the expected one.
+
+	Prompted by a (private) report from Marc Schönefeld.
+
+	* src/location.c (location_caret): here.
+	* tests/diagnostics.at (Carriage return): New.
+
+2019-09-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+	Contains the creation of the xhash module.
+	https://lists.gnu.org/archive/html/bug-gnulib/2019-09/msg00046.html
+
+	* src/muscle-tab.c, src/state.c, src/symtab.c, src/uniqstr.c:
+	Use hash_xinitialize.
+
+2019-09-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: fix distcheck
+	* configure.ac (gl_LIBOBJS): Adjust so that the generated files are
+	indeed the expected ones.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: add noexcept to please GCC 9
+	    bison/tests/c++.at:552: bison --color=no -fno-caret  -o list.cc list.y
+	    bison/tests/c++.at:552: $CXX $CXXFLAGS $CPPFLAGS  $LDFLAGS -o list list.cc $LIBS
+	    stderr:
+	    gcc9/c++/ext/new_allocator.h: In instantiation of 'void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = string; _Args = {string}; _Tp = string]':
+	    gcc9/c++/bits/alloc_traits.h:482:2:   required from 'static void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) [with _Up = string; _Args = {string}; _Tp = string; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<string>]'
+	    gcc9/c++/bits/stl_uninitialized.h:888:67:   required from 'void std::__relocate_object_a(_Tp*, _Up*, _Allocator&) [with _Tp = string; _Up = string; _Allocator = std::allocator<string>]'
+	    gcc9/c++/bits/stl_uninitialized.h:920:47:   required from '_ForwardIterator std::__relocate_a_1(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = string*; _ForwardIterator = string*; _Allocator = std::allocator<string>]'
+	    gcc9/c++/bits/stl_uninitialized.h:942:37:   required from '_ForwardIterator std::__relocate_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = string*; _ForwardIterator = string*; _Allocator = std::allocator<string>]'
+	    gcc9/c++/bits/stl_vector.h:430:35:   required from 'static constexpr bool std::vector<_Tp, _Alloc>::_S_nothrow_relocate(std::true_type) [with _Tp = string; _Alloc = std::allocator<string>; std::true_type = std::integral_constant<bool, true>]'
+	    gcc9/c++/bits/stl_vector.h:446:28:   required from 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const string&}; _Tp = string; _Alloc = std::allocator<string>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<string*, std::vector<string> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = string*]'
+	    gcc9/c++/bits/stl_vector.h:1195:4:   required from 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = string; _Alloc = std::allocator<string>; std::vector<_Tp, _Alloc>::value_type = string]'
+	    list.y:126:110:   required from here
+	    gcc9/c++/bits/vector.tcc:459:44:   in 'constexpr' expansion of 'std::vector<string>::_S_use_relocate()'
+	    list.y:41:7: error: but 'string::string(string&&)' does not throw; perhaps it should be declared 'noexcept' [-Werror=noexcept]
+	       41 |       string (string&& s)
+	          |       ^~~~~~
+
+	* tests/c++.at (Variants): Add noexcept where appropriate.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: add noexcept to please GCC 9
+	    bison/tests/c++.at:552: bison --color=no -fno-caret  -o list.cc list.y
+	    bison/tests/c++.at:552: $CXX $CXXFLAGS $CPPFLAGS  $LDFLAGS -o list list.cc $LIBS
+	    stderr:
+	    gcc9/c++/ext/new_allocator.h: In instantiation of 'void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = string; _Args = {string}; _Tp = string]':
+	    gcc9/c++/bits/alloc_traits.h:482:2:   required from 'static void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) [with _Up = string; _Args = {string}; _Tp = string; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<string>]'
+	    gcc9/c++/bits/stl_uninitialized.h:888:67:   required from 'void std::__relocate_object_a(_Tp*, _Up*, _Allocator&) [with _Tp = string; _Up = string; _Allocator = std::allocator<string>]'
+	    gcc9/c++/bits/stl_uninitialized.h:920:47:   required from '_ForwardIterator std::__relocate_a_1(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = string*; _ForwardIterator = string*; _Allocator = std::allocator<string>]'
+	    gcc9/c++/bits/stl_uninitialized.h:942:37:   required from '_ForwardIterator std::__relocate_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = string*; _ForwardIterator = string*; _Allocator = std::allocator<string>]'
+	    gcc9/c++/bits/stl_vector.h:430:35:   required from 'static constexpr bool std::vector<_Tp, _Alloc>::_S_nothrow_relocate(std::true_type) [with _Tp = string; _Alloc = std::allocator<string>; std::true_type = std::integral_constant<bool, true>]'
+	    gcc9/c++/bits/stl_vector.h:446:28:   required from 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const string&}; _Tp = string; _Alloc = std::allocator<string>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<string*, std::vector<string> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = string*]'
+	    gcc9/c++/bits/stl_vector.h:1195:4:   required from 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = string; _Alloc = std::allocator<string>; std::vector<_Tp, _Alloc>::value_type = string]'
+	    list.y:126:110:   required from here
+	    gcc9/c++/bits/vector.tcc:459:44:   in 'constexpr' expansion of 'std::vector<string>::_S_use_relocate()'
+	    list.y:41:7: error: but 'string::string(string&&)' does not throw; perhaps it should be declared 'noexcept' [-Werror=noexcept]
+	       41 |       string (string&& s)
+	          |       ^~~~~~
+
+	* tests/c++.at (Variants): Add noexcept where appropriate.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	news: update
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	fix: don't die when EOF token is defined twice
+	With
+
+	    %token EOF 0 EOF 0
+
+	we get
+
+	    input.y:3.14-16: warning: symbol EOF redeclared [-Wother]
+	        3 | %token EOF 0 EOF 0
+	          |              ^~~
+	    input.y:3.8-10: previous declaration
+	        3 | %token EOF 0 EOF 0
+	          |        ^~~
+	    Assertion failed: (nsyms == ntokens + nvars), function check_and_convert_grammar,
+	        file /Users/akim/src/gnu/bison/src/reader.c, line 839.
+
+	Reported by Marc Schönefeld.
+
+	* src/symtab.c (symbol_user_token_number_set): Register only the
+	first definition of the end of input token.
+	* tests/input.at (Symbol redeclared): Check that case.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: check token redeclaration
+	* src/symtab.c (symbol_class_set): Report previous definitions when
+	redeclared.
+	* tests/input.at (Symbol redeclared): New.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: beware of GCC's -Wmaybe-uninitialized
+	Test 400 (calc.at:773: testing Calculator api.push-pull=both
+	api.pure=full parse.error=verbose %debug %locations %defines
+	api.prefix={calc} %verbose %yacc) fails on the CI with GCC 8 on
+	Bionic:
+
+	    400. calc.at:773: testing Calculator api.push-pull=both api.pure=full parse.error=verbose %debug %locations %defines api.prefix={calc} %verbose %yacc  ...
+	    ../../tests/calc.at:773: bison --color=no -fno-caret -Wno-deprecated -o calc.c calc.y
+	    ../../tests/calc.at:773: $CC $CFLAGS $CPPFLAGS  $LDFLAGS -o calc calc.c calc-lex.c calc-main.c $LIBS
+	    stderr:
+	    calc.y: In function 'int calcpush_parse(calcpstate*, int, const CALCSTYPE*, CALCLTYPE*)':
+	    calc.y:26:20: error: 'yylval.CALCSTYPE::ival' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+	     %printer { fprintf (yyo, "%d", $$); } <ival>;
+	                        ^
+	    calc.c:1272:9: note: 'yylval.CALCSTYPE::ival' was declared here
+	     YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
+	             ^~~~~~
+	    cc1plus: all warnings being treated as errors
+	    stdout:
+	    ../../tests/calc.at:773: exit code was 1, expected 0
+	    400. calc.at:773: 400. Calculator api.push-pull=both api.pure=full parse.error=verbose %debug %locations %defines api.prefix={calc} %verbose %yacc  (calc.at:773): FAILED (calc.at:773)
+
+	* data/skeletons/c.m4 (yy_symbol_value_print): Disable the warning
+	locally.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.c: initialize vector of bools
+	The CI, with CC='gcc-7 -fsanitize=undefined,address
+	-fno-omit-frame-pointer', reports:
+
+	    calc.cc:1652:50: runtime error: load of value 190, which is not a valid value for type 'bool'
+	    ../../tests/calc.at:867: cat stderr
+	    --- expout	2019-09-05 20:30:37.887257545 +0000
+	    +++ /home/travis/build/bison-3.4.1.72-79a1-dirty/_build/tests/testsuite.dir/at-groups/438/stdout	2019-09-05 20:30:37.887257545 +0000
+	    @@ -1 +1,2 @@
+	     syntax error
+	    +calc.cc:1652:50: runtime error: load of value 190, which is not a valid value for type 'bool'
+	    438. calc.at:867: 438. Calculator glr.cc  (calc.at:867): FAILED (calc.at:867)
+
+	The problem is that yylookaheadNeeds is not initialized in
+	yyinitStateSet, and when it is copied, the value is not 0 or 1.
+
+	* data/skeletons/glr.c (yylookaheadNeeds): Initialize yylookaheadNeeds.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+	Contains a fix for
+	https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00016.html.
+	See
+	https://lists.gnu.org/archive/html/bug-gnulib/2019-09/msg00005.html.
+	Reported by 江 祖铭 (Zu-Ming Jiang).
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	check for memory exhaustion
+	hash_initialize returns NULL when out of memory.  Check for it, and
+	die cleanly instead of crashing.
+
+	Reported by 江 祖铭 (Zu-Ming Jiang).
+	https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00015.html
+
+	* src/muscle-tab.c, src/state.c, src/symtab.c, src/uniqstr.c:
+	Check the value returned by hash_initialize.
+
+2019-09-08  László Várady  <laszlo.varady93@gmail.com>
+
+	diagnostics: avoid global variables
+	* src/complain.c (indent_ptr): Remove.
+	(error_message, complains): Take indent as an argument.
+	Adjust callers.
+
+2019-09-08  László Várady  <laszlo.varady93@gmail.com>
+
+	diagnostics: fix invalid error message indentation
+	https://lists.gnu.org/archive/html/bison-patches/2019-08/msg00007.html
+
+	When Bison is started with a flag that suppresses warning messages, the
+	error_message() function can produce a few gigabytes of indentation
+	because of a dangling pointer.
+
+	* src/complain.c (error_message): Don't reset indent_ptr here, but...
+	(complain_indent): here.
+	* tests/diagnostics.at (Indentation with message suppression): Check
+	this case.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	git: ignore files generated in gnulib-po
+	Because of them, the CI generates "-dirty" tarballs.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: avoid duplicate definition of YYUSE
+	Reported by Frank Heckenbach.
+	https://lists.gnu.org/archive/html/bug-bison/2019-06/msg00009.html
+
+	* data/skeletons/lalr1.cc (b4_shared_declarations): Remove the
+	duplicate definition of YYUSE, the other one coming from
+	b4_attribute_define.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+	This update brings file from Gettext 0.20, which is not available on
+	the CI yet.
+
+	.travis.yml: Adjust.
+	Use Bionic now that it's available.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: more compilers
+	* .travis.yml: Bionic is now available, with GCC8.
+	GCC7 sanitizers work, but they are too longer: cover only part 1.
+	Redefine part 1 and part 2 so that part 1 is really the core of the
+	tests: not playing with POSIX and C++ compiler for C code.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: fail fast
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: propagate sftp failures
+	* .travis.yml (stage: "compile"): here.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: avoid useless git costs
+	Travis answered favorably to my suggestion to provide a means to
+	disable git clone on some jobs (issue 7542).  See
+	https://docs.travis-ci.com/user/customizing-the-build/#disabling-git-clone.
+
+	* .travis.yml: Disable git globally, enable it for i. the compile job,
+	and ii. the test job on ICC which needs the install-icc.sh script.
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: factor
+	* .travis.yml (Clang 7 libc++ and ASAN part 2): Reuse bits from "Clang
+	7 libc++ and ASAN part 1".
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+	Contains a fix for
+	https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00016.html.
+	See
+	https://lists.gnu.org/archive/html/bug-gnulib/2019-09/msg00005.html.
+	Reported by 江 祖铭 (Zu-Ming Jiang).
+
+2019-09-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	fix: don't die when EOF token is defined twice
+	With
+
+	    %token EOF 0 EOF 0
+
+	we get
+
+	    input.y:3.14-16: warning: symbol EOF redeclared [-Wother]
+	        3 | %token EOF 0 EOF 0
+	          |              ^~~
+	    input.y:3.8-10: previous declaration
+	        3 | %token EOF 0 EOF 0
+	          |        ^~~
+	    Assertion failed: (nsyms == ntokens + nvars), function check_and_convert_grammar,
+	        file /Users/akim/src/gnu/bison/src/reader.c, line 839.
+
+	Reported by Marc Schönefeld.
+
+	* src/symtab.c (symbol_user_token_number_set): Register only the
+	first definition of the end of input token.
+	* tests/input.at (Symbol redeclared): Check that case.
+
+2019-09-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: check token redeclaration
+	* src/symtab.c (symbol_class_set): Report previous definitions when
+	redeclared.
+	* tests/input.at (Symbol redeclared): New.
+
+2019-09-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.c: initialize vector of bools
+	The CI, with CC='gcc-7 -fsanitize=undefined,address
+	-fno-omit-frame-pointer', reports:
+
+	    calc.cc:1652:50: runtime error: load of value 190, which is not a valid value for type 'bool'
+	    ../../tests/calc.at:867: cat stderr
+	    --- expout	2019-09-05 20:30:37.887257545 +0000
+	    +++ /home/travis/build/bison-3.4.1.72-79a1-dirty/_build/tests/testsuite.dir/at-groups/438/stdout	2019-09-05 20:30:37.887257545 +0000
+	    @@ -1 +1,2 @@
+	     syntax error
+	    +calc.cc:1652:50: runtime error: load of value 190, which is not a valid value for type 'bool'
+	    438. calc.at:867: 438. Calculator glr.cc  (calc.at:867): FAILED (calc.at:867)
+
+	The problem is that yylookaheadNeeds is not initialized in
+	yyinitStateSet, and when it is copied, the value is not 0 or 1.
+
+	* data/skeletons/glr.c (yylookaheadNeeds): Initialize yylookaheadNeeds.
+
+2019-09-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: beware of GCC's -Wmaybe-uninitialized
+	Test 400 (calc.at:773: testing Calculator api.push-pull=both
+	api.pure=full parse.error=verbose %debug %locations %defines
+	api.prefix={calc} %verbose %yacc) fails on the CI with GCC 8 on
+	Bionic:
+
+	    400. calc.at:773: testing Calculator api.push-pull=both api.pure=full parse.error=verbose %debug %locations %defines api.prefix={calc} %verbose %yacc  ...
+	    ../../tests/calc.at:773: bison --color=no -fno-caret -Wno-deprecated -o calc.c calc.y
+	    ../../tests/calc.at:773: $CC $CFLAGS $CPPFLAGS  $LDFLAGS -o calc calc.c calc-lex.c calc-main.c $LIBS
+	    stderr:
+	    calc.y: In function 'int calcpush_parse(calcpstate*, int, const CALCSTYPE*, CALCLTYPE*)':
+	    calc.y:26:20: error: 'yylval.CALCSTYPE::ival' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+	     %printer { fprintf (yyo, "%d", $$); } <ival>;
+	                        ^
+	    calc.c:1272:9: note: 'yylval.CALCSTYPE::ival' was declared here
+	     YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
+	             ^~~~~~
+	    cc1plus: all warnings being treated as errors
+	    stdout:
+	    ../../tests/calc.at:773: exit code was 1, expected 0
+	    400. calc.at:773: 400. Calculator api.push-pull=both api.pure=full parse.error=verbose %debug %locations %defines api.prefix={calc} %verbose %yacc  (calc.at:773): FAILED (calc.at:773)
+
+	* data/skeletons/c.m4 (yy_symbol_value_print): Disable the warning
+	locally.
+
+2019-09-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr1.cc: fix LAC support
+	* data/skeletons/lalr1.cc (ctor): Initialize yy_lac_established_.
+	This is quite painful to write, and ugly to read.
+
+2019-09-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: fix comment
+	* tests/atlocal.in: here.
+
+2019-09-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: more compilers
+	* .travis.yml: Bionic is now available, with GCC8.
+	GCC7 sanitizers work, but they are too longer: cover only part 1.
+	Redefine part 1 and part 2 so that part 1 is really the core of the
+	tests: not playing with POSIX and C++ compiler for C code.
+
+2019-09-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: fail fast
+
+2019-09-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+	This update brings file from Gettext 0.20, which is not available on
+	the CI yet.
+
+	.travis.yml: Adjust.
+	Use Bionic now that it's available.
+
+2019-09-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	check for memory exhaustion
+	hash_initialize returns NULL when out of memory.  Check for it, and
+	die cleanly instead of crashing.
+
+	Reported by 江 祖铭 (Zu-Ming Jiang).
+	https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00015.html
+
+	* src/muscle-tab.c, src/state.c, src/symtab.c, src/uniqstr.c:
+	Check the value returned by hash_initialize.
+
+2019-08-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	news: LAC for C++
+
+2019-08-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: remove useless imports
+	* examples/d/calc.y, tests/calc.at: here.
+
+2019-08-18  László Várady  <laszlo.varady93@gmail.com>
+
+	diagnostics: avoid global variables
+	* src/complain.c (indent_ptr): Remove.
+	(error_message, complains): Take indent as an argument.
+	Adjust callers.
+
+2019-08-18  László Várady  <laszlo.varady93@gmail.com>
+
+	diagnostics: fix invalid error message indentation
+	https://lists.gnu.org/archive/html/bison-patches/2019-08/msg00007.html
+
+	When Bison is started with a flag that suppresses warning messages, the
+	error_message() function can produce a few gigabytes of indentation
+	because of a dangling pointer.
+
+	* src/complain.c (error_message): Don't reset indent_ptr here, but...
+	(complain_indent): here.
+	* tests/diagnostics.at (Indentation with message suppression): Check
+	this case.
+
+2019-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: use resize to shrink a vector
+	Suggested by Adrian Vogelsgesang.
+	https://lists.gnu.org/archive/html/bison-patches/2019-08/msg00009.html
+
+	* data/skeletons/lalr1.cc (yy_lac_check_): here.
+
+2019-08-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr1.cc: check LAC support
+	* tests/conflicts.at, tests/input.at, tests/regression.at: here.
+
+2019-08-09  Adrian Vogelsgesang  <avogelsgesang@tableau.com>
+
+	lalr1.cc: add LAC support
+	Implement lookahead correction (LAC) for the C++ skeleton.  LAC is a
+	mechanism to make sure that we report the correct list of expected
+	tokens if a syntax error occurs.  So far, LAC was only supported for
+	the C skeleton "yacc.c".
+
+	* data/skeletons/lalr1.cc: Add LAC support.
+	* doc/bison.texi: Update.
+
+2019-08-09  Adrian Vogelsgesang  <avogelsgesang@tableau.com>
+
+	style: readability improvements to yacc.c
+	* data/skeletons/yacc.c (yysyntax_error): Change the nesting of `m4`
+	conditions slightly to make it more readable.
+	The generated C code stays unchanged.
+
+2019-08-09  Adrian Vogelsgesang  <avogelsgesang@tableau.com>
+
+	lalr1.cc: reduce "scope"
+	* data/skeletons/lalr1.cc (yy_lr_goto_state_): Make it static.
+
+2019-08-09  Adrian Vogelsgesang  <avogelsgesang@tableau.com>
+
+	lalr1.cc: fix indentation of table declarations in the header
+	* data/skeletons/lalr1.cc: Fix indentation of table declarations in
+	the generated header.
+
+2019-08-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: prepare LAC tests for more languages
+	* tests/regression.at: Use %expect to avoid warnings.
+	Set the keywords to facilitate running specific tests.
+	Use macros such as AT_YYLEX_DECLARE to facilitate tests for other
+	languages.
+	Likewise for AT_FULL_COMPILE.
+
+2019-08-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	git: ignore files generated in gnulib-po
+	Because of them, the CI generates "-dirty" tarballs.
+
+2019-07-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: use the modern argmatch interface
+	* src/complain.h (warnings): Remove Werror.
+	Adjust dependencies.
+	Sort.
+	Remove useless comments (see the doc in argmatch group).
+	* src/complain.c (warnings_args, warnings_types): Remove.
+	(warning_argmatch): Use argmatch_warning_value.
+	(warnings_print_categories): Use argmatch_warning_argument.
+
+2019-07-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: avoid spurious empty lines in the option table
+	In Texinfo. empty lines in multitable rows generate empty lines in the
+	output.  Avoid them altogether.
+
+	With help from Gavin Smith.
+	https://lists.gnu.org/archive/html/bug-texinfo/2019-07/msg00000.html
+
+	* build-aux/cross-options.pl: Separate rows with empty lines.
+	So, to be more readable, generate a single line for each row.
+	Use Perl format to this end.
+
+2019-07-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	--fixed-output-files: detach from --yacc
+	See the previous commit.  This option should be removed, -o suffices.
+
+	* src/getargs.c (FIXED_OUTPUT_FILES): New.
+	Add support for it.
+	(getargs): Define loc, and use it.
+	This is safer when we need to pass a pointer to a location.
+
+2019-07-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	%fixed-output-files: detach from %yacc
+	The name fixed-output-files is pretty clear: generate y.tab.c, as Yacc
+	does.  So let's detach this from %yacc which does more: it requires
+	POSIX Yacc behavior.
+
+	This directive is obsolete since December 29th 2001
+	8c9a50bee13474c1491df8f79f075f5214dda0d1.  It does not show in the
+	doc.  I don't want to spend more time on improving its diagnostics, it
+	could be removed just as well as far as I'm concerned.
+
+	* src/scan-gram.l, src/parse-gram.y (%fixed-output-files): Detach from
+	%yacc.
+
+2019-07-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: clarify control flow
+	* src/getargs.c (language_argmatch): Initialize msg.
+	Check it instead of relying on a return.
+
+2019-07-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	remove MS-DOS support
+	DJGPP support was dropped in Bison 3.3
+	(c239e53bab8e87b30889ac446d3b513da9951a35).
+
+	AS_FILE_NAME was introduced in
+	ae4048011562c250d2f3c96687422d99a38745ce.
+
+	* src/getargs.c (AS_FILE_NAME): Remove.
+
+2019-07-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: declare options in the same order as in --help
+	* src/getargs.c (long_options): here.
+
+2019-07-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-07-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+	Contains a fix for argmatch to get proper man pages.
+	See https://lists.gnu.org/archive/html/bug-gnulib/2019-07/msg00038.html
+
+2019-07-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment change
+	* src/getargs.c: here.
+
+2019-07-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: remove the --report=look-aheads alias
+	Years ago we moved from 'look-ahead' to 'lookahead', and that alias
+	was kept for backward compatibility.  But now that we use argmatch to
+	generate the documentation, that value clutters the doc.
+
+	* src/getargs.c (argmatch_report_args): Remove the
+	--report=look-aheads alias.
+
+2019-07-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: fix inaccuracies wrt --define and --force-define
+	The doc says that -Dfoo=bar is the same as %define foo "bar".  It is
+	not: the quotes are not added (and it makes a difference).
+
+	* doc/bison.texi (Tuning the Parser): Fix the definition of -D/-F
+	* src/getargs.c (usage): Likewise.
+
+2019-07-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: put diagnostics related options together
+	* doc/bison.texi (Diagnostics): New section.
+	Move --warning, --color and --style there.
+	* src/getargs.c (usage): Likewise.
+
+2019-07-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: move -y's documentation into "Tuning the Parser"
+	Let's clarify --help: use clearer "section" names, as in the doc.
+	Move --yacc to where it belongs.
+
+	* src/getargs.c (usage): Rename "Parser" as "Tuning the Parser", as in
+	the doc.
+	Rename "Output" as "Output Files"
+	Move --yacc to "Tuning the Parser".
+	* doc/bison.texi: Likewise.
+
+2019-07-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: document colorized diagnostics
+	* src/getargs.c (argmatch_color_group): New.
+	(usage): Document --color and --style.
+	* doc/bison.texi (Bison Options): Split into three subsections.
+	Document --color and --style.
+
+2019-07-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: use new features of the argmatch module
+	It can now generate the usage message.
+
+	* src/complain.h (feature_fixit_parsable): Rename as...
+	(feature_fixit): this, for column economy.
+	Adjust dependencies.
+	(warning_usage): New.
+	Use it.
+	* src/complain.h, src/complain.c, src/getargs.h, src/getargs.c:
+	Use ARGMATCH_DEFINE_GROUP instead of the older interface.
+
+2019-07-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	preserve the indentation in the ouput
+	Preserve the actions' initial indentation.  For instance, on
+
+	    | %define api.value.type {int}
+	    | %%
+	    | exp: exp '/' exp { if ($3)
+	    |                     $$ = $1 + $3;
+	    |                   else
+	    |                     $$ = 0; }
+
+	we used to generate
+
+	    |     { if (yyvsp[0])
+	    |                     yyval = yyvsp[-2] + yyvsp[0];
+	    |                   else
+	    |                    yyval = 0; }
+
+	now we produce
+
+	    |                  { if (yyvsp[0])
+	    |                     yyval = yyvsp[-2] + yyvsp[0];
+	    |                   else
+	    |                     yyval = 0; }
+
+	See https://lists.gnu.org/archive/html/bison-patches/2019-06/msg00012.html.
+
+	* data/skeletons/bison.m4 (b4_symbol_action): Output the code in
+	column 0, leave indentation matters to the C code.
+	* src/output.c (user_actions_output): Preserve the incoming
+	indentation in the output.
+	(prepare_symbol_definitions): Likewise for %printer/%destructor.
+	* tests/synclines.at (Output columns): New.
+
+2019-07-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: prefer passing locations by pointer
+	The code is inconsistent: sometimes we pass by value, sometimes by
+	reference.  Let's stick to the last, more conventional for large
+	values in C.
+
+	* src/scan-code.l: Pass locations by reference.
+
+2019-06-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: avoid duplicate definition of YYUSE
+	Reported by Frank Heckenbach.
+	https://lists.gnu.org/archive/html/bug-bison/2019-06/msg00009.html
+
+	* data/skeletons/lalr1.cc (b4_shared_declarations): Remove the
+	duplicate definition of YYUSE, the other one coming from
+	b4_attribute_define.
+
+2019-06-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment changes
+	* examples/c/lexcalc/local.mk, examples/c/reccalc/local.mk:
+	Here.
+
+2019-06-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: restructure for clarity
+	* tests/calc.at (AT_CALC_MAIN, AT_CALC_LEX): Rewrite on top of
+	AT_LANG_DISPATCH.
+
+2019-06-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: track locations
+	* configure.ac (DCFLAGS): Pass -g.
+	* data/skeletons/d.m4 (b4_locations_if): Remove, let bison.m4's one do
+	its job.
+	* data/skeletons/lalr1.d (position): Leave filename empty by default.
+	(position::toString): Don't print empty file names.
+	(location::this): New ctor.
+	(location::toString): Match the implementations of C/C++.
+	(yy_semantic_null): Leave undefined, the previous implementation does
+	not compile.
+	* tests/calc.at: Improve the implementation for D.
+	Enable more checks, in particular using locations.
+	* tests/local.at (AT_YYERROR_DEFINE(d)): Fix its implementation.
+
+2019-06-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: style changes
+	* data/skeletons/lalr1.d: Use a more traditional quotation scheme.
+	Formatting changes.
+
+2019-06-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: put internal details inside the parser
+	Avoid name clashes, etc.
+
+	* data/skeletons/lalr1.d (YYStackElement, YYStack): Move inside the
+	parser.
+
+2019-06-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2019-06-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	remove "experimental" warnings
+	Sadly enough, AFAIK, there were never answers to the "More user
+	feedback will help to stabilize it" sentences.  Remove them.
+
+	* src/getargs.c: IELR, canonical LR and XML output are here to stay,
+	and they are no more experimental than some other features.
+	* doc/bison.texi: Likewise.
+	Also remove "experimental" warning for Java, LAC, LR tuning options,
+	and named references.
+
+2019-06-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: propagate sftp failures
+	* .travis.yml (stage: "compile"): here.
+
+2019-06-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: honor %define parse.trace
+	* data/skeletons/lalr1.d: Don't generate debug code if parse.trace is
+	not enabled.
+
+2019-06-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: style changes
+	* data/skeletons/lalr1.d: here.
+
+2019-06-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: prefer delegation to duplication
+	* data/skeletons/lalr1.d: Delegate the construction of the scanner.
+
+2019-06-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: enable #line output
+	* data/skeletons/d.m4 (b4_sync_start): New.
+
+2019-06-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: style changes
+	* data/skeletons/lalr1.d: here.
+	* examples/d/calc.y: Remove incorrect support for decimal numbers.
+	Formatting changes.
+
+2019-06-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes in glr.c
+	* data/skeletons/glr.c: here.
+
+2019-06-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	java: honor %define parse.trace
+	* data/skeletons/lalr1.java: Don't generate debug code if parse.trace
+	is not enabled.
+
+2019-06-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	java: fix support for api.prefix
+	* data/skeletons/java.m4: here.
+	* tests/java.at: Check it.
+
+2019-06-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	java: style changes
+	* data/skeletons/lalr1.java: Use more conventional function names for
+	Java.
+	Prefer < and <= to => and >.
+	Use the same approach for m4 quotation as in the other skeletons.
+	Fix indentation issues.
+
+	* tests/calc.at, tests/java.at, tests/javapush.at: Fix quotation style.
+	(main): Use 'args', not 'argv', the former seems more conventional and
+	is used elsewhere in Bison.
+	Prefer character literals to integers to denote characters.
+	* examples/java/Calc.y: Likewise.
+
+2019-06-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: avoid useless git costs
+	Travis answered favorably to my suggestion to provide a means to
+	disable git clone on some jobs (issue 7542).  See
+	https://docs.travis-ci.com/user/customizing-the-build/#disabling-git-clone.
+
+	* .travis.yml: Disable git globally, enable it for i. the compile job,
+	and ii. the test job on ICC which needs the install-icc.sh script.
+
+2019-06-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: simplify strings to translate
+	* src/conflicts.c (log_resolution): Don't translate indentation.
+
+2019-06-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes, propagate const
+	* src/conflicts.c (conflicts_output): here.
+
+2019-06-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: use clearer types
+	* src/conflicts.c (conflicts): Array of Booleans.
+
+2019-06-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: prefer %empty
+	* tests/regression.at: here.
+
+2019-06-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: factor
+	* .travis.yml (Clang 7 libc++ and ASAN part 2): Reuse bits from "Clang
+	7 libc++ and ASAN part 1".
+
+2019-06-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	lr0: more debug traces
+	* src/lr0.c (kernel_check): New.
+	(new_itemsets, save_reductions): Add traces.
+
+2019-06-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	traces: add some colors
+	This is an experiment.  Maybe more styles will be used (in which case
+	a short-hand function will be useful), maybe it will be just reverted.
+	* data/bison-default.css (.traces0): New.
+	* src/lalr.c (lalr): Use it.
+
+2019-06-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: make sure the default action properly works in C++
+	See e3fdc370495ffdedadd6ac621e32e34a0e1a9de0: in C++ we generate
+	explicitly the code for the default action instead of simply copying
+	blindly the semantic value buffer.  This is important when copying
+	raw memory is not enough, as exemplified by move-only types.
+
+	This is currently tested by examples/c++/variant.yy and variant-11.yy.
+	But it is safer to also have a test in the main test suite.
+
+	* tests/local.at (AT_REQUIRE_CXX_STD): Fix.
+	(AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Define/undefine
+	AT_BISON_OPTIONS.
+	* tests/c++.at (Default action): New.
+
+2019-06-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: main: support -s and -p
+	* tests/local.at (AT_MAIN_DEFINE(c), AT_MAIN_DEFINE(c++)): here.
+
+2019-06-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: remove useless support of '.' in integers
+	* tests/calc.at: here.
+	* doc/bison.texi: Avoid uninitialized variables.
+
+2019-05-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: refactor checks on sets
+	It will be convenient to check sets elsewhere.
+
+	* tests/sets.at (AT_EXTRACT_SETS): Transform into...
+	* tests/local.at (AT_SETS_CHECK): this.
+	* tests/sets.at: Adjust.
+
+2019-05-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	update-test: some file names have dashes in them
+	* build-aux/update-test (log): Rename as...
+	(trace): this, to avoid clashes with the log variable.
+	(getargs): Clarify the type of the arguments.
+
+2019-05-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: take SHELL into account
+	Reported by Dennis Clarke.
+	http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00053.html
+
+	* examples/local.mk, tests/local.mk: here.
+
+2019-05-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update to get gnulib translations
+	This update contains a fix needed for gnulib-po to work properly.
+	https://lists.gnu.org/archive/html/bug-gnulib/2019-05/msg00146.html
+
+2019-05-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: clarify the purpose of symbol_type constructors
+	Reported by Frank Heckenbach.
+	http://lists.gnu.org/archive/html/bug-bison/2019-02/msg00006.html
+
+	* doc/bison.texi (Complete Symbols): Here.
+
+2019-05-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	thanks: fix an address
+
+2019-05-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2019-05-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.4.1
+	* NEWS: Record release date.
+
+2019-05-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2019-05-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: remove useless apt-get update
+	The apt addons already ran it for us, it is not needed.
+
+	* .travis.yml: here.
+
+2019-05-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: beware of to_string portability issues
+	Reported by Bruno Haible.
+	http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00033.html
+
+	* m4/bison-cxx-std.m4 (_BISON_CXXSTD_11_snippet): Check it.
+
+2019-05-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: avoid Texinfo portability issues
+	Reported by Bruno Haible.
+	http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00024.html
+	Fixed by Karl Berry.
+	http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00034.html
+
+	* doc/bison.texi: Don't specify the langage, rely on the default.
+	Avoid blank pages.
+
+2019-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: don't run those that require f?lex when it's not available
+	Reported by Bruno Haible.
+	http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00026.html
+
+	* configure.ac (FLEX_WORKS): New.
+	* examples/c/lexcalc/local.mk, examples/c/reccalc/local.mk: Use it.
+
+2019-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: don't crash when libtextstyle is installed
+	Reported by neok m4700.
+	https://lists.gnu.org/archive/html/bison-patches/2019-05/msg00025.html
+	https://github.com/akimd/bison/pull/11
+
+	* src/complain.c (complain_init_color): style_file_prepare _needs_ a
+	string as second argument.
+
+2019-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: avoid useless git costs
+	The final gain is small: 2h2min instead 2h9min.  But that is still an
+	improvement.
+
+	* .travis.yml (git.depth): Make the clone very shallow.
+	(git.submodules): Don't clone gnulib in test jobs.
+	(jobs.include.compile.script): Do it here.
+
+2019-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	fix: copyable instead of copiable
+	Reported by Frank Heckenbach.
+	http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00020.html
+
+	* data/skeletons/lalr1.cc, doc/bison.texi: here.
+
+2019-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2019-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.4
+	* NEWS: Record release date.
+
+2019-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	fix: use copiable, not copyable
+	Reported by Hans Åberg.
+	http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00017.html
+
+	* data/skeletons/lalr1.cc, doc/bison.texi: here.
+
+2019-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update for 3.4
+
+2019-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: adjust to GCC9 diagnostics with a margin
+	* tests/synclines.at (_AT_SYNCLINES_COMPILE): Remove the margin.
+
+2019-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: %pure-parser is obsolete
+	Reported by Uxio Prego.
+	http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00029.html
+
+	* src/scan-gram.l, src/parse-gram.y (PERCENT_PURE_PARSER)
+	(handle_pure_parser): New.
+	Issue a deprecation/update notice for %pure-parser.
+	* doc/bison.texi (Java Bison Interface): Don't mention %pure-parser.
+	* tests/actions.at, tests/input.at: Adjust.
+
+2019-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: clean up convention for colored diagnostics
+	* data/diagnostics.css: Rename as...
+	* data/bison-default.css: this.
+	Add the GPL header.
+	This is the convention followed by Bruno Haible in gettext.
+	Adjust dependencies.
+	* src/complain.c (complain_init_color): Use BISON_STYLE instead of
+	BISON_DIAGNOSTICS_STYLE.
+
+2019-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: use a pipeline: first build the tarball, then check it
+	Build the tarball in one job, check it in many.
+	Unfortunately no real gain in overall duration.
+	With help from Clément Démoulins.
+
+	* .travis.yml: here.
+	Remove all the tricks that were used to be able to boostrap on old
+	distros.
+	(before_install): Merge into 'script', because before_install applies
+	to all the jobs, and we don't want to run it for the 'compile' job.
+
+2019-05-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: fix srcdir/builddir issues
+	* examples/d/local.mk, examples/java/local.mk: here.
+
+2019-05-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+	In preparation for Bison 3.4, revert to the version before this
+	commit:
+
+	    commit 03752516b21091cf3c4beea7e8b9bcad462d50ed
+	    Author: John Darrington <john@darrington.wattle.id.au>
+	    Date:   Sun May 12 00:42:36 2019 +0200
+
+	    version-etc: Ease translation.
+
+	    * lib/version-etc.c (version_etc_arn, emit_bug_reporting_address):
+	    Move URLs and formatting newlines out of translatable string.
+
+	because it changes the messages for --version, translated in
+	gnulib.po.  These changes are not yet available on the translation
+	project, so we would have a regression in the set of translated
+	strings.
+
+2019-05-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: do not use $< in plain rules
+	It works only in implicit rules (or with GNU Make, but not with
+	Solaris Make).
+
+	Reported by Bruno Haible.
+	http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00009.html
+	Diagnosed thanks to Kiyoshi Kanazawa.
+
+	* examples/c/reccalc/local.mk, examples/d/local.mk,
+	* examples/java/local.mk: Don't use $< in non implicit rules.
+
+2019-05-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2019-05-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.3.91
+	* NEWS: Record release date.
+
+2019-05-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2019-05-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2019-05-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: remove incorrect comment
+	* src/getargs.c: here.
+	It's documented in getargs.h anyway.
+
+2019-05-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: use colors for diagnostics in TeX too
+	Thanks to Gavin Smith and Patrice Dumas.
+	http://lists.gnu.org/archive/html/help-texinfo/2019-04/msg00015.html
+
+	* doc/bison.texi (@colorWarning, @colorError, @colorNotice)
+	(@colorOff): Define for TeX and HTML.
+	(@dwarning, @derror, @dnotice): Use them.
+
+2019-05-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update to fix location tracking in UTF-8 on Solaris
+	This update contains Bruno Haible's fix for the location tracking
+	issue reported by Kiyoshi Kanazawa.
+
+	https://lists.gnu.org/archive/html/bug-gnulib/2019-05/msg00020.html
+	https://lists.gnu.org/archive/html/bug-bison/2019-04/msg00020.html
+
+2019-05-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: rename --style=debug as --color=debug
+	It is more consistent with --color=html, --color=test, etc.
+
+	* src/getargs.h, src/getargs.c (style_debug): Rename as...
+	(color_debug): this.
+	(getargs_colors): Rename --style=debug as --color=debug.
+	Adjust dependencies.
+
+2019-05-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: support --color=html
+	Based on a message from Bruno Haible.
+	https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commitdiff;h=fe18e92743b7226791a5f28d7c786941a1bf8cc9
+
+	This does not generate proper HTML: special characters are not escaped
+	for instance.  This is a hidden feature meant for Bison developers,
+	not end users.
+
+	* src/complain.c (complain_init_color): Support --color=html.
+
+2019-05-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: use %empty instead of comments
+	* tests/c++.at, tests/glr-regression.at: here.
+
+2019-05-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	fixits: sort them before applying them
+	An experimental commit introduced a fix-it hint that changes comments
+	such as "/* empty */" into %empty.  But in some case, because
+	diagnostics are not necessarily emitted in order, the fixits also come
+	in disorder, which must never happen, as the fixes are installed in
+	one pass.
+
+	* src/fixits.c (fixits_register): Insert them in order.
+
+2019-05-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: use warning_is_enabled instead of duplicating it
+	* src/complain.c (deprecated_directive): Here.
+
+2019-05-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	fixits: be sure to preserve the action when adding %empty
+	Currently we remove the rhs to install %empty instead.
+
+	* src/reader.c (grammar_rule_check_and_complete): Insert the missing
+	%empty in front of the rhs, not in replacement thereof.
+	* tests/actions.at (Add missing %empty): Check that.
+
+2019-05-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: don't duplicate the portability prologue
+	* tests/actions.at, tests/input.at: Don't repeat the prologue, skip it.
+	* tests/diagnostics.at, tests/local.at: Comment changes.
+
+2019-05-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: use consistently *_loc for locations
+	Some members are called foo_location, others are foo_loc.  Stick to
+	the latter.
+
+	* src/gram.h, src/location.h, src/location.c, src/output.c,
+	* src/parse-gram.y, src/reader.h, src/reader.c, src/reduce.c,
+	* src/scan-gram.l, src/symlist.h, src/symlist.c, src/symtab.h,
+	* src/symtab.c:
+	Use _loc consistently, not _location.
+
+2019-05-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: clarify the use of symbol_lists' locations
+	symbol_list features a 'location' and a 'sym_loc' member.  The former
+	is expected to be set only for symbol_lists that denote a symbol (not
+	a type name), and the latter should only denote the location of the
+	symbol/type name.  Yet both are set, and the name "location" is too
+	unprecise.
+
+	* src/symlist.h, src/symlist.c (symbol_list::location): Rename as
+	rhs_loc for clarity.  Move it to the "section" of data valid only
+	for rules.
+	* src/reader.c, src/scan-code.l: Adjust.
+
+2019-05-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: update gnulib-po/.gitignore
+
+2019-04-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: don't require a D compiler
+	Reported by Kiyoshi Kanazawa.
+	http://lists.gnu.org/archive/html/bug-bison/2019-04/msg00018.html
+
+	* tests/atlocal.in (BISON_DC_WORKS): New.
+	* tests/local.at (AT_COMPILE_D): Use it.
+
+2019-04-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: use svg instead of png
+	* doc/bison.texi, doc/local.mk: here.
+
+2019-04-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: use colors
+	* doc/bison.texi (dwarning, derror, dnotice): New.
+	Use them in the diagnostics.
+	* doc/local.mk (AM_MAKEINFOFLAGS): Pass customization variables.
+
+2019-04-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2019-04-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.3.90
+	* NEWS: Record release date.
+
+2019-04-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	package: add missing CLEANFILES
+	* examples: here.
+
+2019-04-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: don't generate the graph reports
+	Revert "build: also generate the graph
+	reports" (4ec413da32760defe1bf382c048d1d2f67e0b58a).  The problem is
+	Automake's ylwrap which does not rename y.dot with the appropriate
+	name.  We should completely stop using Automake's support for Yacc,
+	which is not something I will do right now.  So step back.
+
+	* Makefile.am (AM_YFLAGS_WITH_LINES): Don't pass --graph.
+
+2019-04-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	package: don't regen the parser during dist if unneeded
+	* Makefile.am (gen-synclines): New.
+
+2019-04-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	package: don't ship the sources generated from the parser
+	Because some of our examples use
+
+	    %C%_reccalc_SOURCES = %D%/parse.y
+
+	Automake ships parse.y and parse.c, and possibly parse.h when it
+	"understands" that there is one.  This is not what we want: ship only
+	parser.y.  Yet we still want to use Automake to compile the sources
+	from parser.y.  The easiest seems to use
+
+	    nodist_%C%_reccalc_SOURCES = %D%/parse.y
+
+	together with
+
+	    dist_reccalc_DATA = %D%/parse.y %D%/scan.l %D%/Makefile %D%/README.md
+
+	which guarantees that parse.y is indeed shipped.
+
+	* examples/c/calc/local.mk, examples/c/lexcalc/local.mk,
+	* examples/c/reccalc/local.mk: Always use nodist_*SOURCES for parsers,
+	let the dist_*_DATA rules do their job.
+
+2019-04-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	package: various fixes for syntax-check
+	* cfg.mk: Disable checks where needed (e.g., we do want to check the
+	behavior with tabs).
+	(sc_at_parser_check): Remove.  Unfortunately since
+	a11c144609255bc6e42c2aff83548e91cbd05425 we no longer use the './'
+	prefix to run programs in the current directory.  That was so that we
+	could run Java programs like the other, although they are no run with
+	the `./` prefix (see 967a59d2c08a33f24708450561e2f8010b604523).
+	As a consequence this sc check no longer makes sense.
+	However, since now AT_PARSER_CHECK passes the `./` prefix itself, this
+	sc-check was superfluous.
+	* examples/c/reccalc/scan.l: Use memcpy, not strncpy.
+	* src/ielr.c, src/reader.c: Obfuscate "lr(0)" so that the sc-check for
+	"space before paren" does not fire.
+	* tests/diagnostics.at: Avoid space-tab, use tab-tab.
+
+2019-04-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: clarify -fsyntax-error
+	* NEWS, doc/bison.texi: here.
+
+2019-04-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-04-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	traces: use colors for the semantic values
+	This makes reading the trace slightly easier.  It would be very nice
+	to highlight the "big steps", especially reductions.  But this is a
+	private experiment: do not use it.
+
+	* data/diagnostics.css (value): New.
+	* src/parse-gram.y: Use no delimiters and no c quotation for strings
+	to facilitate debugging.
+	(tron, troff, TRACE): New.
+	Not very elegant, but until there is support for printf-formats in
+	libtextstyle, it shall be enough.
+
+2019-04-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: give m4 precise locations
+	Currently we pass only the columns based on the screen-width, which is
+	important for the carets.  But we don't pass the bytes-based columns,
+	which is important for the colors.  Pass both.
+
+	* src/muscle-tab.c (muscle_boundary_grow): Also pass the byte-based column.
+	* src/location.c (location_caret): Clarify.
+	(boundary_set_from_string): Adjust to the new format.
+	* tests/diagnostics.at (Tabulations and multibyte characters from M4): New.
+
+2019-04-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: fix locations coming from M4
+	Locations issued from M4 need the byte-based column for the
+	diagnostics to work properly.  Currently they were unassigned, which
+	typically resulted in partially non-colored diagnostics.
+
+	* src/location.c (boundary_set_from_string): Fix the parsed location.
+	* src/muscle-tab.c (muscle_percent_define_default): Set the byte values.
+	* tests/diagnostics.at (Locations from M4): New.
+
+2019-04-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: show locations in full when debugging
+	This is meant for developers, not end users, that's why I attached it
+	to --trace.
+
+	* src/getargs.h, src/getargs.c (trace_locations): New.
+	* src/location.c (location_print): Use it.
+
+2019-04-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: use flush, not fflush
+	* src/complain.c: here.
+
+2019-04-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: use gettext-h
+	We were using the gnulib's gettext module with tricks in
+	bootstrap.conf to avoid useless files.  Instead, use gnulib's
+	gettext-h module.
+
+	* .travis.yml: Force Gettext 0.18.3 on Trusty.
+	* bootstrap.conf: Use gettext-h instead of gettext.
+	(excluded_files): Remove.
+	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.19.
+
+2019-04-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2019-04-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	api.location.type: support it in C
+	Reported by Balázs Scheidler.
+
+	* data/skeletons/c.m4 (b4_location_type_define): Use api.location.type
+	if defined.
+	* doc/bison.texi: Document it.
+	* tests/local.at (AT_C_IF, AT_LANG_CASE): New.
+	Support Span in C.
+	* tests/calc.at (Span): Convert it to be usable in C and C++.
+	Check api.location.type with yacc.c and glr.c.
+
+2019-04-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	updates: insert/remove %empty
+	* src/reader.c (grammar_rule_check_and_complete): Generate fixits for
+	adding/removing %empty.
+	* tests/actions.at, tests/diagnostics.at, tests/existing.at: Adjust.
+
+2019-04-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-04-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: better rule locations
+	The "identifier and colon" of a rule is implemented as a single token,
+	but whose location is only that of the identifier (so that messages
+	about the lhs of a rule are accurate).  When reducing empty rules, the
+	default location is the single point location on the end of the
+	previous symbol.  As a consequence, when Bison parses a grammar, the
+	location of the right-hand side of an empty rule is based on the
+	lhs, *independently of the position of the colon*.  And the colon can
+	be way farther, separated by comments, white spaces, including empty
+	lines.
+
+	As a result, some messages look really bad.  For instance:
+
+	    $ cat foo.y
+	    %%
+	    foo     : /* empty */
+	    bar
+	    : /* empty */
+
+	gives
+
+	    $ bison -Wall foo.y
+	    foo.y:2.4: warning: empty rule without %empty [-Wempty-rule]
+	        2 | foo     : /* empty */
+	          |    ^
+	    foo.y:3.4: warning: empty rule without %empty [-Wempty-rule]
+	        3 | bar
+	          |    ^
+
+	The carets are not at the right column, not even the right line.
+
+	This commit passes the colon "again" after the "id colon" token, which
+	gives more accurate locations for these messages:
+
+	    $ bison -Wall foo.y
+	    foo.y:2.10: warning: empty rule without %empty [-Wempty-rule]
+	        2 | foo     : /* empty */
+	          |          ^
+	    foo.y:4.2: warning: empty rule without %empty [-Wempty-rule]
+	        4 | : /* empty */
+	          |  ^
+
+	* src/scan-gram.l (SC_AFTER_IDENTIFIER): Rollback the colon, so that
+	we scan it again afterwards.
+	(INITIAL): Scan colons.
+	* src/parse-gram.y (COLON): New.
+	(rules): Parse the colon after the rule's id_colon (and possible
+	named reference).
+	* tests/actions.at, tests/conflicts.at, tests/diagnostics.at,
+	* tests/existing.at: Adjust.
+
+2019-04-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	fixits: track byte-columns, not character-columns
+	Because the fix-its were ready the character-based columns, but were
+	applied on byte-based columns, the result with multibyte characters or
+	tabs could be "interesting".  For instance
+
+	    %fixed-output_files
+	            %fixed_output-files
+	    %fixed-output-files
+	    %define api.prefix {foo}
+	    %no-default-prec
+
+	would give
+
+	         %fixed-%fixed-output-files  %fixed_output-files
+	    %fixed-orefix= "foo"
+	    o_default-prec
+
+	* src/fixits.c (fixit_print, fixits_run): Work on byte-base columns.
+	* tests/input.at: Check it.
+
+2019-04-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: expose a means to know whether a warning is enabled
+	* src/complain.h, src/complain.c (warning_is_enabled): New.
+
+2019-04-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: let it use its own PO domain
+	See
+	https://www.gnu.org/software/gnulib/manual/html_node/Localization.html.
+
+	* bootstrap.conf: Create gnulib-po.
+	* Makefile.am, configure.ac: Use it.
+	* po/POTFILES.in: Remove files now in gnulib.
+	* src/main.c: Open the bison-gnulib domain.
+
+2019-04-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: don't try to quote special files
+	Based on a report by Todd Freed.
+	http://lists.gnu.org/archive/html/bug-bison/2019-04/msg00000.html
+	See also https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90034
+
+	* src/location.c (caret_info): Also track the file name.
+	(location_caret): Don't quote special files.
+
+2019-04-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: document the change of format
+	* doc/bison.texiL Adjust output.
+	Also, Graphviz has no uppercsae V.
+	* NEWS: Explain the format change.
+
+2019-04-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: copy GCC9's format
+	Currently, when we quote the source file, we indent it with one space,
+	and preserve tabulations, so there is a discrepancy and the visual
+	rendering is bad.  One way out is to indent with a tab instead of a
+	space, but then this space can be used for more information.  This is
+	what GCC9 does.  Let's play copy cats.
+
+	See
+	https://lists.gnu.org/archive/html/bison-patches/2019-04/msg00025.html
+	https://developers.redhat.com/blog/2019/03/08/usability-improvements-in-gcc-9/
+	https://gcc.gnu.org/onlinedocs/gccint/Guidelines-for-Diagnostics.html#Guidelines-for-Diagnostics
+
+	* src/location.c (location_caret): Prefix quoted lines with the line
+	number and a pipe, fitting 8 columns.
+
+	* tests/actions.at, tests/c++.at, tests/conflicts.at,
+	* tests/diagnostics.at, tests/input.at, tests/java.at,
+	* tests/named-refs.at, tests/reduce.at, tests/regression.at,
+	* tests/sets.at: Adjust expectations.
+	Partly by "./build-aux/update-test tests/testsuite.dir/*/testsuite.log"
+	repeatedly, and partly by hand.
+
+2019-04-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: fix the handling of multibyte characters
+	This is a pity: efforts were invested in computing correctly the
+	number of screen columns consumed by multibyte characters, but the
+	routines that do that were fed by single-byte inputs...
+
+	As a consequence Bison never displayed correctly locations when there
+	are multibyte characters.
+
+	* src/scan-gram.l (mbchar): New.
+	Use it instead of . in the catch-all clause.
+	* tests/diagnostics.at (Tabulations): Enhance into...
+	(Tabulations and multibyte characters): this.
+
+2019-04-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: check the handling of tabulations
+	* tests/diagnostics.at (Tabulations): here.
+
+2019-04-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: fix styling issues
+	Single point locations (equal boundaries) are troublesome, and we were
+	incorrectly ending the style in their case.  Which results in an abort
+	in libtextstyle.
+
+	There is also a confusion between columns as displayed on the
+	screen (which take into account multibyte characters and tabulations),
+	and the number of bytes.  Counting the screen-column
+	incrementally (character by character) is uneasy (because of multibyte
+	characters), and I don't want to maintain a buffer of the current line
+	when displaying the diagnostic.  So I believe the simplest solution is
+	to track the byte number in addition to the screen column.
+
+	* src/location.h, src/location.c (boundary): Add the byte-column.
+	Adjust dependencies.
+	* src/getargs.c, src/scan-gram.l: Adjust.
+	* tests/diagnostics.at: Check zero-width locations.
+
+2019-04-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: check the styling
+	Enable checking of styles even when libtextstyle is not installed.
+
+	* src/getargs.h, src/getargs.c (style_debug): New.
+	(getargs_colors): Set it when --style=debug.
+	* src/complain.c (begin_use_class, end_use_class): Use it.
+	* tests/diagnostics.at: New.
+
+2019-04-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	TODO: update
+	Let's prepare 3.4 with more or less what we have.  Schedule some
+	features for 3.5 and 3.6.  Remove obsolete stuff.
+
+2019-04-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: sort the warning categories
+	* doc/bison.texi, src/getargs.c: here.
+
+2019-04-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: formatting changes
+	* tests/actions.at, tests/calc.at, tests/input.at: here.
+
+2019-04-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	graphviz: move constant computation out of a loop
+	* src/graphviz.c (output_red): here.
+
+2019-04-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: fix memory leak in libtextstyle
+	* src/complain.h, src/complain.c (complain_free): New.
+	* src/main.c: Use it.
+
+2019-04-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: remove useless feature
+	* tests/calc.at (read_signed_integer): Rename as...
+	(read_integer): this.
+	We never read signs here.
+
+2019-04-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	traces: make closure() less verbose
+	* src/getargs.h, src/getargs.c (trace_closure): New.
+	* src/closure.c (closure): Use it.
+
+2019-04-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: also generate the graph reports
+	* Makefile.am (AM_YFLAGS_WITH_LINES): here.
+
+2019-04-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: minor style change
+	* data/skeletons/yacc.c: To improve consistency with other similar
+	pieces of code.
+
+2019-04-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: scope reduction in lalr.c
+	* src/lalr.c (initialize_goto_follows): here.
+
+2019-04-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment changes
+	* src/closure.h, src/closure.c, src/lalr.c: here.
+
+2019-04-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	traces: improve logs
+	* src/lalr.c: Move logs to a better place to understand the chronology
+	of events.
+	* src/symlist.c (symbol_list_syms_print): Don't dump core on type
+	elements.
+
+2019-04-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: minor fixes
+	* doc/bison.texi: Use consistently $ and @kbd in shell examples.
+	Prefer sticking to English words: output and file instead of outfile
+	and infile.
+
+2019-04-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-04-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	bison: use no-lines
+	The 'regen' commit in Bison's history are a nuisance.  They are
+	especially big because of the #lines.  Let's generate our parse
+	without these lines in the repository, but generate them in the
+	tarball.
+
+	* Makefile.am (AM_YFLAGS_WITH_LINES): New.
+	(AM_YFLAGS): Use it.
+	(dist-hook): Regenerate the parser with #lines.
+
+2019-04-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	no-lines: avoid leaving an empty line instead of the syncline
+	Currently, with --no-lines, instead of "#line file line\n", we emit
+	"\n".  Let's emit nothing.
+
+	* data/skeletons/bison.m4 (b4_syncline): Emit at end-of-line when enabled.
+	* data/skeletons/bison.m4, data/skeletons/c.m4, data/skeletons/glr.cc,
+	* data/skeletons/lalr1.cc, src/output.c: Use dnl after b4_syncline to
+	avoid spurious empty lines.
+
+	* tests/synclines.at (Sync Lines): Make sure that --no-lines is like
+	grep -v #line.
+	* tests/calc.at: Make sure that a rich grammar file behaves properly
+	with %no-lines.
+
+2019-04-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	java: use full locations for diagnostics about destructors
+	Currently we use the syncline to report errors about a symbol's
+	destructor/printer.  This is not accurate (only file and line), and
+	this is incorrect: the file name is double quotes (a recent change,
+	needed to make sure we escape properly double quotes in it).  And
+	worst of all: with --no-line, b4_syncline expands to nothing.
+
+	Rather, push the locations into the backend, and use them.
+
+	* src/muscle-tab.h, src/muscle-tab.c (muscle_location_grow): Make it
+	public.
+	* src/output.c (prepare_symbol_definitions): Use it to pubish the
+	location of the printer and destructor.
+	* data/skeletons/lalr1.java: Use complain_at instead of complain.
+	* tests/java.at (Java invalid directives): Adjust expectations.
+	* data/skeletons/bison.m4 (b4_symbol_action_location): Remove.
+	We should not use b4_syncline this way.
+
+2019-04-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	java: prefer errors to fatal errors
+	Fatal errors are inconvenient, and should be reserved to cases where
+	we cannot continue.  Here, it could even be warnings actually: these
+	directives will simply be ignored.
+
+	* data/skeletons/lalr1.java: Prefer error (b4_complain) to fatal
+	errors (b4_fatal).
+	* tests/java.at (Java invalid directives): New.
+
+2019-04-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: formatting changes
+	* tests/javapush.at: here.
+
+2019-04-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr: offer more flexibility in debugging routines
+	* src/state.h, src/state.c (state_transitions_print): New, extracted
+	from...
+	(state_transitions_set): here.
+
+2019-03-31  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr: don't overbook memory
+	I never understood why we book ngotos+1 slots for relations between
+	gotos: there are at most ngotos images, not ngotos+1 (and "includes"
+	does have cases where a goto is in relation with itself, so it's not
+	ngotos-1).
+
+	Maybe bbf37f2534a8e5a6b4e28047f0a10903e6dc73f9 explains the +1: a bug
+	left us register a goto several times on occasion, and the +1 might
+	have been a means to avoid this problem in most cases.  Now that this
+	bug is addressed, we should no longer overbook memory, if only for the
+	clarity of the code ("why ngotos+1 instead of ngotos?").
+
+	* src/lalr.c: A goto has at most ngotos images, not ngotos+1.
+	While at it, avoid useless repeated call to map_goto introduced in
+	bbf37f2534a8e5a6b4e28047f0a10903e6dc73f9.
+
+2019-03-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr: show lookback for debug
+	* src/lalr.c (lookback_print): New.
+	(build_relations): Use it.
+	Also show edges.
+
+2019-03-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: don't crash when declaring the error token as an nterm
+	Reported by wcventure.
+	http://lists.gnu.org/archive/html/bug-bison/2019-03/msg00008.html
+
+	* src/symtab.c (complain_class_redeclared): Don't print empty
+	locations.
+	There can only be empty locations for predefined symbols.  And the
+	only symbol that is lexically available is the error token.  So this
+	appears to be the only possible way to have an error involving an
+	empty location.
+	* tests/input.at (Symbol class redefinition): Check it.
+
+2019-03-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr: fix segmentation violation
+	The "includes" relation [DeRemer 1982] is between gotos, so of course,
+	for a given goto, there cannot be more that ngotos (number of gotos)
+	images.  But we manipulate the set of images of a goto as a list,
+	without checking that an image was not already introduced.  So we can
+	"register" way more images than ngotos, leading to a crash (heap
+	buffer overflow).
+
+	Reported by wcventure.
+	http://lists.gnu.org/archive/html/bug-bison/2019-03/msg00007.html
+
+	For the records, this bug is present in the first committed version of
+	Bison.
+
+	* src/lalr.c (build_relations): Don't insert the same goto several
+	times.
+	* tests/sets.at (Build Relations): New.
+
+2019-03-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	state: more debug traces
+	* src/state.c (state_transitions_set): Show the transitions.
+
+2019-03-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: rename variables for consistency
+	* src/lalr.c: Use trans for transitions, and reds for reductions, as
+	elsewhere in the code.
+	* src/state.h: Comment changes.
+
+2019-03-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	gram: fix and improve log message
+	It seems that not many people read these logs: the error was
+	introduced in 2001 (3067fbef531832df1e43bbd28787655808361eed),
+
+	* src/gram.c (grammar_dump): Fix the headers of the table: remove
+	duplicate display of "Ritem Range".
+	While at it, remove duplicate display of the rule number (and remove
+	an incorrect comment about it: these numbers _are_ equal).
+	* tests/sets.at (Reduced Grammar): Use useless rule, nterm and token
+	in the example.
+
+2019-03-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: add a tool for mass updates
+	When we update some output format, too many adjustements must be made
+	by hand.  This script updates most tests based on the actual output
+	made during the tests.
+
+	* build-aux/update-test: New.
+
+2019-03-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: remove now useless _GL_UNUSED
+	* src/getargs.c (getargs_colors): Here.
+	Useless since 4d34b06fb3a38eb050439084476a6b3e292c5680.
+
+2019-03-24  Theophile Ranquet  <ranquet@lrde.epita.fr>
+
+	tables: use bitsets for a performance boost
+	Suggested by Yuri at
+	<http://lists.gnu.org/archive/html/bison-patches/2012-01/msg00000.html>.
+
+	The improvement is marginal for most grammars, but notable for large
+	grammars (e.g., PosgreSQL's postgre.y), and very large for the
+	sample.y grammar submitted by Yuri in
+	http://lists.gnu.org/archive/html/bison-patches/2012-01/msg00012.html.
+	Measured with --trace=time -fsyntax-only.
+
+	parser action tables    postgre.y     sample.y
+	Before                 0,129 (44%)  37,095 (99%)
+	After                  0,117 (42%)   5,046 (93%)
+
+	* src/tables.c (pos): Replace this set of integer coded as an unsorted
+	array or integers with...
+	(pos_set): this bitset.
+
+2019-03-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: don't suggest api.header.include when --defines is not used
+	See 4e19ab9fcd28c9361ff08f46e5e353effb0a0520: the suggestion to
+	include the header file should not be emitted when the header is not
+	generated.
+
+	* data/skeletons/yacc.c: Here.
+
+2019-03-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	reader: clarify variable names
+	* src/reader.c (grammar_rule_check_and_complete): When 'p' and 'lhs'
+	are aliases, prefer the latter, for clarity and consistency.
+	(grammar_current_rule_begin): Avoid 'p', current_rule suffices.
+	* src/gram.h, src/gram.c: Comment changes.
+
+	ptdr#	calc.tab.c
+
+2019-03-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: style changes
+	* src/location.c (location_caret): Clarify a bit.
+
+2019-03-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: use gnulib's libtextstyle-optional
+	Bruno Haible just added a default implementation of libtextstyle's
+	interface when the library is not available.
+	https://lists.gnu.org/archive/html/bison-patches/2019-03/msg00025.html
+
+	* gnulib: Update.
+	* bootstrap.conf: Replace libtextstyle with libtextstyle-optional.
+	* src/complain.c, src/getargs.c: Remove now useless cpp guards.
+
+2019-03-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: fix handling of style in limit cases
+	* src/location.c (location_caret): Beware of the cases where the start
+	and end columns are the same, or when the location is multilines.
+
+2019-03-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	warnings: don't use _Noreturn with G++ 4.7 in C++98 mode
+	The timevar and bitset modules now use the c99 module which causes
+	$CXX to now include -std=gnu++11 when possible.  Unfortunately, G++
+	4.7 does not implement [[noreturn]] in C++11 mode, so our tests of
+	glr.cc (which uses _Noreturn) fail with
+
+	    input.cc:954:1: error: expected unqualified-id before '[' token
+
+	right before [[noreturn]].  4.8 works fine.
+
+	* data/skeletons/c.m4 (b4_attribute_define): Do not use [[noreturn]]
+	with GCC 4.7.
+
+2019-03-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: tests: use more a natural approach for the scanner
+	See f8408562f8439654261418406296e4108d2a995f.
+
+	* tests/calc.at: Stop imitating the C API.
+	Prepare more tests to run in the future.
+	%verbose works as expected (what a surprise, it's unrelated to the
+	skeleton...).
+
+2019-03-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-03-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: rename spec_defines_file as spec_header_file
+	The variable spec_defines_file denotes the name of the generated
+	header.  Its name is derived from --defines/%defines, whose name in
+	turn is derived from the fact that the header, in Yacc, contained the
+
+	Not only does the header now contain a lot more than just the token
+	definitions, but we no longer even generate macros, but an enum...
+
+	Let's modernize our vocabulary.
+
+	* src/files.h, src/files.c (spec_defines_file): Rename as...
+	(spec_header_file): this.
+
+2019-03-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: provide a means to include the header in the implementation
+	Currently when --defines is used, we generate a header, and paste an
+	exact copy of it into the generated parser implementation file.  Let's
+	provide a means to #include it instead.
+
+	We don't do it by default because of the Autotools' ylwrap.  This
+	program wraps invocations of yacc (that uses a fixed output name:
+	y.tab.c, y.tab.h, y.output) to support a more modern naming
+	scheme (dir/foo.y -> dir/foo.tab.c, dir/foo.tab.h, etc.).  It does
+	that by renaming the generated files, and then by running sed to
+	propagate these renamings inside the files themselves.
+
+	Unfortunately Automake's Makefiles uses Bison as if it were Yacc (with
+	--yacc or with -o y.tab.c) and invoke bison via ylwrap.  As a
+	consequence, as far as Bison is concerned, the output files are
+	y.tab.c and y.tab.h, so it emits '#include "y.tab.h"'.  So far, so
+	good.  But now ylwrap processes this '#include "y.tab.h"' into
+	'#include "dir/foo.tab.h"', which is not guaranteed to always work.
+
+	So, let's do the Right Thing when the output file is not y.tab.c, in
+	which case the user should %define api.header.include.  Binding this
+	behavior to --yacc is tempting, but we recently told people to stop
+	using --yacc (as it also enables the Yacc warnings), but rather to use
+	-o y.tab.c.
+
+	Yacc.c is the only skeleton concerned: all the others do include their
+	header.
+
+	* data/skeletons/yacc.c (b4_header_include_if): New.
+	(api.header.include): Provide a default value when the output is not
+	y.tab.c.
+	* src/parse-gram.y (api.header.include): Define.
+
+2019-03-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: don't link against LIBS
+	* tests/local.at (AT_COMPILE_D): Don't pass LIBS, dmd does not like
+	being given -lintl.
+
+2019-03-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	address warnings from GCC's UB sanitizer
+	Running with CC='gcc-mp-8 -fsanitize=undefined' revealed Undefined
+	Behaviors.
+	https://lists.gnu.org/archive/html/bison-patches/2019-03/msg00008.html
+
+	* src/state.c (errs_new): Don't call memcpy with NULL as source.
+	* src/location.c (add_column_width): Don't assume that the column
+	argument is nonnegative: the scanner sometimes "backtracks" (e.g., see
+	ROLLBACK_CURRENT_TOKEN and DEPRECATED) in which case we can have
+	negative column numbers (temporarily).
+	Found in test 3 (Invalid inputs).
+
+2019-03-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: use libtextstyle for colored output
+	Bruno Haible released libtextstyle, a library for colored output based
+	on CSS.  Let's use it to generate colored diagnostics, provided
+	libtextstyle is available.
+
+	See
+	https://lists.gnu.org/archive/html/bug-gnulib/2019-01/msg00176.html
+	https://lists.gnu.org/archive/html/bison-patches/2019-02/msg00073.html
+	https://lists.gnu.org/archive/html/bison-patches/2019-02/msg00084.html
+	https://lists.gnu.org/archive/html/bison-patches/2019-03/msg00007.html
+
+	* bootstrap.conf (gnulib_modules): Use libtextstyle when possible.
+	* data/diagnostics.css: New.
+	* src/complain.c (begin_use_class, end_use_class, flush)
+	(severity_style, complain_init_color): New.
+	Use them.
+	* src/getargs.c (getargs_colors): New.
+	(getargs): Use it.
+	Skip --color and --style.
+	* src/location.h, src/location.c (location_print): Use a style.
+
+	* tests/bison.in: Force --color=yes when stderr is a tty.
+	* tests/local.at: Disable colors during the test suite.
+	* tests/input.at: Adjust expectations to the extra options passed on
+	the command line.
+
+2019-03-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: clean up complain.c
+	* src/complain.c (severity_prefix): New.
+	(error_message): Take the severity as argument, instead of the prefix.
+
+2019-03-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: emit the header before the implementation file
+	* data/skeletons/yacc.c: here.
+	This is more logical for the time stamps, but it's also required by
+	following patches: the shared declarations are also in charge of
+	handling api.value.type=union.  So far, they are run in the
+	implementation file in both cases (with or without header).  But if we
+	run them only in the header, then the implementation file is emited
+	with incorrect support for api.value.type=union.
+	Arguably we should not have such dependencies.  This is because we
+	have side-effects in our backend (redefining the symbols' type and
+	type_tag).  In the future we should find a better solution for this,
+	without sacrificing the independence of the backend from bison
+	itself (i.e., I don't think we should handle api.value.type=union in
+	bison, leave it to m4).
+
+2019-03-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	simplify the generated #line
+	Currently we generate things like:
+
+	    #line 683 "src/parse-gram.y" /* yacc.c:316  */
+
+	The first part is of course very important: compilers point the users
+	to their grammar file rather than into the generated parser.  The
+	second part points to the place in the skeletons that generated this
+	piece of code.
+
+	This dependency on the Bison skeletons generates lots of useless 'git
+	diff'.  This location is useless for the regular user (who does not
+	care about the skeletons) and is actually not useful for Bison
+	developpers too (I never used this to locate the code in skeletons
+	that generated output).  So disable it completely.  If someone thinks
+	this was actually useful, a %define variable should be provided to
+	control the level of verbosity of '#line', in replacement of
+	--no-lines.
+
+	So now, generate:
+
+	    #line 683 "src/parse-gram.y"
+
+	* data/skeletons/bison.m4 (b4_sync_end): Emit nothing.
+
+2019-03-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2019-03-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: remove duplicates
+	* tests/regression.at (Invalid inputs, Invalid inputs with {}):
+	Remove, there are exact copies of them in input.at.
+
+2019-03-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: simplify the API to build the scanner of the example
+	* examples/d/calc.y (calcLexer): Add an overload for File.
+	Use it.
+
+2019-03-01  H. S. Teoh  <hsteoh@quickfur.ath.cx>
+
+	d: modernize the scanner of the example
+	https://lists.gnu.org/archive/html/bison-patches/2019-02/msg00121.html
+
+	* examples/d/calc.y (CalcLexer): Stop shoehorning C's API into D: use
+	a range based approach in the scanner, rather than some imitation of
+	getc/ungetc.
+	(main): Adjust.
+
+2019-03-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: tests: use fewer global variables
+	* tests/calc.at: Move 'input' into the scanner.
+
+2019-02-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr: clarify the count of lookaheads
+	* src/lalr.c (state_lookahead_tokens_count): Remove wierd `+=` that is
+	actually an `=`.
+
+2019-02-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr: clarify the API
+	* src/state.h, src/state.c (state_reduction_find): Clarify.
+	Die on errors.
+	* src/lalr.c (goto_list_new): New.
+	Use it.
+
+2019-02-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr: improve traces
+	* src/lalr.c (follows_print): Just print the symbol tag.
+	Take and print a title.
+	Indent the output.
+	Use it to print the various steps of the computation.
+	(lookahead_tokens_print): Fix a lie: the number displayed is not the
+	number of tokens.
+	Don't display states that don't even have reductions.
+
+2019-02-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr: print the 'reads' relation
+	* src/relation.h, src/relation.c (relation_print): Accept and use a
+	title.
+	Don't print empty rows.
+	Indent the output.
+	Adjust dependencies.
+	* src/lalr.c (initialize_goto_follows): Print 'reads' in traces.
+
+2019-02-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment changes
+	* src/lr0.c: here.
+
+2019-02-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	dlang: initial changes to run the calc tests on it
+	* configure.ac (DCFLAGS): Define.
+	* tests/atlocal.in: Receive it.
+	* data/skeletons/d.m4 (api.parser.class): Remove spurious YY.
+	* data/skeletons/lalr1.d (yylex): Return an int instead of a
+	YYTokenType, so that we can use characters as tokens.
+	* examples/d/calc.y: Adjust.
+	* tests/local.at: Initial support for D.
+	(AT_D_IF, AT_DATA_GRAMMAR(D), AT_YYERROR_DECLARE(d))
+	(AT_YYERROR_DECLARE_EXTERN(d), AT_YYERROR_DEFINE(d))
+	(AT_MAIN_DEFINE(d), AT_COMPILE_D, AT_LANG_COMPILE(d), AT_LANG_EXT(d)):
+	New.
+	* tests/calc.at: Initial support for D.
+	* tests/headers.at
+
+2019-02-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: improve the example
+	* examples/d/calc.y: Exit with failure on errors.
+	Remove useless operators (=, !) meant for the test suite.
+	Add unary + for symmetry.
+	* examples/d/calc.test: Adjust expectations.
+
+2019-02-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: style changes
+	* tests/local.at AT_YYERROR_DEFINE(java): Use more consistent names.
+
+2019-02-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: eliminate useless indirection
+	* src/relation.h, src/relation.c (relation_digraph): Don't take the
+	biteetv as a pointer, it is already a pointer (as it's an array).
+
+2019-02-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: rename function for clarity
+	Commit db34f7988941444bdc5f2b6adcf7fb83648f9a18 renames the variable F
+	as goto_follows, but forgot to rename this function.
+
+	* src/lalr.c (initialize_F): Rename as...
+	(initialize_goto_follows): this.
+
+2019-02-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr: more debug traces
+	I need to be able to read includes and goto_follows.
+
+	* src/relation.h, src/relation.c (relation_print): Provide a means to
+	pretty-print the nodes of the relation.
+	* src/lalr.c (goto_print, follows_print): New.
+	(set_goto_map): Use goto_print.
+	(build_relations): Show INCLUDES.
+	(compute_FOLLOWS): Rename as...
+	(compute_follows): this.
+	Show FOLLOWS.
+
+2019-02-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: minor changes
+	* examples/c/calc/calc.y, src/lalr.c: Reduce scope.
+	* src/gram.c: Prefer < to >.
+
+2019-02-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: clarify the computation of the lookback edges
+	* src/lalr.c (build_relations): Reduce the scopes.
+	Instead of keeping rp alive in two different loops, clarify the second
+	one by having an index on the path we traverse (i.e., use that index
+	to compute the source state _and_ the symbol that labels the
+	transition).
+	This allows to turn an obscure 'while'-loop in a clearer (IMHO)
+	'for'-loop.  We also consume more variables (by introducing p instead
+	of making more side effects on length), but we're in 2019, I don't
+	think this matters.  What does matter is that (IMHO again), this is
+	now clearer.
+	Also, use clearer names.
+
+2019-02-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: scope reduction in tables.c
+	* src/tables.c: here.
+	* src/lalr.c: Prefer < to >.
+
+2019-02-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: formatting changes
+	* data/skeletons/d.m4, data/skeletons/lalr1.d: Avoid trailing spaces.
+
+2019-02-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: remove stray examples
+	* examples/c/reentrant-calc: Remove.
+	I did not mean to include this example, it was replaced by
+	examples/c/reccalc.
+
+2019-02-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: factor the execution of Java parsers
+	* tests/local.at (AT_MAIN_DEFINE(java)): Exit failure on failure.
+	(AT_PARSER_CHECK): If in Java, run AT_JAVA_PARSER_CHECK.
+	* tests/conflicts.at (AT_CONSISTENT_ERRORS_CHECK): Simplify.
+
+2019-02-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix a Java tests
+	* tests/conflicts.at (AT_CONSISTENT_ERRORS_CHECK): Fix quotation error.
+
+2019-02-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: simplify AT_PARSER_CHECK usage
+	Currently the caller must specify the ./ prefix to its command.  Let's
+	avoid that: it will be nicer to read, make it easier to have a version
+	that works for Java and C/C++.
+
+	* tests/local.at (AT_PARSER_CHECK): Prefix the command with ./.
+	Adjust callers.
+
+2019-02-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: java: factor the definition of Position
+	* tests/local.at (AT_JAVA_POSITION_DEFINE): New.
+	* tests/java.at, tests/javapush.at: Use it.
+
+2019-02-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: dispatch per lang on AT_DATA_GRAMMAR
+	* tests/java.at: Do that.
+	* tests/conflicts.at: Simplify.
+
+	* tests/actions.at, tests/c++.at, tests/input.at, tests/local.at,
+	* tests/named-refs.at:
+	Use AT_BISON_OPTION_PUSHDEFS/AT_BISON_OPTION_POPDEFS.
+
+2019-02-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: dispatch per lang on the definition of yylex
+	* tests/local.at (AT_YYLEX_DEFINE): Dispatch on the language.
+	(AT_YYLEX_DEFINE(java)): New.
+	* tests/conflicts.at, tests/java.at: Use it.
+
+2019-02-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: de-duplicate
+	* tests/conflicts.at (AT_YYLEX_PROTOTYPE): Don't define it, leave that
+	task to AT_DATA_GRAMMAR.
+	But be honest: tell AT_BISON_OPTION_PUSHDEFS all the options we use.
+
+2019-02-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: formatting changes
+	* tests/local.at: here.
+
+2019-02-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	graph: prefer *.gv to *.dot
+	Reported by Hans Åberg.
+	https://lists.gnu.org/archive/html/help-bison/2019-02/msg00064.html
+
+	* src/files.c (spec_graph_file): Use `*.gv` when 3.4 or better,
+	otherwise `*.dot`.
+	* src/parse-gram.y (handle_require): Pretend we are already 3.4.
+	* doc/bison.texi: Adjust.
+	* tests/local.at, tests/output.at: Exercise this.
+
+2019-02-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: fixes to please older versions of Texinfo
+	Currently, we have errors:
+
+	    ./doc/bison.texi:13005: node `History' lacks menu item for `Yacc' despite being its Up target
+
+	* doc/bison.texi (History): Add the local menu.
+	While at it, add a few index entries.
+
+2019-02-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: style changes
+	* doc/bison.texi (Bibliography): Add [Corbett 1984] and [Johnson
+	1978].
+	(History): Use them.
+	And other minor changes.
+
+2019-02-17  Eric S. Raymond  <esr@thyrsus.com>
+
+	doc: a history section
+	* bison.texi (A Brief History of the Greater Ungulates): New section.
+
+2019-02-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: add an example with a reentrant parser in Flex+Bison
+	Suggested by Eric S. Raymond.
+	https://lists.gnu.org/archive/html/bison-patches/2019-02/msg00066.html
+
+	* examples/c/reentrant-calc/Makefile, examples/c/reentrant-calc/README.md,
+	* examples/c/reentrant-calc/parse.y, examples/c/reentrant-calc/scan.l
+	* examples/c/reentrant-calc/lexcalc.test,
+	* examples/c/reentrant-calc/local.mk:
+	New.
+
+2019-02-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: fixes in lexcalc
+	* examples/c/lexcalc/parse.y: Formatting/comment changes.
+	(line): Don't return a value.
+	Print the result here, which avoids printing a value for lines with an
+	error.
+	(yyerror): Be sure to increment the pointed, not the pointer...
+	* examples/c/lexcalc/lexcalc.test: Check errors.
+	* examples/c/lexcalc/local.mk: Fix a dependency.
+
+2019-02-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: fix distcheck
+	Regression introduced in 05a80977798abf472bfc11c477751303ad604733.
+
+	* doc/local.mk (bison.help): Don't depend on the path of the bison
+	executable.
+
+2019-02-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: move pkgdatadir to files.*
+	Let's move it to a more logical place.
+
+	* src/output.h, src/output.c (pkgdatadir): Move to...
+	* src/files.h, src/files.c: here.
+
+2019-02-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: rename cleanup_caret as caret_free
+	* src/location.c, src/location.h, src/main.c: here.
+
+2019-02-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: avoid default in switch on enums
+	* src/assoc.c (assoc_to_string): here.
+
+2019-02-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: run tests/bison, not src/bison
+	* doc/local.mk: Don't run src/bison, as it expects to find all its
+	files installed.  Instead, run tests/bison which is ready to run in
+	builddir.
+
+2019-02-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2019-02-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment and names changes in map_goto
+	* src/lalr.h, src/lalr.c: Use clearer names.
+
+2019-02-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc: support parse.assert
+	While hacking on the computation of the automaton, I had yystate being
+	equal to -1, and the parser loops.  Let's catch this when
+	parser.assert is enabled.
+
+	* data/skeletons/yacc.c (YY_ASSERT): New.
+	Use it.
+	Not using the name YYASSERT, to make it clear that this is private.
+	glr.c should probably move to YY_ASSERT too.
+	Also, while at it, report 'Entering state...' even before growing the
+	stacks.
+
+2019-02-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: depend on Bison's sources
+	* examples/c/calc/local.mk, examples/c/lexcalc/local.mk,
+	* examples/c/mfcalc/local.mk, examples/c/rpcalc/local.mk:
+	Regenerate the files if dependencies have changed.
+
+2019-02-12  Eric S. Raymond  <esr@thyrsus.com>
+
+	README: point to README-hacking
+	* README (Build from git): New.
+	* README-hacking: Describe easier submodule update.
+
+2019-02-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: a single space before closing comments
+	I don't think this style:
+
+	    /* If buffer is full, make it bigger.        */
+	    if (i == length)
+	      {
+	        length *= 2;
+	        symbuf = (char *) realloc (symbuf, length + 1);
+	      }
+	    /* Add this character to the buffer.         */
+	    symbuf[i++] = c;
+	    /* Get another character.                    */
+	    c = getchar ();
+
+	or more readable than
+
+	    /* If buffer is full, make it bigger. */
+	    if (i == length)
+	      {
+	        length *= 2;
+	        symbuf = (char *) realloc (symbuf, length + 1);
+	      }
+	    /* Add this character to the buffer. */
+	    symbuf[i++] = c;
+	    /* Get another character. */
+	    c = getchar ();
+
+	Actually, I think the latter is more readable, and helps with width
+	issues in the PDF.  As a matter of fact, I would happily move to //
+	only for single line comments.
+
+	* doc/bison.texi: A single space before closing comments.
+
+2019-02-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: modernize the examples
+	* doc/bison.texi: Prefer 'fun' to 'fnct'.
+	Reduce local variable scopes.
+	Prefer strdup to malloc + strcpy.
+	Avoid gratuitous casts.
+	Use simpler names (e.g., 'name' instead of 'fname').
+	Avoid uses of 0 for NULL.
+	Avoid using NULL when possible (e.g., 'p' instead of 'p != NULL').
+	Prefer union names to casts (e.g. 'yylval.VAR = s' instead of
+	'*((symrec**) &yylval) = s').
+	Give arguments a name in fun declarations.
+	Use our typedefs instead of duplicating them (func_t).
+	Stop promoting an explicit $$ = $1;, it should be implicit (Bison
+	might be able to eliminate useless chain rules).
+	Help a bit Texinfo by making smaller groups.
+	Rely on the C compiler to call function pointers (prefer
+	'$1->value.fun ($3)' to (*($1->value.fnctptr))($3)').
+
+2019-02-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: add a simple infix calculator in C
+	Currently we have no simple example: rpcalc in reverse Polish, mfcalc
+	has functions, and lexcalc is using lex.
+
+	* examples/c/calc/Makefile, examples/c/calc/calc.y,
+	* examples/c/calc/calc.test, examples/c/calc/local.mk: New.
+
+2019-02-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: fix annoying off-by-one errors
+	* examples/extexi: Since we issue #lines only at the beginning of
+	@example, leave empty line when removing content (such as @comment
+	lines), otherwise the lines that follow have incorrect source line
+	location.  This leaves ugly empty lines, but they are removed when you
+	tidy the output for the end user: sequences of \n are mapped to at
+	most two sucessive \n.
+
+2019-02-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: factor printing of rules
+	* src/gram.h, src/gram.c (rule_print): New.
+	Use it.
+
+2019-02-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: use lower case for variable names
+	* src/relation.c (INDEX, VERTICES): Rename as...
+	(indexes, vertices): these.
+
+2019-02-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: scope reduction in relation.c
+
+2019-02-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	report: stop counting uselessly
+	* src/print.c (print_nonterminal_symbols): Replace left_count and
+	right_count with on_left and on_right.
+
+2019-02-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	report: clean up its format
+	The format is inconsistent.  For instance most sections are
+	indented (including "Terminals unused in grammar" for instance), but
+	the sections "Terminals, with rules where they appear" and
+	"Nonterminals, with rules where they appear" are not.  Let's indent
+	them.  Also, these two sections try to wrap the output to avoid lines
+	too long.  Yet we don't do that in the rest of the file, for instance
+	when listing the lookaheads of an item.
+
+	For instance in the case of Bison's parse-gram.output we go from:
+
+	    Terminals, with rules where they appear
+
+	    "end of file" (0) 0
+	    error (256) 28 88
+	    "string" <char*> (258) 9 13 16 17 20 23 24 109 116
+	    [...]
+
+	    Nonterminals, with rules where they appear
+
+	    $accept (58)
+	        on left: 0
+	    input (59)
+	        on left: 1, on right: 0
+	    prologue_declarations (60)
+	        on left: 2 3, on right: 1 3
+	    prologue_declaration (61)
+	        on left: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24
+	        25 26 27 28 29, on right: 3
+	    [...]
+
+	to
+
+	    Terminals, with rules where they appear
+
+	    "end of file" (0) 0
+	    error (256) 28 88
+	    "string" <char*> (258) 9 13 16 17 20 23 24 109 116
+	    [...]
+
+	    Nonterminals, with rules where they appear
+
+	        $accept (58)
+	            on left: 0
+	        input (59)
+	            on left: 1
+	            on right: 0
+	        prologue_declarations (60)
+	            on left: 2 3
+	            on right: 1 3
+	        prologue_declaration (61)
+	            on left: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28 29
+	            on right: 3
+	    [...]
+
+	* src/print.c (END_TEST): Remove.
+	(print_terminal_symbols): Don't try to wrap the output.
+	(print_nonterminal_symbols): Likewise.
+	Make two different lines for occurrences on the left, and occurrence
+	on the rhs of the rules.
+	Indent by 4 and 8, not 3.
+	* src/reduce.c (reduce_output): Indent by 4, not 3.
+
+	* tests/conflicts.at, tests/existing.at, tests/reduce.at,
+	* tests/regression.at, tests/report.at:
+	Adjust.
+
+2019-02-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	add LR(0) output
+	This should not be used to generate parsers.  My point is actually to
+	facilitate debugging (when tweaking the generation of the LR(0)
+	automaton for instance, not carying -yet- about lookaheads).
+
+	* src/reader.c (prepare_percent_define_front_end_variables): Add lr(0).
+	* src/conflicts.c (set_conflicts): Be robust to reds not having
+	lookaheads at all.
+	* src/ielr.c (LrType, lr_type_get): Adjust.
+	(ielr): Implement support for LR(0).
+	* src/lalr.c (lalr_free): Don't free LA when it's not computed.
+
+2019-02-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: scope reduction in derives.c
+	* src/derives.c: here.
+
+2019-02-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment changes and refactoring in state.c
+	* src/state.h, src/state.c: Comment changes.
+	(transitions_to): Take a state* as argument.
+	* src/lalr.h, src/lalr.c: Comment changes.
+	(initialize_F): Use clear variable names.
+
+2019-02-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix typos
+	* tests/reduce.at: here.
+
+2019-02-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	Merge branch maint
+	* maint:
+	  maint: post-release administrivia
+	  version 3.3.2
+	  style: minor fixes
+	  NEWS: named constructors are preferable to symbol_type ctors
+	  gram: fix handling of nterms in actions when some are unused
+	  style: rename local variable
+	  CI: update the ICC serial number for travis-ci.org
+
+2019-02-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2019-02-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.3.2
+	* NEWS: Record release date.
+
+2019-02-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: minor fixes
+	* NEWS, src/reduce.c, src/reduce.h: Use 'nonterminal'.
+	Fix comments.
+
+2019-02-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: named constructors are preferable to symbol_type ctors
+	Reported by Frank Heckenbach.
+	http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00043.html
+
+2019-02-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	gram: fix handling of nterms in actions when some are unused
+	Since Bison 3.3, semantic values in rule actions (i.e., '$...') are
+	passed to the m4 backend as the symbol number.  Unfortunately, when
+	there are unused symbols, the symbols are renumbered _after_ the
+	numbers were used in the rule actions.  As a result, the evaluation of
+	the skeleton failed because it used non existing symbol numbers.
+	Which is the happy scenario: we could use numbers of other existing
+	symbols...
+
+	Reported by Balázs Scheidler.
+	http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00044.html
+
+	Translating the rule actions after the symbol renumbering moves too
+	many parts in bison.  Relying on the symbol identifiers is more
+	troublesome than it might first seem: some don't have an
+	identifier (tokens with only a literal string), some might have a
+	complex one (tokens with a literal string with characters special for
+	M4).  Well, these are tokens, but nterms also have issues: "dummy"
+	nterms (for midrule actions) are named $@32 etc. which is risky for
+	M4.
+
+	Instead, let's simply give M4 the mapping between the old numbers and
+	the new ones.  To avoid confusion between old and new numbers, always
+	emit pre-renumbering numbers as "orig NUM".
+
+	* data/README: Give details about "orig NUM".
+	* data/skeletons/bison.m4 (__b4_symbol, _b4_symbol): Resolve the
+	"orig NUM".
+	* src/output.c (prepare_symbol_definitions): Pass nterm_map to m4.
+	* src/reduce.h, src/reduce.c (nterm_map): Extract it from
+	nonterminals_reduce, to make it public.
+	(reduce_free): Free it.
+	* src/scan-code.l (handle_action_dollar): When referring to a nterm,
+	use "orig NUM".
+	* tests/reduce.at (Useless Parts): New, based Balázs Scheidler's
+	report.
+
+2019-02-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: strengthen some of them
+	* tests/reduce.at: Check that the generated parsers are proper C.
+
+2019-02-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	package: rename data/README as data/README.md
+	So that it is properly rendered by online git services.
+
+2019-02-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes
+	* src/symlist.c (symbol_list_free): New.
+
+2019-02-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: prefer snprintf to sprintf
+	* src/symtab.c (dummy_symbol_get): There's no need for the buffer to
+	be so big and static.
+	Use snprintf for safety.
+
+2019-02-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment and name changes
+	* src/output.c (prepare_symbol_names): here.
+	* src/reader.c: Remove obsolete comment.
+	* src/scan-code.l: Use || for Boolean or.
+
+2019-02-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment changes
+	* src/reader.c, src/scan-code.l: here.
+
+2019-02-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	make: regenerate the example parsers when bison changes
+	* Makefile.am (dependencies): Also depend on Bison's sources.
+
+2019-02-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: rename local variable
+	* src/reduce.c (nonterminals_reduce): Rename nontermmap as nterm_map.
+	We will expose it.
+
+2019-01-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	gram: detect and report (in debug traces) useless chain rules
+	A rule is a useless chain iff it's a chain (aka unit, or injection)
+	rule (i.e., the RHS has length 1), and it's useless (it has no used
+	defined semantic action).
+
+	* src/gram.h, src/gram.c (rule_useless_chain_p): New.
+	(grammar_dump): Report useless chain rules.
+	* tests/sets.at: Check the traces.
+
+2019-01-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	lr(0): more debug traces
+	* src/lr0.c (core_print, kernel_print): New.
+	Use them.
+
+2019-01-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	lr(0): remove useless conditional
+	* src/lr0.c (new_itemsets): There's no harm in setting a Boolean
+	several times.
+
+2019-01-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: sort includes and avoid assignments
+	* src/symtab.c: Sort includes.
+	* src/gram.c (grammar_rules_print_xml): Avoid assignments to define
+	'usefulness'.
+
+2019-01-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: use item_rule
+	* src/print-graph.c, src/print-xml.c: here.
+
+2019-01-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	gram: factor the printing of items and the computation of their rule
+	There are several places where we need to recover the rule from an
+	item, let's factor that into item_rule.  We also want to print items
+	in a nice way: we do it when generating the *output file, but it is
+	also useful in debug messages.
+
+	* src/gram.h, src/gram.c (item_rule, item_print): New.
+	* src/print.c (print_core): Use them.
+	* src/state.h, src/state.c: Propagate constness.
+
+2019-01-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: scope reduction in print-xml
+	* src/print-xml.c: here.
+
+2019-01-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: check XML and dot reports
+	* tests/report.at: Here.
+
+2019-01-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: update the ICC serial number for travis-ci.org
+	On travis-ci.org, there are five concurrent slaves, instead of three
+	on travis-ci.com.
+
+2019-01-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: update the ICC serial number for travis-ci.org
+	On travis-ci.org, there are five concurrent slaves, instead of three
+	on travis-ci.com.
+
+2019-01-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment changes
+	* src/lr0.c, src/state.c, src/state.h: here.
+
+2019-01-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	closure: initialize it once for all
+	The memory allocated by 'closure' (and some data such as 'fderives')
+	is used to computed a state's full itemset from its core.  This is
+	needed during the construction of the LR(0) automaton, and the memory
+	is reclaimed immediately afterwards.
+
+	Unfortunately the reports (graph, text, xml) also need this
+	information when describing the states with their full itemsets.  As a
+	consequence the memory was allocated again, fderives computed again
+	too, and more --trace reports are generated which only duplicate what
+	was already reported.
+
+	Stop that.  It does mean that we release the memory later (hence the
+	peak memory usage is higher now), but I don't think that's a problem
+	today.
+
+	* src/lr0.c (generate_states): Don't call closure_free.
+	* src/state.c (states_free): Do it here.
+	(for symmetry with closure_new which is called in generate_states).
+	* src/print-graph.c, src/print-xml.c, src/print.c: You can now expect
+	the closure module to be functional.
+
+2019-01-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: rename closure_* functions as closure_*
+	This is more consistent with the other files.
+
+	* closure.h, closure.c (new_closure, free_closure): Rename as...
+	(closure_new, closure_free): this.
+	Adjust dependencies.
+
+2019-01-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	lr0: use a bitset for the set of "shiftable symbols"
+	This will make it easier to add new elements (that might already be
+	part of shift_symbol) without having to worry about the size of
+	shift_symbol (which is currently a fixed size vector).
+
+	I could not measure any significant differences in performances in the
+	generation of LR(0) automaton (benched on gramamrs of Ruby, C, and C++).
+
+	* src/lr0.c (shift_symbol): Make it a bitset.
+
+2019-01-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	add -fsyntax-only
+	When debugging Bison itself, this is very handy, especially when
+	tweaking the frontend badly enough to break the backends. It can also
+	be used to check a grammar.
+
+	* src/getargs.h, src/getargs.c (feature_syntax_only): New.
+	(feature_args, feature_types): Adjust.
+	* src/main.c (main): Use it.
+
+2019-01-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: beware of collisions on status
+	* src/symtab.h (status): Rename as...
+	(declaration_status): this, to avoid colliding with status, the
+	argument of 'usage'.
+	'status' seems a tad too general to be used only here.
+
+2019-01-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2019-01-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	usage: document -ffixit
+	* src/getargs.c (usage): Document -ffixit.
+	Document the aliases of -f.
+
+2019-01-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes in state.c and ielr.c
+
+2019-01-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	Merge branch 'maint'
+	* maint:
+	  maint: post-release administrivia
+	  version 3.3.1
+	  yacc: issue warnings, not errors, for Bison extensions
+	  style: formatting changes in NEWS and complain.c
+	  tests: don't depend on the user's definition of SHELL
+
+2019-01-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2019-01-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.3.1
+	* NEWS: Record release date.
+
+2019-01-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc: issue warnings, not errors, for Bison extensions
+	Reported by Kiyoshi Kanazawa.
+	http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00029.html
+
+	* src/getargs.c (getargs): Let --yacc imply -Wyacc, not -Werror=yacc.
+	* tests/input.at: Adjust.
+	* doc/bison.tex (Bison Options): Document.
+
+2019-01-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: formatting changes in NEWS and complain.c
+
+2019-01-27  Kiyoshi Kanazawa  <yoi_no_myoujou@yahoo.co.jp>
+
+	tests: don't depend on the user's definition of SHELL
+	http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00031.html
+
+	* examples/test (SHELL): Set it to /bin/sh.
+
+2019-01-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	traces: always print the reduced grammar and fix it
+	* src/gram.c (grammar_dump): Print the effective number first instead
+	of last.  And fix it (remove the incorrect "+1").
+	Use t/f for Booleans.
+	* src/reduce.c: When asked, always print the reduced grammar, even if
+	there was nothing useless.
+	* tests/sets.at (Reduced Grammar): Check that.
+
+2019-01-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: rename LR0.* as lr0.*
+	Let's stick to lower case for file names.
+
+	* src/LR0.h, src/LR0.c: Rename as...
+	* src/lr0.h, src/lr0.c: these.
+
+2019-01-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: rename print_graph.* as print-graph.*
+	These are the only files with _.
+
+	* src/print_graph.h, src/print_graph.c: Rename as...
+	* src/print-graph.h, src/print-graph.c: these.
+
+2019-01-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: various fixes
+	* src/gram.c: Use consistent variable names.
+	Prefix prefix unary operators.
+	(grammar_dump): Use rule_rhs_length instead of duplicating it.
+	* src/reduce.c: Avoid useless variables.
+
+2019-01-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment changes in gram.h
+	* src/gram.h: Shorten comments.
+
+2019-01-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2019-01-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.3
+	* NEWS: Record release date.
+
+2019-01-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2019-01-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: fix comment
+	* data/skeletons/c++.m4: here.
+
+2019-01-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: formatting changes
+	* data/skeletons/lalr1.cc: Add dnl.
+	* data/skeletons/bison.m4: Comment the use of dnl.
+
+2019-01-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: run the printer/destructor test on glr.cc
+	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust for
+	glr.cc, and use it.
+
+2019-01-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2019-01-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	--update: when used, do not generate the output files
+	It is inconvenient that we also generate the output files when we
+	update the grammar file, and it's somewhat unexpected.  Let's not do
+	that.
+
+	* src/main.c (main): Skip generation when --update is passed.
+	* src/getargs.c (usage): Update the help message.
+	* doc/bison.texi (Bison Options): Likewise.
+	* tests/input.at: Check that we don't generate the output.
+
+2019-01-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: let redundant definitions be only warnings
+	After all, this is clearly harmless.
+
+	* src/muscle-tab.c (muscle_percent_define_insert): Let equal
+	definitions of a %define variable be only a warning.
+	Adjust test cases.
+
+2019-01-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: improve check for updated variable names
+	* tests/input.at ("%define" backward compatibility): Don't define
+	twice "api.namespace", so that we don't get an error, which stops the
+	process too soon to see an error about the value given to
+	'lr.keep-unreachable-state'.
+
+2019-01-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: remove redundancy
+	Don't repeat the name of the warning in the sub messages.  E.g.,
+	remove the second "[-Wother]" in the following message
+
+	    foo.y:2.1-27: warning: %define variable 'parse.error' redefined [-Wother]
+	     %define parse.error verbose
+	     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
+	    foo.y:1.1-27:     previous definition [-Wother]
+	     %define parse.error verbose
+	     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+	* src/complain.c (error_message): Don't print the warning type when
+	it's indented.
+	Adjust test cases.
+
+2019-01-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: better "scope" a workaround for GCC
+	* data/skeletons/lalr1.cc: Enable it only for GCC 4.8 and before.
+
+2019-01-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: address -Wweak-vtables warnings
+	Reported by Derek Clegg
+	http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00021.html
+
+	    aux/parser-internal.h:429:12: error: 'syntax_error' has no out-of-line virtual
+	         method definitions; its vtable will be emitted in every translation unit
+	         [-Werror,-Wweak-vtables]
+	       struct syntax_error : std::runtime_error
+
+	To avoid this warning, we need syntax_error to have a virtual function
+	defined in a compilation unit.  Let it be the destructor.  To comply
+	with C++98, this dtor should be 'throw()'.  Merely making YY_NOEXCEPT
+	be 'throw()' in C++98 triggers
+	errors (http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00022.html),
+	so let's introduce YY_NOTHROW and flag only ~syntax_error with it.
+
+	Also, since we now have an explicit dtor, we need to provide an copy
+	ctor.
+
+	* configure.ac (warn_cxx): Add -Wweak-vtables.
+	* data/skeletons/c++.m4 (YY_NOTHROW): New.
+	(syntax_error): Declare the dtor, and define the copy ctor.
+	* data/skeletons/glr.cc, data/skeletons/lalr1.cc (~syntax_error):
+	Define.
+
+2019-01-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: prefer bool to char
+	* src/state.h, src/state.c (state::consistent): Make it a bool.
+	Adjust dependencies.
+
+2019-01-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.cc: be more alike lalr1.cc
+
+2019-01-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: formatting changes
+	* data/skeletons/c++.m4: Un-remove an end-of-line.
+
+2019-01-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: fixes
+
+2019-01-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2019-01-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.2.91
+	* NEWS: Record release date.
+
+2019-01-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: various fixes
+	Some reported by syntax-check.
+
+	* po/POTFILES.in: Add fixits.cc.
+	* src/muscle-tab.c: Don't cast for free.
+	* src/files.c: Reduce scopes.
+	* cfg.mk: We need the cast for free in muscle_percent_define_insert.
+
+2019-01-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: document -ffixit and --update
+	* doc/bison.texi (Bison Options): here.
+
+2019-01-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: style fixes
+	* doc/bison.texi: Use @kbd where appropriate.
+	Update ^~~~ marks for caret-errors.
+	* build-aux/cross-options.pl: Do not add quotes to %define's argument.
+
+2019-01-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update for fixits and --update
+
+2019-01-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	fixits: handle duplicates of %name-prefix
+	The test case "Deprecated directives" (currently 56) no longer emits
+	warnings after 'bison -u'!
+
+	* src/files.h, src/files.c (spec_name_prefix_loc): New.
+	* src/parse-gram.y (handle_name_prefix): Emit fixits for duplicate
+	%name-prefix.
+	* tests/input.at (Deprecated directives): Adjust.
+
+2019-01-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-01-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	fixits: handle %file-prefix
+	* src/files.h, src/files.c (spec_file_prefix_loc): New.
+	* src/scan-gram.l (%file-prefix): Delegate diagnostics to...
+	* src/parse-gram.y (handle_file_prefix): here.
+	* src/complain.c (duplicate_directive): Quote the directive.
+	* tests/input.at: Adjust.
+
+2019-01-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	fixits: handle per-rule duplicates
+	* src/complain.c (duplicate_rule_directive): Here.
+	* tests/actions.at (Invalid uses of %empty): Check it.
+
+2019-01-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	fixits: fix warnings about duplicates
+	* src/complain.c (duplicate_directive): Fix the complaint level.
+	* tests/input.at: Adjust.
+
+2019-01-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: properly indent the "previous declaration" message
+	* src/complain.c (duplicate_directive, duplicate_rule_directive):
+	Here.
+
+2019-01-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-01-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: rename some functions for consistency
+	"handle_" is the prefix used in scan-code.l for instance.
+
+	* src/parse-gram.y (do_error_verbose, do_name_prefix, do_require)
+	(do_skeleton, do_yacc):
+	Rename as...
+	(handle_error_verbose, handle_name_prefix, handle_require)
+	(handle_skeleton, handle_yacc):
+	these.
+
+2019-01-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	fixits: report duplicate %yacc directives
+	We should use -ffixit and --update to clean files with duplicate
+	directives.  And we should complain only once about duplicate obsolete
+	directives: keep only the "duplicate" warning.  Let's start with %yacc.
+
+	For instance on:
+
+	    %fixed-output_files
+	    %fixed-output-files
+	    %yacc
+	    %%
+	    exp:
+
+	This run of bison:
+
+	    $ bison /tmp/foo.y -u
+	    foo.y:1.1-19: warning: deprecated directive, use '%fixed-output-files' [-Wdeprecated]
+	     %fixed-output_files
+	     ^~~~~~~~~~~~~~~~~~~
+	    foo.y:2.1-19: warning: duplicate directive [-Wother]
+	     %fixed-output-files
+	     ^~~~~~~~~~~~~~~~~~~
+	    foo.y:1.1-19: previous declaration
+	     %fixed-output_files
+	     ^~~~~~~~~~~~~~~~~~~
+	    foo.y:3.1-5: warning: duplicate directive [-Wother]
+	     %yacc
+	     ^~~~~
+	    foo.y:1.1-19: previous declaration
+	     %fixed-output_files
+	     ^~~~~~~~~~~~~~~~~~~
+	    bison: file 'foo.y' was updated (backup: 'foo.y~')
+
+	gives:
+
+	    %fixed-output-files
+	    %%
+	    exp:
+
+	* src/location.h, src/location.c (location_empty): New.
+	* src/complain.h, src/complain.c (duplicate_directive): New.
+
+	* src/getargs.h, src/getargs.c (yacc_flag): Instead of a Boolean, be
+	the location of the definition.
+	Update dependencies.
+
+	* src/scan-gram.l (%yacc, %fixed-output-files): Move the handling of
+	its warnings to...
+	* src/parse-gram.y (do_yacc): This new function.
+
+	* tests/input.at (Deprecated Directives): Adjust expectations.
+
+2019-01-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: rename duplicate_directive as duplicate_rule_directive
+	* src/complain.h, src/complain.c: here.
+	Adjust callers.
+
+2019-01-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	fixits: suggest running --update if there are fixits
+	* src/fixits.h, src/fixits.c (fixits_empty): New.
+	* src/complain.c (deprecated_directive): Register the Wdeprecated
+	fixits only if -Wdeprecated was enabled, so that we don't apply
+	updates if the user didn't ask for them.
+	* src/main.c (main): If there were fixits, issue a warning suggesting
+	running with --update.
+	Free uniqstrs after the fixits, since the latter use the former.
+	* tests/headers.at, tests/input.at: Update expectations.
+
+2019-01-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	fixits: avoid generating empty lines
+	* src/fixits.c (fixits_run): If erase the content of a line, also
+	erase the following \n.
+	* tests/input.at (Deprecated directives): Update expectations.
+
+2019-01-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	configure: don't try to run C++ warnings on C
+	Reported by Derek Clegg.
+	https://lists.gnu.org/archive/html/bison-patches/2019-01/msg00066.html
+
+	* configure.ac: here.
+
+2019-01-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	c, c++: avoid implicit fall-throw
+	Reported by Derek Clegg.
+	http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00004.html
+
+	* configure.ac (warn_common): Add -Wimplicit-fallthrough.
+	This does trigger failures in the test suite.
+	* data/skeletons/glr.c, data/skeletons/lalr1.cc,
+	* data/skeletons/yacc.c, tests/c++.at:
+	Make fall-throws explicit.
+
+2019-01-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: avoid -Wundefined-func-template warnings from clang
+	Reported by Derek Clegg.
+	http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00006.html
+
+	Clang does not like this:
+
+	    template <typename D>
+	    struct basic_symbol : D
+	    {
+	      basic_symbol();
+	    };
+
+	    struct by_type {};
+
+	    struct symbol_type : basic_symbol<by_type>
+	    {
+	      symbol_type(){}
+	    };
+
+	It gives:
+
+	    $ clang++-mp-7.0 -Wundefined-func-template foo.cc -c
+	    foo.cc:11:3: warning: instantiation of function 'basic_symbol<by_type>::basic_symbol'
+	                 required here, but no definition is available [-Wundefined-func-template]
+	      symbol_type(){}
+	      ^
+	    foo.cc:4:3: note: forward declaration of template entity is here
+	      basic_symbol();
+	      ^
+	    foo.cc:11:3: note: add an explicit instantiation declaration to suppress this warning
+	                 if 'basic_symbol<by_type>::basic_symbol' is explicitly instantiated in
+	                 another translation unit
+	      symbol_type(){}
+	      ^
+	    1 warning generated.
+
+	The same applies for the basic_symbol's destructor and `clear()`.
+
+	* configure.ac (warn_cxx): Add -Wundefined-func-template.
+	This triggered one failure in the test suite:
+	* tests/headers.at (Sane headers): here, where we check that we can
+	compile the generated headers in other compilation units than the
+	parser's.
+	Add a variant type to make sure that basic_symbol and symbol_type are
+	properly generated in this case.
+	* data/skeletons/c++.m4 (basic_symbol): Inline the definitions of the
+	destructor and of `clear` in the class definition.
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	Revert the last two commits
+	They should not have been pushed, sorry about that.
+
+	This reverts
+	- commit 8575bd06ae6e65f3a30b21a3e022a968e4c7ae7a.
+	- commit 55bf52860eac5c1394dc344a691220272df32b09.
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: avoid warnings about extraneous semi-colons
+	Reported by Derek Clegg.
+
+	* configure.ac (warn_common): Add -Wextra-semi.
+	* data/skeletons/c++.m4: Remove extraneous semi-colon.
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	WIP
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: add fixit support for duplicate removal
+	* src/muscle-tab.c (muscle_percent_define_insert): Register a fixit
+	for duplicate removal.
+	* tests/input.at: Adjust expectations.
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: improve the accuracy for %error-verbose
+	Avoid duplicate warnings about %error-verbose, once for deprecation,
+	another for duplicate.  Keep only the duplicate warning for the second
+	occurrence of %error-verbose.
+
+	This will help removal fixits.
+
+	* src/scan-gram.l (%error-verbose): Return as a PERCENT_ERROR_VERBOSE
+	token.
+	* src/parse-gram.y (do_error_verbose): New.
+	Use it.
+	* src/muscle-tab.c (muscle_percent_variable_update): Handle pseudo
+	variables such as %error-verbose.
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: avoid duplicate warnings for deprecated directives
+	Currently, on
+
+	    %define parser_class_name "Parser"
+	    %define parser_class_name "Parser"
+	    %%
+	    exp:;
+
+	we issue:
+
+	    foo.y:1.9-25: warning: deprecated directive, use '%define api.parser.class {Parser}' [-Wdeprecated]
+	     %define parser_class_name "Parser"
+	             ^~~~~~~~~~~~~~~~~
+	    foo.y:2.9-25: warning: deprecated directive, use '%define api.parser.class {Parser}' [-Wdeprecated]
+	     %define parser_class_name "Parser"
+	             ^~~~~~~~~~~~~~~~~
+	    foo.y:2.9-25: error: %define variable 'api.parser.class' redefined
+	     %define parser_class_name "Parser"
+	             ^~~~~~~~~~~~~~~~~
+	    foo.y:1.9-25:     previous definition
+	     %define parser_class_name "Parser"
+	             ^~~~~~~~~~~~~~~~~
+
+	Let's get rid of the second warning about the deprecated variable
+	parser_class_name.  This is noise, but it will also be a problem with
+	fixits for removing duplicates, as we will first generate the update,
+	and then it's too late to remove it: fixits do not edit the result of
+	previous fixits.
+
+	So generate this instead:
+
+	    foo.y:1.1-34: warning: deprecated directive, use '%define api.parser.class {Parser}' [-Wdeprecated]
+	     %define parser_class_name "Parser"
+	     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	    foo.y:2.1-34: error: %define variable 'api.parser.class' redefined
+	     %define parser_class_name "Parser"
+	     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	    foo.y:1.1-34:     previous definition
+	     %define parser_class_name "Parser"
+	     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+	* src/muscle-tab.c (muscle_percent_variable_update): Pass the warning
+	to the caller, instead of issuing it.
+	(muscle_percent_define_insert): Issue this warning only if we don't
+	have to complain about a duplicate definition.
+	* tests/input.at: Adjust expectations.
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: update the grammar file
+	Let's use the fixits to actually update the grammar files.
+
+	* src/getargs.h, src/getargs.c (update_flag): New.
+	* src/fixits.h, src/fixits.c (fixits_run): New.
+	* src/main.c (main): Invoke fixits_run when --update is passed.
+	* tests/input.at (Deprecated directives): Check --update.
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: improve accuracy for deprecated %define variables
+	* src/parse-gram.y: Use the location of the whole definition to record
+	the location of a %define variable, instead of just the name of the
+	variable.
+	Adjust tests.
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: keep the fixits
+	Introduce proper support for fixits, instead of just printing them on
+	demand.
+
+	* bootstrap.conf: We need gnulib's xlists.
+	* src/fixits.h, src/fixits.c: New.
+	* src/complain.c (deprecated_directive): Use fixits_register.
+	* src/main.c (main): Use fixits_free.
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: add -ffixit support for deprecated features
+	Issue directives for IDE/editors to fix the source file.
+	http://clang.llvm.org/docs/UsersManual.html#cmdoption-fdiagnostics-parseable-fixits
+
+	Do it for deprecated features.  For instance:
+
+	    $ cat foo.y
+	    %error-verbose
+
+	    %name-prefix = "foo"
+	    %name-prefix="bar"
+	    %define parser_class_name "Parser"
+
+	    %%
+	    exp:;
+
+	    $ LC_ALL=C ./_build/8d/tests/bison -ffixit /tmp/foo.yy
+	    /tmp/foo.yy:1.1-14: warning: deprecated directive, use '%define parse.error verbose' [-Wdeprecated]
+	     %error-verbose
+	     ^^^^^^^^^^^^^^
+	    fix-it:"/tmp/foo.yy":{1:1-1:15}:"%define parse.error verbose"
+	    /tmp/foo.yy:3.1-20: warning: deprecated directive, use '%define api.prefix {foo}' [-Wdeprecated]
+	     %name-prefix = "foo"
+	     ^^^^^^^^^^^^^^^^^^^^
+	    fix-it:"/tmp/foo.yy":{3:1-3:21}:"%define api.prefix {foo}"
+	    /tmp/foo.yy:4.1-18: warning: deprecated directive, use '%define api.prefix {bar}' [-Wdeprecated]
+	     %name-prefix="bar"
+	     ^^^^^^^^^^^^^^^^^^
+	    fix-it:"/tmp/foo.yy":{4:1-4:19}:"%define api.prefix {bar}"
+	    /tmp/foo.yy:5.9-25: warning: deprecated directive, use '%define api.parser.class {Parser}' [-Wdeprecated]
+	     %define parser_class_name "Parser"
+	             ^^^^^^^^^^^^^^^^^
+	    fix-it:"/tmp/foo.yy":{5:9-5:26}:"%define api.parser.class {Parser}"
+	    /tmp/foo.yy:5.9-25: error: %define variable 'api.parser.class' is not used
+	     %define parser_class_name "Parser"
+	             ^^^^^^^^^^^^^^^^^
+
+	* src/getargs.h, src/getargs.c (feature_fixit_parsable): New.
+	(feature_types, feature_args): Use it.
+	* src/complain.c (deprecated_directive): Use it.
+
+	* tests/input.at: Check it.
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: prefer ^~~~ to ^^^^ to underline code
+	That's what both GCC and Clang do, and it is indeed much nicer to
+	read.  From:
+
+	    foo.y:1.1-14: warning: deprecated directive, use '%define parse.error verbose' [-Wdeprecated]
+	     %error-verbose
+	     ^^^^^^^^^^^^^^
+	    foo.y:4.1-20: warning: deprecated directive, use '%define api.prefix {foo}' [-Wdeprecated]
+	     %name-prefix = "foo"
+	     ^^^^^^^^^^^^^^^^^^^^
+
+	to:
+
+	    foo.y:1.1-14: warning: deprecated directive, use '%define parse.error verbose' [-Wdeprecated]
+	     %error-verbose
+	     ^~~~~~~~~~~~~~
+	    foo.y:4.1-20: warning: deprecated directive, use '%define api.prefix {foo}' [-Wdeprecated]
+	     %name-prefix = "foo"
+	     ^~~~~~~~~~~~~~~~~~~~
+
+	* src/location.c (location_caret): Use ^~~~.
+	Adjust tests expectations.
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: improve them for %name-prefix
+	Currently the diagnostics for %name-prefix are not precise enough.  In
+	particular, they does not show that braces must be used instead of
+	quotes.
+
+	Before:
+
+	    foo.y:3.1-14: warning: deprecated directive, use '%define api.prefix' [-Wdeprecated]
+	     %name-prefix = "foo"
+	     ^^^^^^^^^^^^^^
+
+	After:
+
+	    foo.y:3.1-20: warning: deprecated directive, use '%define api.prefix {foo}' [-Wdeprecated]
+	     %name-prefix = "foo"
+	     ^^^^^^^^^^^^^^^^^^^^
+
+	To do this we need the value passed to %name-prefix, so move the
+	warning from the scanner to the parser.
+
+	Accuracy will be very important for the forthcoming changes.
+
+	* src/parse-gram.y (do_name_prefix): New.
+	(PERCENT_NAME_PREFIX): Have a semantic value: the raw source, with
+	possibly underscores, equal sign, and spaces.  This is used to provide
+	a more accurate message.  It does not take comments into account,
+	but...
+	* src/scan-gram.l (%name-prefix): Delegate the warnings to the parser.
+
+	* tests/headers.at, tests/input.at: Adjust expectations.
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	diagnostics: style: avoid allocating memory when not needed
+	* src/muscle-tab.c (muscle_percent_variable_update): Avoid allocating
+	memory when it is not needed, which should be most of the time (when
+	there's no update to perform).
+	Adjust callers.
+
+2019-01-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: avoid warnings about extraneous semi-colons
+	Reported by Derek Clegg.
+	http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00005.html
+
+	* configure.ac (warn_cxx): Add -Wextra-semi.
+	* data/skeletons/c++.m4: Remove extraneous semi-colon.
+
+2019-01-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: minor changes
+	* src/muscle-tab.c: Sort alphabetically.
+	* src/scan-gram.l: Reduce scopes.
+	Initialize variables.
+
+2019-01-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: beware of -Wshadow
+	This line:
+
+	    slice<stack_symbol_type, stack_type> slice (yystack_, yylen);
+
+	triggers warnings:
+
+	    parse.h:1790:11: note: shadowed declaration is here
+
+	Reported by Frank Heckenbach.
+	http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00002.html
+
+	* configure.ac (warn_c): Move -Wshadow to...
+	(warn_common): here.
+	* data/skeletons/stack.hh (slice): Define as an inner class of stack.
+	* data/skeletons/lalr1.cc: Adjust.
+	Rename the variable as 'range' instead of 'slice'.
+
+2019-01-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2019-01-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.2.90
+	* NEWS: Record release date.
+
+2019-01-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc: fix relocatability
+	* src/yacc.in (prefix): Define it, as it's typically needed for
+	exec_prefix.
+
+2019-01-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	syntax-check: adjust paths
+	* cfg.mk: here.
+	(require_config_h): New.
+
+2019-01-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: formatting clean up
+	* data/skeletons/d.m4, examples/d/calc.y, src/output.c,
+	* src/parse-gram.y:
+	No tab, no trailing spaces.
+	Reported by syntax-check.
+
+2019-01-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	po: remove bitset/stats.c
+	* po/POTFILES.in: here.
+
+2019-01-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix usage of AT_PARSER_CHECK
+	The parser must be the first command.  Caught by syntax-check.
+
+	* tests/c++.at: here.
+
+2019-01-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2019-01-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2019-01-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: isolate the creation of tname in a function
+	* src/output.c (prepare_symbol_names): New.
+	Use it.
+
+2019-01-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: formatting changes
+	* tests/input.at, tests/regression.at: here.
+
+2019-01-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: use @option consistently
+	* doc/bison.texi: Use @option, not @code, for options.
+
+2019-01-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: avoid negated if
+	* data/skeletons/yacc.c: Prefer a "direct" conditional.
+
+2019-01-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	package: bump copyrights to 2019
+
+2019-01-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	java/d: rename some %define variables for consistency
+	See 890ee8a1fd288b3cc1c21c49ea0ece696ef40565 and
+	https://lists.gnu.org/archive/html/bison-patches/2019-01/msg00024.html.
+
+	* data/skeletons/d.m4, data/skeletons/java.m4
+	(abstract, annotations, extends, final, implements, public, strictfp):
+	Rename as...
+	(api.parser.abstract, api.parser.annotations, api.parser.extends)
+	(api.parser.final, api.parser.implements, api.parser.public)
+	(api.parser.strictfp):
+	these.
+
+	* src/muscle-tab.c (muscle_percent_variable_update): Ensure backward
+	compatibility.
+
+	* doc/bison.texi, examples/d/calc.y, examples/java/Calc.y,
+	tests/input.at: Adjust.
+
+2019-01-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	java/d: remove useless macros
+	There are many macros that are defined and used just
+	once (b4_public_if, b4_abstract_if, etc.).  That's overkill.  Rather,
+	let's define a macro to build the "public class YYParser" line.
+
+	It appears that the same syntax with "extends", "abstract", etc. is
+	implemented in the D parser, which looks very fishy...
+
+	* data/skeletons/d.m4, data/skeletons/java.m4 (b4_public_if)
+	(b4_abstract_if, b4_final_if, b4_strictfp_if): Replace with
+	(b4_parser_class_declaration): this.
+	* data/skeletons/lalr1.d, data/skeletons/lalr1.java: Adjust.
+
+2019-01-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: clean tests
+	* tests/named-refs.at: here.
+
+2019-01-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+	In particular, report uninitialized submodules instead of breaking
+	symlinks.
+
+	For reports, see
+	https://lists.gnu.org/archive/html/bug-bison/2011-05/msg00012.html
+	https://lists.gnu.org/archive/html/help-bison/2018-12/msg00034.html
+
+	For a fix, see
+	https://lists.gnu.org/archive/html/bug-gnulib/2019-01/msg00024.html
+
+2019-01-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.cc: fix the handling of syntax_error from the scanner
+	Commit 90a8537e6287f92fb3d5be0258a69247a742f12e was right, but issued
+	two error messages.  Commit 80ef7e7639f99618bee490b2dea02b5fd9ab28e5
+	tried to address that by mapping yychar and yytoken to empty, but that
+	completely breaks the invariants of glr.c.  In particular, yygetToken
+	can be called repeatedly and is expected to return the latest result,
+	unless yytoken is YYEMPTY.  Since the previous attempt was "recording"
+	that the token was coming from an exception by setting it to YYEMPTY,
+	instead of getting again the faulty token, we fetched another one.
+
+	Rather, revert to the first approach: map yytoken to "invalid token",
+	but record in yychar the fact that we come from an exception thrown in
+	the scanner.
+
+	* data/skeletons/glr.c (YYFAULTYTOK): New.
+	(yygetToken): Use it to record syntax errors from the scanner.
+	* tests/c++.at (Syntax error as exception): In addition to checking
+	syntax_error with error recovery, make sure it also behaves as
+	expected without.
+
+2019-01-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	clearly deprecate %name-prefix
+	* src/scan-gram.l (%name-prefix): Issue a deprecation warning.
+
+	* tests/calc.at, tests/headers.at, tests/input.at, tests/java.at,
+	* tests/javapush.at, tests/local.at: Adjust expectations.
+	Or disable -Wdeprecated.
+
+	* doc/bison.texi: Document that %name-prefix is replaced by %define
+	api.prefix.
+
+2019-01-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: clean up the Java/D examples
+	* examples/java/Calc.y: Fix indentation.
+	Sort.
+	Don't use %name-prefix, since api.parser.class is already defined.
+	* examples/d/calc.y: Likewise.
+
+2019-01-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: formatting changes
+	* doc/bison.texi: here.
+
+2019-01-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	rename parser_class_name as api.parser.class
+	The previous name was historical and inconsistent.
+
+	* src/muscle-tab.c (define_directive): Use the proper value passing
+	syntax, based on the muscle kind.
+	(muscle_percent_variable_update): Use the right value passing syntax.
+	Migrate from parser_class_name to api.parser.class.
+
+	* data/skeletons: Migrate from parser_class_name to api.parser.class.
+
+	* doc/bison.texi (%define Summary): Document both parser_class_name
+	and api.parser.class.
+	Promote the latter over the former.
+
+2019-01-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: formatting changes
+	* src/scan-gram.l: Here.
+
+2019-01-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: glr.c: prefer returning a value rather than passing pointers
+	This is very debatable.  This function is not pure at all, so it could
+	stick to returning void: that's a common coding style to tell the
+	difference between "real" (pure) functions and side-effecting
+	subroutines.  However, we already have this style elsewhere (e.g.,
+	yylex), and I feel the callers are somewhat nice to read this way.
+
+	* data/skeletons/glr.c (yygetLRActions): Return the action rather than
+	passing by pointer.
+	While at it, fix type of yytoken.
+	Adjust callers.
+
+2019-01-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.cc: don't issue two error messages when syntax_error is thrown
+	Reported by Askar Safin.
+	https://lists.gnu.org/archive/html/bison-patches/2019-01/msg00000.html
+
+	* data/skeletons/glr.c (yygetToken): Return YYEMPTY when an exception
+	is thrown.
+	* data/skeletons/lalr1.cc: Log when an exception is caught.
+	* tests/c++.at (Syntax error as exception): Be sure to recover from
+	error before triggering another error.
+
+2019-01-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	skeletons: shorten b4_parser_class_name to b4_parser_class
+	* skeletons/c++.m4, skeletons/d.m4, skeletons/glr.c, skeletons/glr.cc,
+	* skeletons/java.m4, skeletons/lalr1.cc, skeletons/lalr1.d,
+	* skeletons/lalr1.java: Here.
+
+2019-01-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.cc: remove duplicate definition of YYLLOC_DEFAULT
+	It's already provided by glr.c.
+
+	* data/skeletons/glr.cc (b4_post_prologue): Here.
+
+2019-01-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: sort includes in scanners
+	* src/scan-code.l, src/scan-gram.l, src/scan-skel.l: Reorder includes.
+
+2019-01-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: formatting changes in the doc
+	* doc/bison.texi: here.
+
+2019-01-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: remove stray empty lines
+	* data/skeletons/glr.c, data/skeletons/glr.cc: here.
+	* data/skeletons/bison.m4 (b4_glr_cc_if): Move it here.
+
+2018-12-31  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.cc: support syntax_error exceptions
+	Kindly requested by Аскар Сафин (Askar Safin).
+	http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00033.html
+
+	* data/skeletons/glr.c (b4_glr_cc_if): New.
+	Use it.
+	(yygetToken): Catch syntax_errors.
+	* data/skeletons/glr.cc (YY_EXCEPTIONS): New.
+	* tests/c++.at: Check it.
+
+2018-12-31  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.c: factor the calls to yylex
+	The call protocol of yylex is quite complex, and repeated three
+	times.  Let's factor it.
+
+	* data/skeletons/glr.c (yygetToken): New.
+	Use it.
+
+2018-12-31  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes in glr.c
+	* data/skeletons/glr.c (yyrecoverSyntaxError): here.
+
+2018-12-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: refactor
+
+2018-12-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: inline the implementation of syntax_error in its definition
+	This way, it is easier to make sure its implementation is available in
+	glr.cc too, which is not the case currently.
+
+	* data/skeletons/c++.m4 (b4_public_types_define): Move the
+	implementation of syntax_error...
+	(b4_public_types_declare): here.
+
+2018-12-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: formatting changes
+	* tests/input.at: here.
+
+2018-12-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	symbol: don't crash on symbol without content
+	When running with --trace=parse, we may crash.
+
+	* src/symtab.c (symbol_print): Avoid that.
+
+2018-12-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	README-hacking: update
+
+2018-12-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	reader: get rid of a useless function
+	Useless since 58d7a1a1c7497ba51a35fcf991c5b047f692fe18 (2006).
+
+	* src/parse-gram.y, src/reader.h (token_name): Remove, unused.
+
+2018-12-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	parsers: fix minor stylistic issues
+	* data/skeletons/variant.hh (b4_token_constructor_declare): Remove,
+	unused since the previous commit.
+	Fix indentation issues.
+	* data/skeletons/c++.m4: Fix indentation issues.
+
+2018-12-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: check several parsers in the same program
+	* tests/local.at (AT_LOCATION_TYPE_IF): Turn into...
+	(AT_LOCATION_TYPE_SPAN_IF): this.
+	Adjust dependencies.
+	* tests/headers.at (Several parsers): Add another C++ parser,
+	which uses the first C++ parser's locations.
+
+2018-12-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: variants: fuse declarations and definitions
+	We used to create a short definition of yy::parser with all the
+	implementations of its member functions outside.  But yy::parser is no
+	longer short and simple to read.  Maintaining each function twice is
+	painful: a lot of redundancy but different indentation levels, output
+	which depends on whether we are in a header or not (see
+	d132c2d5455135f63a7497c38358eadd6e3a6af8), etc.
+
+	Let's simplify this and put the implementations into the class
+	definition itself.
+
+	Discussed in this monologue:
+	https://lists.gnu.org/archive/html/bison-patches/2018-12/msg00058.html.
+
+	* data/skeletons/c++.m4, data/skeletons/lalr1.cc,
+	* data/skeletons/variant.hh (b4_basic_symbol_constructor_define)
+	(_b4_token_constructor_declare, b4_token_constructor_declare)
+	Merge into...
+	(b4_basic_symbol_constructor_define, _b4_token_constructor_define)
+	(b4_token_constructor_define): these.
+
+2018-12-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: fix dependencies
+	Commit 112ccb5ed73ba5c64b0b5300d8b9b686f02f094c moved the skeletons
+	from dist_pkgdata_DATA to dist_skeletons_DATA, hence broke the dependencies.
+
+	* Makefile.am (dependencies): New.
+	Use it where appropriate.
+
+2018-12-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: move stack<T> inside yy::parser
+	We used to define such auxiliary structures outside the class, mainly
+	as a matter of style to keep the definition of yy::parser short and
+	simple.  However, now there's a lot more code generated inside the
+	class definition (e.g., all the token constructors), so the
+	readability no longer applies.
+
+	However, if we move stack (and slice) inside yy::parser, then it
+	should no longer be needed to change the namespace to have multiple
+	parsers: changing the class name should suffice.
+
+	One common argument against inner classes is that they code bloat.  It
+	hardly applies here, since typically different parsers will have
+	different semantic value types, hence different actual stack types.
+
+	* data/skeletons/lalr1.cc: Invoke b4_stack_define inside yy::parser.
+
+2018-12-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	package: make bison a relocatable package
+	Suggested by David Barto
+	https://lists.gnu.org/archive/html/help-bison/2015-02/msg00004.html
+	and Victor Zverovich.
+	https://lists.gnu.org/archive/html/bison-patches/2018-10/msg00121.html
+
+	This is very easy to do, thanks to work by Bruno Haible in gnulib.
+	See "Supporting Relocation" in gnulib's documentation.
+
+	* bootstrap.conf: We need relocatable-prog and relocatable-script (for yacc).
+
+	* src/yacc.in: New.
+	* configure.ac, src/local.mk: Instantiate it.
+	* src/main.c, src/output.c (main, pkgdatadir): Use relocatable2.
+
+	* doc/bison.texi (FAQ): Document it.
+
+2018-12-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	README: wrap paragraphs
+
+2018-12-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2018-12-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	package: move skeletons into data/skeletons
+	* data/bison.m4, data/c++-skel.m4, data/c++.m4, data/c-like.m4,
+	* data/c-skel.m4, data/c.m4, data/d-skel.m4, data/d.m4, data/glr.c,
+	* data/glr.cc, data/java-skel.m4, data/java.m4, data/lalr1.cc,
+	* data/lalr1.d, data/lalr1.java, data/location.cc, data/stack.hh,
+	* data/variant.hh, data/yacc.c:
+	Move to...
+	* data/skeletons: here.
+	Use b4_skeletonsdir instead of b4_pkgdatadir.
+
+	* data/local.mk, src/output.c: Adjust.
+
+2018-12-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: style: use consistently this/that instead of this/other
+	* data/lalr1.cc, data/variant.hh: here.
+
+2018-12-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: also provide a copy constructor for symbol_type
+	Suggested by Wolfgang Thaller.
+	http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00081.html
+
+	* data/c++.m4 (basic_symbol, by_type): Instead of provide either move
+	or copy constructor, always provide the copy one.
+	* tests/c++.at (C++ Variant-based Symbols Unit Tests): Check it.
+
+2018-12-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: fix double free when a symbol_type was moved
+	Currently the following piece of code crashes (with parse.assert),
+	because we don't record that s was moved-from, and we invoke its dtor.
+
+	    {
+	      auto s = parser::make_INT (42);
+	      auto s2 = std::move (s);
+	    }
+
+	Reported by Wolfgang Thaller.
+	http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00077.html
+
+	* data/c++.m4 (by_type): Provide a move-ctor.
+	(basic_symbol): Be sure not to read a moved-from value.
+	* tests/c++.at (C++ Variant-based Symbols Unit Tests): Check this case.
+
+2018-12-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: style: improve tests
+	* tests/c++.at (C++ Variant-based Symbols Unit Tests): Provide better
+	assertions.
+	Use them.
+	Avoid useless Bison invocations.
+
+2018-12-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: style: use consistently this/that instead of this/other
+	* data/c++.m4: here.
+
+2018-12-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fixes
+	* tests/c++.at: Use AT_YYLEX_PROTOTYPE etc.
+	Which requires that we use the same argument names (lvalp, etc.).
+	* tests/local.at (AT_NAME_PREFIX): Fix regex.
+
+2018-12-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: style: rename a few macros for clarity
+	* data/c++.m4, data/lalr1.cc, data/variant.hh:
+	s/b4_symbol_constructor/b4_token_constructor/g, as this is really what
+	is being defined.
+
+2018-12-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: exhibit a safe symbol_type
+	Instead of introducing make_symbol (whose name, btw, somewhat
+	infringes on the user's "name space", if she defines a token named
+	"symbol"), let's make the construction of symbol_type safer, using
+	assertions.
+
+	For instance with:
+
+	    %token ':' <std::string> ID <int> INT;
+
+	generate:
+
+	    symbol_type (int token, const std::string&);
+	    symbol_type (int token, const int&);
+	    symbol_type (int token);
+
+	It does mean that now named token constructors (make_ID, make_INT,
+	etc.) go through a useless assert, but I think we can ignore this: I
+	assume any decent compiler will inline the symbol_type ctor inside the
+	make_TOKEN functions, which will show that the assert is trivially
+	verified, hence I expect no code will be emitted for it.  And anyway,
+	that's an assert, NDEBUG controls it.
+
+	* data/c++.m4 (symbol_type): Turn into a subclass of
+	basic_symbol<by_type>.
+	Declare symbol constructors when variants are enabled.
+	* data/variant.hh (_b4_type_constructor_declare)
+	(_b4_type_constructor_define): Replace with...
+	(_b4_symbol_constructor_declare, _b4_symbol_constructor_def): these.
+	Generate symbol_type constructors.
+	* doc/bison.texi (Complete Symbols): Document.
+	* tests/types.at: Check.
+
+2018-12-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: provide symbol constructors per type
+	On
+
+	    %token <int> FOO BAR
+
+	we currently generate make_FOO(int) and make_BAR(int).  However, in
+	order to factor their scanners, some users would also like to have
+	make_symbol(tok, int), where tok is FOO or BAR.  To ensure type
+	safety, add assertions that do check that value type and token type
+	match.  Bind this assertion to the parse.assert %define variable.
+
+	Suggested by Frank Heckenbach.
+	http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00034.html
+	Should also match expectations from Аскар Сафин.
+	http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00023.html
+
+	* data/variant.hh: Use b4_token_visible_if where applicable.
+	(_b4_type_constructor_declare, _b4_type_constructor_define): New.
+	Use them.
+
+2018-12-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: style changes
+	* data/c++.m4, data/variant.hh: Improve layout of the generated code.
+	Avoid casts.
+	(_b4_symbol_constructor_declare, _b4_symbol_constructor_define): Rename
+	as...
+	(_b4_token_maker_declare, _b4_token_maker_define): these.
+	* tests/types.at: Improve pair printing.
+
+2018-12-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: simplify tests
+	* tests/types.at: Simplify C++ instantiations.
+
+2018-12-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: use b4_token_visible_if
+	And other formatting/comment changes.
+
+	* data/variant.hh: Here.
+
+2018-12-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2018-12-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: fix token constructors for types with commas
+	Bitten by macros, again.
+	See 680b715518795c8648360fcf05f3772c04d2eed2.
+
+	* data/variant.hh (_b4_symbol_constructor_declare)
+	(_b4_symbol_constructor_define): Do not use user types, which can
+	include commas as in `std::pair<int, int>`, to macros.
+
+	* tests/local.at: Adjust the lex related macros to support the
+	case of token constructors.
+	* tests/types.at: Also check token constructors on types with commas.
+
+2018-12-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2018-12-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	symbols: document the overhaul of symbol declarations
+	* doc/bison.texi (Symbol Decls): New.
+
+2018-12-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	symbols: check more invalid declarations
+	* tests/input.at (Invalid %nterm uses): Rename as...
+	(Invalid symbol declarations): this.
+	Extend.
+
+2018-12-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	symbols: check the previous commit
+	* tests/input.at (Symbol declarations): New.
+
+2018-12-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-12-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	symbols: clean up their parsing
+	Prompted by Rici Lake.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00000.html
+
+	We have four classes of directives that declare symbols: %nterm,
+	%type, %token, and the family of %left etc.  Currently not all of them
+	support the possibility to have several type tags (`<type>`), and not
+	all of them support the fact of not having any type tag at all
+	(%type).  Let's unify this.
+
+	- %type
+	  POSIX Yacc specifies that %type is for nonterminals only.  However,
+	  some Bison users want to use it for both tokens and nterms
+	  (actually, Bison's own grammar does this in several places, e.g.,
+	  CHAR).  So it should accept char/string literals.
+
+	  As a consequence cannot be used to declare tokens with their alias:
+	  `%type foo "foo"` would be ambiguous (are we defining foo = "foo",
+	  or are these two different symbols?)
+
+	  POSIX specifies that it is OK to use %type without a type tag.  I'm
+	  not sure what it means, but we support it.
+
+	- %token
+	  Accept token declarations with number and string literal:
+	  (ID|CHAR) NUM? STRING?.
+
+	- %left, etc.
+	  They cannot be the same as %token, because we accept to declare the
+	  symbol with %token, and to then qualify its precedence with %left.
+	  Then `%left foo "foo"` would also be ambiguous: foo="foo", or two
+	  symbols.
+
+	  They cannot be simply a list of identifiers, but POSIX Yacc says we
+	  can declare token numbers here.  I personally think this is a bad
+	  idea, precedence management is tricky in itself and should not be
+	  cluttered with token declaration issues.
+
+	  We used to accept declaring a token number on a string literal here
+	  (e.g., `%left "token" 1`).  This is abnormal.  Either the feature is
+	  useful, and then it should be supported in %token, or it's useless
+	  and we should not support it in corner cases.
+
+	- %nterm
+	  Obviously cannot accept tokens, nor char/string literals.  Does not
+	  exist in POSIX Yacc, but since %type also works for terminals, it is
+	  a nice option to have.
+
+	* src/parse-gram.y: Avoid relying on side effects.  For instance, get
+	rid of current_type, rather, build the list of symbols and iterate
+	over it to assign the type.
+	It's not always possible/convenient.  For instance, we still use
+	current_class.
+	Prefer "decl" to "def", since in the rest of the implementation we
+	actually "declare" symbols, we don't "define" them.
+	(token_decls, token_decls_for_prec, symbol_decls, nterm_decls): New.
+	Use them for %token, %left, %type and %nterm.
+	* src/symlist.h, src/symlist.c (symbol_list_type_set): New.
+	* tests/regression.at b/tests/regression.at
+	(Token number in precedence declaration): We no longer accept
+	to give a number to string literals.
+
+2018-12-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	symbols: set tag_seen when assigning a type to symbols
+	* src/reader.h, src/reader.c (tag_seen): Move to...
+	* src/symtab.h, src/symtab.c: here.
+	(symbol_type_set): Set it to true.
+	* src/parse-gram.y: Don't.
+
+2018-12-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: isolate test about Yacc warnings
+	* tests/input.at (Yacc warnings): New.
+	(AT_CHECK_UNUSED_VALUES): Remove checks about yacc.
+
+2018-12-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: warn about string literals in Yacc mode
+	* src/scan-gram.l (scan_integer): Warn.
+	* tests/input.at (Yacc warnings on symbols): Check.
+
+2018-12-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: warn about hexadecimal token numbers in Yacc mode
+	* src/scan-gram.l (scan_integer): Warn.
+	* tests/input.at (Yacc warnings on symbols): Check.
+
+2018-12-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: reprecate %nterm back
+	After having spent quite some time on cleaning the handling of symbol
+	declarations in the grammar files, I believe we should keep it.
+
+	It looks like it's a duplicate of %type, but it is not.  While POSIX
+	Yacc requires %type to apply only to nonterminal symbols, it appears
+	that both byacc and bison accept it for tokens too.  And some
+	experienced users do actually expect this feature to group
+	symbols (terminal or not) by type ("On the other hand, it is generally
+	more useful IMHO to group terminals and non-terminals with the same
+	type tag together",
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00000.html).
+	Even Bison's own parser does this today (see CHAR).
+
+	Basically reverts 7928c3e6fbdf47ff81184966cee937e6aa694b94.
+
+	* src/scan-gram.l (%nterm): Dedeprecate, but issue a Wyacc warning.
+	* tests/input.at: Adjust expectations.
+	(Yacc warnings  on symbols): New.
+	* src/symtab.c (symbol_class_set): Fix error introduced in
+	20b07467938cf880a1d30eb30d6e191843a21fec.
+
+2018-12-11  Eduard Staniloiu  <edi33416@gmail.com>
+
+	CI: add dmd support
+	* .travis.yml: here.
+
+2018-12-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: s/non-terminal/nonterminal/
+	I personally prefer 'non terminal', or 'non-terminal', but
+	'nonterminal' is the common spelling.
+
+	* data/glr.c, src/parse-gram.y, src/symtab.c, src/symtab.h,
+	* tests/input.at, doc/refcard.tex: here.
+
+2018-12-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: rename error functions for clarity
+	* src/symtab.c (symbol_redeclaration, semantic_type_redeclaration)
+	(user_token_number_redeclaration):
+	Rename as...
+	(complain_symbol_redeclared, complain_semantic_type_redeclared)
+	(complain_user_token_number_redeclared):
+	this.
+
+2018-12-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: improve the error message for symbol class redefinition
+	Currently our error messages include both "symbol redeclared" and
+	"symbol redefined", and they mean something different.  This is
+	obscure, let's make this clearer.
+
+	I think the idea between 'definition' vs. 'declaration' is that in the
+	case of the nonterminals, the actual definition is its set of rules,
+	so %nterm would be about declaration.  The case of %token is less
+	clear.
+
+	* src/symtab.c (complain_class_redefined): New.
+	(symbol_class_set): Use it.
+	Simplify the logic of this function to clearly skip its body when the
+	preconditions are not met.
+	* tests/input.at (Symbol class redefinition): New.
+
+2018-12-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: simplify computation of yydebug
+	* examples/c/lexcalc/parse.y: here.
+
+2018-12-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: support variadic emplace
+	Suggested by Askar Safin.
+	http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00006.html
+
+	* data/variant.hh: Implement.
+	* tests/types.at: Check.
+	* doc/bison.texi: Document.
+
+2018-12-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: add a simple Flex+Bison example in C
+	Suggested by Askar Safin.
+	http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00003.html
+
+	* examples/c/lexcalc/Makefile, examples/c/lexcalc/README.md,
+	* examples/c/lexcalc/lexcalc.test, examples/c/lexcalc/local.mk,
+	* examples/c/lexcalc/parse.y, examples/c/lexcalc/scan.l:
+	New.
+
+2018-12-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-12-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: sort them per language and complete them
+	Convert some of the READMEs to Markdown, which is now more common, and
+	nicely displayed in some git hosting services.
+
+	Add missing READMEs and Makefiles.  Generate XML, HTML and Dot files.  Be
+	sure to ship the test files.  Complete CLEANFILES to remove all generated
+	files.
+
+	* examples/calc++: Move into...
+	* examples/c++: here.
+	* examples/mfcalc, examples/rpcalc: Move into...
+	* examples/c: here.
+
+	* examples/README.md, examples/c++/calc++/Makefile, examples/c/local.mk,
+	* examples/c/mfcalc/Makefile, examples/c/rpcalc/Makefile,
+	* examples/d/README.md, examples/java/README.md:
+	New files.
+
+	* examples/test (medir): Be robust to deeper directory nesting.
+
+2018-12-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-12-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: minor refactoring
+	* src/parse-gram.y (symbol.prec): Reuse int.opt.
+
+2018-12-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: move checks inside the called functions
+	Revamping the handling of the symbols is the grammar is much more
+	delicate than I anticipated.  Let's first move things around for
+	clarity.
+
+	* src/symtab.c (symbol_make_alias): Don't accept to alias
+	non-terminals.
+	(symbol_user_token_number_set): Don't accept user token numbers
+	for non-terminals.
+	Don't do anything in case of redefinition, instead of trying to
+	update.  The flow is eaier to follow this way.
+
+2018-12-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: fix double definition of YYSemanticType
+	* data/lalr1.d: When moving to b4_user_union_members, it also defines
+	b4_tag_seen_flag, so we had two definitions.
+
+2018-12-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2018-12-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: fix incorrect condition to raise a syntax error
+	* src/parse-gram.y (symbol_def): Fix test.
+
+2018-12-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: fix use of b4_union_members
+	* data/lalr1.d: Use b4_user_union_members instead.
+
+2018-12-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment changes
+	* data/variant.hh: here.
+
+2018-12-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	java, d: add a Makefile for the example
+	* examples/java/Makefile, examples/d/Makefile: New.
+
+2018-12-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: scope reduction in ielr.c
+	* src/ielr.c: here.
+
+2018-12-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: scope reduction in lalr.c
+	* src/lalr.c: here.
+
+2018-12-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	d, java: compute static subtractions
+	* data/d.m4, data/java.m4: Use b4_subtract where appropriate.
+
+2018-12-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: add an example
+	* examples/d/calc.test, examples/d/calc.y, examples/d/local.mk:
+
+2018-12-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: update the skeleton
+	* data/d.m4, data/lalr1.d: Catch up with Bison.
+	And actually, also catch up with D.
+
+2018-12-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: add experimental support for the D language
+	* configure.ac (ENABLE_D): New.
+	* src/getargs.c (valid_languages): Add d.
+
+2018-12-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	d: add skeleton for the D language
+	Contributed by Oliver Mangold.
+	https://lists.gnu.org/archive/html/help-bison/2012-01/msg00000.html
+
+	* README-D.txt, d-skel.m4, d.m4, lalr1.d: New.
+
+2018-12-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: regenerate them when version.texi changes
+	When we extract the examples from the documentation, %require
+	"@value{VERSION}" is replaced with the current version.  If we change
+	the git branch, without changing the documentation, the generated
+	examples will %require a version of Bison that differs from the actual
+	version.
+
+	* examples/local.mk (extracted.stamp): Depend on doc/version.texi.
+
+2018-12-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	skeletons: start some technical documentation
+	* data/README: Convert to Markdown.
+	Start documenting some of the macros used in all our skeletons.
+	Simplify and fix the documentation of the macros in the skeletons.
+
+2018-12-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-12-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	backend: revamp the handling of symbol types
+	Currently it is the front end that passes the symbol types to the
+	backend.  For instance:
+
+	  %token <ival> NUM
+	  %type <ival> exp1 exp2
+	  exp1: NUM { $$ = $1; }
+	  exp2: NUM { $<ival>$ = $<ival>1; }
+
+	In both cases, $$ and $1 are passed to the backend as having type
+	'ival' resulting in code like `val.ival`.  This is troublesome in the
+	case of api.value.type=union, since in that the case the code this:
+
+	  %define api.value.type union
+	  %token <int> NUM
+	  %type <int> exp1 exp2
+	  exp1: NUM { $$ = $1; }
+	  exp2: NUM { $<int>$ = $<int>1; }
+
+	because in this case, since the backend does not know the symbol being
+	processed, it is forced to generate casts in both cases: *(int*)(&val)`.
+	This is unfortunate in the first case (exp1) where there is no reason
+	at all to use a cast instead of `val.NUM` and `val.exp1`.
+
+	So instead delegate the computation of the actual value type to the
+	backend: pass $<ival>$ as `symbol-number, ival` and $$ as
+	`symbol-number, MULL`, instead of passing `ival` before.
+
+	* src/scan-code.l (handle_action_dollar): Find the symbol the action
+	is about, not just its tyye.  Pass both symbol-number, and explicit
+	type tag ($<tag>n when there is one) to b4_lhs_value and b4_rhs_value.
+
+	* data/bison.m4 (b4_symbol_action): adjust to the new signature to
+	b4_dollar_pushdef.
+
+	* data/c-like.m4 (_b4_dollar_dollar, b4_dollar_pushdef): Accept the
+	symbol-number as new argument.
+
+	* data/c.m4 (b4_symbol_value): Accept the symbol-number as new
+	argument, and use it.
+	(b4_symbol_value_union): Accept the symbol-number as new
+	argument, and use it to prefer ready a union member rather than
+	casting the union.
+	* data/yacc.c (b4_lhs_value, b4_rhs_value): Accept the new
+	symbol-number argument.
+	Adjust uses of b4_dollar_pushdef.
+	* data/glr.c (b4_lhs_value, b4_rhs_value): Adjust.
+
+	* data/lalr1.cc (b4_symbol_value_template, b4_lhs_value): Adjust
+	to the new symbol-number argument.
+	* data/variant.hh (b4_symbol_value, b4_symbol_value_template): Accept
+	the new symbol-number argument.
+
+	* data/java.m4 (b4_symbol_value, b4_rhs_data): New.
+	(b4_rhs_value): Use them.
+	* data/lalr1.java: Adjust to b4_dollar_pushdef, and use b4_rhs_data.
+
+2018-12-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment and formatting changes
+	* data/bison.m4, data/c++.m4, data/glr.c, data/java.m4, data/lalr1.cc,
+	* data/yacc.c, src/scan-code.l:
+	Fix comments.
+	Prefer POS to denote the position of a symbol in a rule, since NUM
+	is also used to denote symbol numbers.
+
+2018-12-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2018-12-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	java: make sure the build dir exists
+	* examples/java/local.mk (%D%/Calc.java): here.
+
+2018-12-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: don't define variant<S>, directly define semantic_type
+	Instead of defining yy::variant<S> and then alias
+	yy::parser::semantic_type to variant<sizeof (union_type)>, directly
+	define yy::parser::semantic_type.
+
+	This model is more appropriate if we want to sit the storage on top of
+	unions in C++11.
+
+	* data/variant.hh (b4_variant_define): Specialize and inline the
+	definition into...
+	(b4_value_type_declare): Here.
+	Define union_type here.
+	* data/lalr1.cc: Adjust.
+
+2018-12-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2018-12-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: use noexcept and constexpr
+	There are probably more opportunities for them.
+	So far, I observed no performance improvements.
+
+	* data/c++.m4, data/lalr1.cc, data/stack.hh: here.
+
+2018-12-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: also display the examples' test suite log
+	* .travis.yml: here.
+
+2018-12-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	java: add an example
+	* examples/java/Calc.y: New, based on test 495: "Calculator
+	parse.error=verbose %locations".
+	* examples/java/Calc.test, examples/java/local.mk: New.
+
+	* configure.ac (ENABLE_JAVA): New.
+	* examples/test (prog): Be ready to run Java programs.
+
+2018-12-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: unsigned int -> unsigned
+	See
+	https://lists.gnu.org/archive/html/bison-patches/2018-08/msg00027.html
+
+	* src/output.c (muscle_insert_unsigned_int_table): Rename as...
+	(muscle_insert_unsigned_table): this.
+
+2018-12-01  Akim Demaille  <akim.demaille@gmail.com>
+
+	output: restore yyrhs and yyprhs
+	This was demanded several times.  See for instance:
+
+	- David M. Warme
+	  https://lists.gnu.org/archive/html/help-bison/2011-04/msg00003.html
+
+	- box12009
+	  http://lists.gnu.org/archive/html/bug-bison/2016-10/msg00001.html
+
+	Basically, this reverts:
+
+	- commit 3d3bc1fe30f356cf674a979409e86ea0f88de4a0
+	  Get rid of (yy)rhs and (yy)prhs
+
+	- commit d333175f63f402dbadb647175e40ad88bf1defb5
+	  Avoid compiler warning.
+
+	Note that since these tables are not needed in the generated parsers,
+	no skeleton requests them.  This change only brings back their
+	definition to M4, making it possible to user-defined skeletons to use
+	these tables.
+
+	* src/output.c (muscle_insert_item_number_table): Define.
+	(prepare_rules): Generate the rhs and prhs tables.
+
+2018-11-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-11-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: shorten side-effects on current_type
+	* src/parse-gram.y (tag.opt): Don't change current_type.
+	Rather, return its value.
+	Adjust dependencies.
+
+2018-11-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes
+	* src/symlist.c: here.
+
+2018-11-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: don't name C++ files *.c
+	* tests/synclines.at (syncline escapes): Here.
+	Otherwise, Clang generates an error and skips the test.
+
+2018-11-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2018-11-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-11-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: factor the symbol definition
+	* src/parse-gram.y (int.opt, string_as_id.opt): New.
+	(symbol_def): Use it.
+
+2018-11-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: improve location of string alias errors
+	* src/parse-gram.y (symbol_def): Pass the right location for symbol_make_alias.
+	* tests/regression.at (Duplicate string): Move to...
+	* tests/input.at: here.
+	(Token collisions): New.
+
+2018-11-29  Akim Demaille  <akim@lrde.epita.fr>
+
+	diagnostics: complain about Bison directives when -Wyacc
+	* src/complain.h, src/complain.c (bison_directive): New.
+	* src/scan-gram.l (BISON_DIRECTIVE): New.
+	Use it for Bison extensions.
+
+2018-11-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: formatting changes
+	* doc/bison.texi: here.
+
+2018-11-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: fix quotation in the test suite
+	* tests/input.at: here.
+
+2018-11-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-11-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	%nterm: do not accept character literals
+	Reported by Rici Lake.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00000.html
+
+	* src/complain.h: Formatting change.
+	* src/parse-gram.y (id): Reject character literals used in a context
+	for non-terminals.
+	* tests/input.at (Invalid %nterm uses): Check that.
+
+2018-11-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	%nterm: do not accept numbers nor string alias
+	Reported by Rici Lake.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00000.html
+
+	* src/parse-gram.y (symbol_def): Refuse string aliases and numbers
+	for non-terminals.
+	(prologue_declaration): Recover from errors ended with ';'.
+	* tests/input.at (Invalid %nterm uses): New.
+
+2018-11-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	TODO: update
+
+2018-11-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: formatting changes
+	* doc/bison.texi: Here.
+
+2018-11-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment changes
+	* tests/testsuite.at: here.
+
+2018-11-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update ignores
+
+2018-11-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update to use its bitsets
+	Bison's bitset were moved to gnulib.
+
+	* lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c,
+	* lib/bitset.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
+	* lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c,
+	* lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h,
+	* lib/lbitset.h, lib/vbitset.c, lib/vbitset.h:
+	Remove.
+
+	* gnulib: Update.
+	* bootstrap.conf, lib/local.mk: Adjust.
+
+2018-11-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: use conditional dependencies
+	* bootstrap.conf: here.
+
+2018-11-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: run on xenial
+	Xenial (Ubuntu 16.04) is finally available on Travis.  Let's use it.
+
+	Among the changes:
+
+	- Automake 1.14.1 -> 1.15.0
+	- Doxygen  1.8.6  -> 1.8.11
+	- Flex     2.5.35 -> 2.6.0, with plenty of new compiler warnings
+	- Gettext  0.18.3 -> 0.19.7
+	- Graphviz 2.36.0 -> 2.38.0
+	- Texinfo  5.2    -> 6.1
+
+	* .travis.yml: here.
+
+2018-11-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: we don't need git show
+	* .travis.yml: Don't run it.
+
+2018-11-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-11-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	warning: avoid warnings about unreachable code
+	Reported by Uxio Prego.
+	https://lists.gnu.org/archive/html/help-bison/2018-11/msg00031.html
+
+	We also need to move the unreachable 'goto' to a reachable place,
+	otherwise clang complains about the code being unreachable anyway.
+	See also https://bugs.llvm.org/show_bug.cgi?id=39736.
+
+	Interestingly, we don't have to apply that trick to
+	`#define YYCDEBUG if (false) std::cerr`, clang does not warn when the
+	code comes from macro expansion.
+
+	* configure.ac: Use -Wunreachable-code when supported.
+	* data/lalr1.cc, data/yacc.c: Pacify clang's warning about `if (0)`
+	by using a macro.
+	Another possibility was to move this statement to a reachable place.
+	* tests/actions.at, tests/c++.at: Avoid generating unreachable code.
+
+2018-11-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: avoid generating dead code
+	We should probably introduce some struct and functions to deal with
+	stack management, rather than open coding it.  yyparse would be much
+	nicer to read, and a better model for possible other skeletons.
+
+	* data/yacc.c (yyparse::yysetstate): Avoid generating code when
+	neither yyoverflow nor YYSTACK_RELOCATE is defined.
+
+2018-11-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	%expect-rr: tune the number of conflicts per rule
+	Currently on a grammar such as
+
+	    exp : a '1' | a '2' | a '3' | b '1' | b '2' | b '3'
+	    a:
+	    b:
+
+	we count only one rr-conflict on the `b:` rule, i.e., we expect:
+
+	    b: %expect-rr 1
+
+	although there are 3 conflicts in total.  That's because in the
+	conflicted state we count only a single conflict, not three (one for
+	each of the lookaheads: '1', '2', '3').
+
+	    State 0
+
+	        0 $accept: . exp $end
+	        1 exp: . a '1'
+	        2    | . a '2'
+	        3    | . a '3'
+	        4    | . b '1'
+	        5    | . b '2'
+	        6    | . b '3'
+	        7 a: . %empty  ['1', '2', '3']
+	        8 b: . %empty  ['1', '2', '3']
+
+	        '1'       reduce using rule 7 (a)
+	        '1'       [reduce using rule 8 (b)]
+	        '2'       reduce using rule 7 (a)
+	        '2'       [reduce using rule 8 (b)]
+	        '3'       reduce using rule 7 (a)
+	        '3'       [reduce using rule 8 (b)]
+	        $default  reduce using rule 7 (a)
+
+	        exp  go to state 1
+	        a    go to state 2
+	        b    go to state 3
+
+	See https://lists.gnu.org/archive/html/bison-patches/2013-02/msg00106.html.
+
+	* src/conflicts.c (rule_has_state_rr_conflicts): Rename as...
+	(count_rule_state_sr_conflicts): this.
+	DWIM.
+	(count_rule_rr_conflicts): Adjust.
+	* tests/conflicts.at (%expect-rr in grammar rules)
+	(%expect-rr too much in grammar rules)
+	(%expect-rr not enough in grammar rules): New.
+
+2018-11-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	%expect-rr: fix the computation of the overall number of conflicts
+	On a grammar such as
+
+	   exp: "num" | "num" | "num"
+
+	we currently report only one RR conflict, instead of two.
+
+	This bug is present since the origins of Bison
+
+	    commit 08089d5d35ece0c7d41659cc1bc09638e2abb151
+	    Author: David MacKenzie <djm@djmnet.org>
+	    Date:   Tue Apr 20 05:42:52 1993 +0000
+
+	       Initial revision
+
+	and was preserved in
+
+	    commit 676385e29c4aedfc05d20daf1ef20cd4ccc84856
+	    Author: Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
+	    Date:   Fri Jun 28 02:26:44 2002 +0000
+
+	       Initial check-in introducing experimental GLR parsing.  See entry in
+	       ChangeLog dated 2002-06-27 from Paul Hilfinger for details.
+
+	See
+	https://lists.gnu.org/archive/html/bison-patches/2018-11/msg00011.html
+
+	* src/conflicts.h, src/conflicts.c (count_state_rr_conflicts)
+	(count_rr_conflicts): Use only the correct count of conflicts.
+	* tests/glr-regression.at: Fix expectations.
+
+2018-11-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: generate *.output files
+	* tests/glr-regression.at: here.
+
+2018-11-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	%expect: tune the number of conflicts per rule
+	Currently on a grammar such as
+
+	    exp: "number" | exp "+" exp | exp "*" exp
+
+	we count only one sr-conflict for both binary rules, i.e., we expect:
+
+	    exp: "number" | exp "+" exp  %expect 1 | exp "*" exp  %expect 1
+
+	although there are 4 conflicts in total.  That's because in the states
+	in conflict, for instance that for the "+" rule:
+
+	    State 6
+
+	        2 exp: exp . "+" exp
+	        2    | exp "+" exp .  [$end, "+", "*"]
+	        3    | exp . "*" exp
+
+	        "+"  shift, and go to state 4
+	        "*"  shift, and go to state 5
+
+	        "+"       [reduce using rule 2 (exp)]
+	        "*"       [reduce using rule 2 (exp)]
+	        $default  reduce using rule 2 (exp)
+
+	we count only a single conflict, although there are two (one on "+"
+	and another with "*").
+
+	See https://lists.gnu.org/archive/html/bison-patches/2013-02/msg00106.html.
+
+	* src/conflicts.c (rule_has_state_sr_conflicts): Rename as...
+	(count_rule_state_sr_conflicts): this.
+	DWIM.
+	(count_rule_sr_conflicts): Adjust.
+	* tests/conflicts.at (%expect in grammar rules): New.
+
+2018-11-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-11-21  Akim Demaille  <akim@lrde.epita.fr>
+
+	style: reduce scopes
+	* src/conflicts.c, src/reader.c: Minor style changes.
+
+2018-11-21  Paul Hilfinger  <hilfingr@eecs.berkeley.edu>
+
+	allow %expect and %expect-rr modifiers on individual rules
+	This change allows one to document (and check) which rules participate
+	in shift/reduce and reduce/reduce conflicts.  This is particularly
+	important GLR parsers, where conflicts are a normal occurrence.  For
+	example,
+
+	    %glr-parser
+	    %expect 1
+	    %%
+
+	    ...
+
+	    argument_list:
+	      arguments %expect 1
+	    | arguments ','
+	    | %empty
+	    ;
+
+	    arguments:
+	      expression
+	    | argument_list ',' expression
+	    ;
+
+	    ...
+
+	Looking at the output from -v, one can see that the shift-reduce
+	conflict here is due to the fact that the parser does not know whether
+	to reduce arguments to argument_list until it sees the token AFTER the
+	following ','.  By marking the rule with %expect 1 (because there is a
+	conflict in one state), we document the source of the 1 overall shift-
+	reduce conflict.
+
+	In GLR parsers, we can use %expect-rr in a rule for reduce/reduce
+	conflicts.  In this case, we mark each of the conflicting rules.  For
+	example,
+
+	    %glr-parser
+	    %expect-rr 1
+
+	    %%
+
+	    stmt:
+	      target_list '=' expr ';'
+	    | expr_list ';'
+	    ;
+
+	    target_list:
+	      target
+	    | target ',' target_list
+	    ;
+
+	    target:
+	      ID %expect-rr 1
+	    ;
+
+	    expr_list:
+	      expr
+	    | expr ',' expr_list
+	    ;
+
+	    expr:
+	      ID %expect-rr 1
+	    | ...
+	    ;
+
+	In a statement such as
+
+	    x, y = 3, 4;
+
+	the parser must reduce x to a target or an expr, but does not know
+	which until it sees the '='.  So we notate the two possible reductions
+	to indicate that each conflicts in one rule.
+
+	See https://lists.gnu.org/archive/html/bison-patches/2013-02/msg00105.html.
+
+	* doc/bison.texi (Suppressing Conflict Warnings): Document %expect,
+	%expect-rr in grammar rules.
+	* src/conflicts.c (count_state_rr_conflicts): Adjust comment.
+	(rule_has_state_sr_conflicts): New static function.
+	(count_rule_sr_conflicts): New static function.
+	(rule_nast_state_rr_conflicts): New static function.
+	(count_rule_rr_conflicts): New static function.
+	(rule_conflicts_print): New static function.
+	(conflicts_print): Also use rule_conflicts_print to report on individual
+	rules.
+	* src/gram.h (struct rule): Add new fields expected_sr_conflicts,
+	expected_rr_conflicts.
+	* src/reader.c (grammar_midrule_action): Transfer expected_sr_conflicts,
+	expected_rr_conflicts to new rule, and turn off in current_rule.
+	(grammar_current_rule_expect_sr): New function.
+	(grammar_current_rule_expect_rr): New function.
+	(packgram): Transfer expected_sr_conflicts, expected_rr_conflicts
+	to new rule.
+	* src/reader.h (grammar_current_rule_expect_sr): New function.
+	(grammar_current_rule_expect_rr): New function.
+	* src/symlist.c (symbol_list_sym_new): Initialize expected_sr_conflicts,
+	expected_rr_conflicts.
+	* src/symlist.h (struct symbol_list): Add new fields expected_sr_conflicts,
+	expected_rr_conflicts.
+	* tests/conflicts.at: Add tests "%expect in grammar rule not enough",
+	"%expect in grammar rule right.", "%expect in grammar rule too much."
+
+2018-11-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2018-11-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2018-11-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	remove ancient lint directives
+	* data/c++.m4, data/yacc.c: Remove surprising remains of lint
+	directives.
+
+2018-11-21  Jannick  <thirdedition@gmx.net>
+
+	doc: calc++: remove ancient fix for flex
+	* doc/bison.texi (Calc++ Scanner): Remove fix for Flex 2.5.31-2.5.33.
+
+2018-11-21  Jannick  <thirdedition@gmx.net>
+
+	doc: calc++: ignore \r in the scaner
+	* doc/bison.texi (Calc++ Scanner): Ignore \r.
+
+2018-11-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: harmonize the labels of yyparse
+	* data/glr.c, data/lalr1.cc, data/yacc.c: Fix indentation and
+	other formatting issues.
+
+2018-11-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-11-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: avoid lengthy actions
+	We also lack a consistent naming for directive implementations.
+	`directive_skeleton` is too long, `percent_skeleton` is not very nice
+	looking, `process_skeleton` looks ambiguous, `do_skeleton` is somewhat
+	ambiguous too, but seems a better track.
+
+	* src/parse-gram.y (version_check): Rename as...
+	(do_require): this.
+	(do_skeleton): New.
+	Use it.
+
+2018-11-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: using macros around user types breaks when they include comma
+	We may generate code such as
+
+	    basic_symbol (typename Base::kind_type t, YY_RVREF (std::pair<int,int>) v);
+
+	which, of course, breaks, because YY_RVREF sees two arguments.  Let's
+	not play tricks with _VA_ARGS__, I'm unsure about it portability.
+	Anyway, I plan to change more things in this area.
+
+	Reported by Sébastien Villemot.
+	http://lists.gnu.org/archive/html/bug-bison/2018-11/msg00014.html
+
+	* data/variant.hh (b4_basic_symbol_constructor_declare)
+	(b4_basic_symbol_constructor_define): Don't use macro on user types.
+	* tests/types.at: Check that we support pairs.
+
+2018-11-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	README: update
+
+2018-11-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: remove duplicate definition
+	Probably imported by 6d58c632025cb6928a90e4176577982bfb9c3981, a merge
+	commit.
+
+	* tests/atlocal.in (POSIXLY_CORRECT_IS_EXPORTED): Define it once.
+
+2018-11-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.c: fix use of _Noreturn
+	In C++, [[noreturn]] must not be between "static" and the rest of the
+	function signature, it must precede it.  C's _Noreturn does not seem
+	to have such a constraint, but it is therefore compatible with the C++
+	constraint.  Since we #define _Noreturn as [[noreturn]] is modern C++,
+	be sure to push the _Noreturn first.
+
+	Unfortunately this was not caught by the test suite, because it always
+	loads config.h first, and config.h contains another definition of
+	_Noreturn that does not use [[noreturn]], and hides ours.  That's
+	probably a sign we should avoid always loading config.h.
+
+	* data/glr.c (yyFail, yyMemoryExhausted): here.
+
+2018-11-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: run the api.value.type tests for all C++ standards
+	* tests/local.at (AT_LANG_FOR_EACH_STD): New.
+	(AT_REQUIRE_CXX_VERSION): Rename as...
+	(AT_REQUIRE_CXX_STD): this.
+	Accept an argument for what to do when the requirement is not met.
+	* tests/types.at (api.value.type): Check all the C++ stds.
+
+2018-11-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: split the ASAN job in two
+	The following commit introduce even more compilations/runs than
+	before, and with ASAN on, we go beyond to 50min credit from Travis.
+
+	* .travis.yml (Clang 7 libc++ and ASAN): Split in two.
+
+2018-11-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: use YY_CPLUSPLUS
+	* data/c++.m4: here.
+
+2018-11-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: factor the handling of __cplusplus into YY_CPLUSPLUS
+	* data/c++.m4 (b4_cxx_portability): Define it.
+	Use it.
+	* data/lalr1.cc, data/variant.hh: Use it.
+
+2018-11-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: formatting changes
+	* src/scan-gram.l: here.
+
+2018-11-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: clarify some magic constant
+	* tests/c++.at (C++ Variant-based Symbols Unit Tests): here.
+
+2018-11-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: remove useless includes
+	* examples/c++/variant-11.yy, examples/c++/variant.yy: here.
+	Fix warning when storing a long into an int.
+
+2018-11-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: compile the C++ examples with warnings
+	* examples/c++/local.mk: Pass $(WARN_CXXFLAGS_TEST).
+
+2018-11-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-11-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: deprecate %error-verbose
+	It is unfortunate that %error_verbose was properly diagnosed as
+	obsoleted by "%define parse.error verbose", but %error-verbose was
+	not.
+
+	* src/parse-gram.y (%error-verbose): Remove support.
+	* src/scan-gram.l: Do it here instead, with a warning.
+	* tests/input.at (Deprecated directives): Check it.
+
+2018-11-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: migrate from %error-verbose to %define parse.error verbose
+	* tests/actions.at, tests/c++.at, tests/conflicts.at,
+	* tests/cxx-type.at, tests/existing.at, tests/glr-regression.at,
+	* tests/headers.at, tests/input.at, tests/java.at, tests/javapush.at,
+	* tests/local.at, tests/regression.at, tests/skeletons.at,
+	* tests/torture.at:
+	Here.
+
+2018-11-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	parser: deprecate %nterm
+	It has several weaknesses.
+	Reported by Rici Lake.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00000.html
+
+	* src/scan-gram.l: here.
+
+2018-11-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix syncline tests
+	These tests are skipped with GCC:
+
+	    "\"".c:1:5: error: function declaration isn't a prototype [-Werror=strict-prototypes]
+	     int main() { return 0; }
+	         ^~~~
+
+	* tests/synclines.at: Stop writing C++ in C.
+	* tests/local.at: Formatting changes.
+
+2018-11-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: expected features of Bison 3.3
+
+2018-11-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc: reduce scope in push mode
+	* data/yacc.c (yypull_parse): Here.
+
+2018-11-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment changes
+	* data/c++.m4, data/glr.c, data/lalr1.java, data/yacc.c
+	(yytranslate, YYTRANSLATE): Harmonize comments.
+
+2018-11-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: simplify a default construction
+	* data/lalr1.cc (yytnamerr_): here.
+
+2018-11-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-11-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	reader: no longer accept %define variable names in quotes
+	It was never documented.
+
+	* src/parse-gram.y (variable): Here.
+
+2018-11-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	dogfooding: use api.value.type union
+	* src/parse-gram.y (api.value.type): Set to union.
+	Replace occurrences of %union with explicit %types.
+	* src/scan-gram.l: Adjust yylval's field names.
+	(RETURN_VALUE): No longer needs the Field argument.
+	Use it more.
+
+2018-11-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	djgpp: remove
+	Support for DJGPP was announced to be removed in the NEWS of Bison
+	3.1 (2018-08-27) unless someone expressed interest.  There was no answer.
+
+	* djgpp: Remove.
+	* NEWS, Makefile.am, cfg.mk, po/POTFILES.in: Adjust.
+
+2018-11-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	scanner: simplify use of gettext
+	* src/scan-gram.l (unexpected_end): Leave the actual call to gettext
+	to the caller.
+
+2018-11-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: clean up the scanner and parser
+	* src/scan-gram.l: Formatting changes.
+	Add "missing" assertion for symmetry.
+	* src/parse-gram.y: Formatting changes.
+
+2018-11-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2018-11-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.2.1
+	* NEWS: Record release date.
+
+2018-11-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: fix issues in the generated tarball
+	Reported by Andre da Costa Barros.
+	https://savannah.gnu.org/patch/?9716
+
+	* examples/calc++/local.mk: We no longer generate position.hh and
+	stack.hh.  Leaving them here triggers their concurrent generation,
+	which fails.
+	(%C%_calc___CPPFLAGS): Fix the extracted headers in the source tree.
+	* examples/mfcalc/local.mk (%C%_mfcalc_CPPFLAGS): Ditto.
+
+2018-11-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: fix typo
+	Reported by Horst Von Brand.
+	https://savannah.gnu.org/support/?109580
+
+	* examples/local.mk (.PHOMY): Rename as...
+	(.PHONY): this.
+
+2018-11-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2018-11-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: ship them
+	Currently, the examples are extracted on the user's side.
+	Unfortunately, that requires that the user has Perl, which is
+	otherwise not needed for Bison.  Let's ship the examples instead.
+
+	The examples were handled this way so that we could depend on
+	configure flags: if --enable-gcc-warnings is passed, it is understood
+	as "I'm a maintainer", so the examples are generated with `#line`s.
+	Regular users should not see them, so they are now unconditionally
+	removed when rolling a tarball.
+
+	Reported by Mike Frysinger.
+	https://lists.gnu.org/archive/html/bison-patches/2015-04/msg00000.html
+
+	* examples/local.mk: Ship all the extracted files.
+	(examples-unline): New.
+	Make sure that the generated tarballs do not contain the #lines.
+
+2018-11-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: minor fixes in doc/
+	* doc/local.mk: Consistently use *.tmp for temporary files.
+	Fix comments.
+
+2018-11-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: maximize chances of errors sooner
+	* .travis.yml: Try clang and icc soon, so that we don't have to wait
+	for the end of the run to know that they fail.
+
+2018-11-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: improve the generated documentation
+	* data/lalr1.cc, data/location.cc: Improve documenting comments.
+	* tests/c++.at (Doxygen Documentation): Fix AT_BISON_OPTION_PUSHDEFS,
+	so that the generated yyerror is correct.
+	* tests/c++.at, tests/headers.at: Prefer %empty.
+
+2018-11-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: don't fail if the C++ compiler does not work
+	Also, make sure that `make dist` generates a correct tarball even if
+	the C++ compiler does not work.
+
+	Reported by Nelson H. F. Beebe.
+
+	* m4/cxx.m4 (BISON_CXX_WORKS): Define to true/false instead of
+	true/exit 77.  The latter is too dangerous to use (it directly quits).
+	(ENABLE_CXX): New name for the Automake conditional, for consistency
+	with ENABLE_CXX11 etc.
+	* tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Adjust to the new
+	semantics of BISON_CXX_WORKS.
+	* examples/c++/local.mk: Skip the variant test if C++ does not work.
+	* examples/calc++/local.mk: Likewise.
+
+2018-11-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: don't disable C++ warnings in C files
+	This triggers error with GCC.
+	See eff6739124c61bb5660d78453210d1d6a17d30e7.
+
+	* tests/testsuite.h: Disable -Wzero-as-null-pointer-constant only for
+	C++.
+
+2018-11-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: workaround portability issue
+	On some systems (x86_64-pc-solaris2.11), with Developer Studio 12.5's
+	CC, we get:
+
+	    ".../include/CC/Cstd/vector.cc", line 127: Error: Cannot assign const yy::parser::stack_symbol_type to yy::parser::stack_symbol_type without "yy::parser::stack_symbol_type::operator=(const yy::parser::stack_symbol_type&)";.
+	    ".../include/CC/Cstd/vector", line 475:     Where: While instantiating "std::vector<yy::parser::stack_symbol_type>::__insert_aux(yy::parser::stack_symbol_type*, const yy::parser::stack_symbol_type&)".
+	    ".../include/CC/Cstd/vector", line 475:     Where: Instantiated from non-template code.
+	    1 Error(s) detected.
+
+	Don't expect __cplusplus to be always defined.  If it's not, consider
+	this is C++98.
+
+	Reported by Nelson H. F. Beebe.
+
+	* data/c++.m4, data/lalr1.cc, examples/c++/variant.yy, tests/local.at,
+	* tests/testsuite.h:
+	An undefined __cplusplus means pre C++11.
+
+2018-11-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: work around getopt portability issues
+	On some systems, we don't use our getopt.  As a consequence the error
+	messages vary:
+
+	    $ bison --skeleton
+	    bison: option requires an argument -- skeleton
+	    Try 'bison --help' for more information.
+
+	instead of
+
+	    bison: option '--skeleton' requires an argument
+	    Try 'bison --help' for more information.
+
+	Reported by Jannick and Nelson H. F. Beebe.
+	https://lists.gnu.org/archive/html/bison-patches/2018-10/msg00140.html
+
+	* tests/input.at (Invalid number of arguments): work around getopt
+	portability issues.
+
+2018-11-03  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: -Wzero-as-null-pointer-constant was added to GCC 4.7
+	It is not supported by previous versions.
+	See https://www.gnu.org/software/gcc/gcc-4.7/changes.html
+	Reported by Nelson H. F. Beebe.
+
+	* doc/bison.texi (Calc++ Scanner): here.
+
+2018-11-02  Adam Sampson  <ats@offog.org>
+
+	examples: #include <cstring> in calc++
+	strerror is defined by <string.h>, and recent versions of GNU libstdc++
+	no longer include this automatically from <string>.
+
+2018-10-31  Akim Demaille  <akim.demaille@gmail.com>
+
+	c: provide a definition of _Noreturn that works for C++
+	On Solaris, GCC 7.3 defines:
+
+	                      -std=c++14  -std=c++17
+	    __cplusplus       201402L       201703L
+	    __STDC_VERSION__  199901L       201112L
+
+	So the current #definition of _Noreturn sees that 201112 <=
+	__STDC_VERSION__, i.e., that C11 is supported, so it expects _Noreturn
+	to be supported.  Apparently it is not.
+
+	This is only for C++, the test suite works for C.  However, the test
+	suite does not try several C standards, maybe we should...
+
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00064.html
+
+	* data/c.m4 (b4_attribute_define): Define _Noreturn as [[noreturn]] in
+	modern C++.
+
+2018-10-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	c: update the definition of _Noreturn
+	Does not work on Solaris 11.3 x86/64:
+
+	    479. c++.at:1293: testing C++ GLR parser identifier shadowing ...
+	    ======== Testing with C++ standard flags: '-std=c++17'
+	    ./c++.at:1332: $BISON_CXX_WORKS
+	    stderr:
+	    stdout:
+	    ./c++.at:1332: $CXX $CXXFLAGS $CPPFLAGS  $LDFLAGS -o input input.cc $LIBS
+	    stderr:
+	    input.cc:837:8: error: '_Noreturn' does not name a type
+	     static _Noreturn void
+	            ^~~~~~~~~
+	    input.cc:845:8: error: '_Noreturn' does not name a type
+	     static _Noreturn void
+	            ^~~~~~~~~
+
+	Reported by Kiyoshi Kanazawa.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00051.html
+
+	* data/c.m4 (b4_attribute_define): Use the snippet which is currently
+	in gnulib's m4/gnulib-common.m4 (which seems a little more advanced
+	than lib/_Noreturn.h).
+
+2018-10-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: don't expect the shell to support 'local'
+	It doesn't work on Solaris 11.3 x86/64.
+	Reported by Kiyoshi Kanazawa.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00051.html
+
+	* examples/test: Don't use 'local'.
+
+2018-10-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	bitset: fix warning
+	Reported by Hans Åberg.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00047.html
+
+	* lib/bitset.c (bitset_count_): here.
+
+2018-10-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: fix use of gnulib Make variables
+	Reported by Kiyoshi Kanazawa.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00048.html
+
+	* lib/local.mk (lib_libbison_a_LIBADD): Merge into...
+	* src/local.mk (src_bison_LDADD): here.
+
+2018-10-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2018-10-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.2
+	* NEWS: Record release date.
+
+2018-10-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: don't depend on the libc to generate bison.help
+	The "Report translation bugs to..." part of --help is issued only on
+	glibc systems.  So if the tarball is not wrapped on such a system, and
+	used on such a system (or the converse), then bison.help will differ
+	on the user's system, and help2man will be called to update bison.1.
+
+	But help2man should not be a requirement.
+
+	Reported by Alexandre Duret-Lutz.
+
+	* doc/local.mk (doc/bison.help): Remove the possible doc about
+	translation bugs.
+	Pass LC_ALL=C, as reported in src/getargs.c's usage().
+	(doc/cross-options.texi): Use bison.help instead of calling bison
+	--help.
+
+2018-10-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: always issue the "generated by" message
+	Some users rely on this sentence to know that the file can be ignored.
+	Reported by Alexandre Duret-Lutz.
+
+	* data/bison.m4 (b4_generated_by): New.
+	(b4_copyright): Use it.
+	* data/location.cc, data/stack.hh: Use it too, for the stub files
+	(position.hh and stack.hh).
+
+2018-10-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	cfg.mk: remove exceptions for timevar
+	They appear to be no longer needed.
+
+	* cfg.mk: here.
+
+2018-10-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: clean up src/AnnotationList.c
+	* src/AnnotationList.c: Reduce scopes.
+
+2018-10-28  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: clean up print.c
+	* src/print.c: Reduce scopes.
+
+2018-10-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	bitset: clean up bbitset.h
+	* lib/libiberty.h: Inline in...
+	* lib/bbitset.h: here.
+	* lib/local.mk: Adjust.
+
+2018-10-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	bitset: clean up bitset.h
+	* lib/bitset.h: Fix include order.
+
+2018-10-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	bitset: clean up vbitset.c
+	* lib/vbitset.c: Reduce scopes, etc.
+
+2018-10-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	bitset: clean up lbitset.c
+	* lib/lbitset.c: Reduce scopes, etc.
+
+2018-10-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	bitset: clean up ebitset.c
+	* lib/ebitset.c: Reduce scopes, etc.
+
+2018-10-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	bitset: clean up bitset_stats.c
+	* lib/bitset_stats.c: Reduce scopes, etc.
+
+2018-10-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	bitset: clean up bitset.c
+	* lib/bitset.c: Reduce scopes, etc.
+
+2018-10-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	bitset: clean up abitset.c
+	* lib/abitset.c: Reduce scopes, etc.
+
+2018-10-27  Jannick  <thirdedition@gmx.net>
+
+	xml2dot.xsl: fix typos in comments
+
+2018-10-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: fix distcheck
+	The extracted example, simple.yy, does not use %require "3.2", so it
+	generates a stack.hh, which breaks distcheck.
+
+	* doc/bison.texi: Fix it.
+
+2018-10-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: prepare for 3.2
+
+2018-10-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: beware of Windows file name constraints
+	Don't expect to be able to build a file named '"\"".y' (6 characters)
+	on Windows.
+
+	Reported by Jannick.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00042.html
+
+	* tests/synclines.at (syncline escapes): Skip if we failed to create
+	the file.
+
+2018-10-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix invocation of m4_map
+	* tests/actions.at, tests/synclines.at: m4_map takes a list of
+	arguments in $2, m4_map_args takes arguments in $2, $3, etc.
+
+2018-10-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: spell check
+	* README, doc/bison.texi, examples/README, examples/c++/README: here.
+
+2018-10-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: add a Makefile for C++ short examples
+	* examples/c++/Makefile: New.
+	* examples/c++/local.mk, examples/c++/README: Adjust.
+
+2018-10-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: some improvements
+	* doc/bison.texi (Calc++ Scanner): Show how exception can be thrown
+	from auxiliary functions.
+	Clarify the meaning of the various flex %options we use.
+	Get rid of a warning.
+	(Calc++ Parsing Driver): Use the parser as a functor.
+
+2018-10-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: check the errors
+	* examples/test (run): Check stderr, unless -noerr is passed.
+	* examples/calc++/calc++.test, examples/mfcalc/mfcalc.test: Check
+	errors.
+
+2018-10-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: minor fixes
+	* doc/bison.texi: Simplify wording.
+	Fix Texinfo error.
+	(Complete Symbols): Handle the token EOF.
+	(Calc++ Parser): In the modern C++ world, prefer assignment to swap.
+	(Strings are Destroyed): Prefer an explicit 'continue' to a comment.
+
+2018-10-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	configure: quit on trying to get ICC and Flex be friends
+	The CI is using Flex 2.5.35.  And ICC is too picky for it.  Let's stop
+	making these warnings errors.  I wish I could disable them in the
+	source files using the ICC version and the Flex version, but ICC's
+	pragma support is unclear, and I'm tired of fighting it.
+
+	* configure.ac (FLEX_SCANNER_CXXFLAGS): Make warnings warnings.
+	* examples/c++/local.mk: Comment changes.
+
+2018-10-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: mention earlier how to disable the generation of location.hh
+	Suggested by Victor Khomenko.
+
+	* doc/bison.texi (C++ Bison Interface): Here.
+
+2018-10-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: std::to_string is available in C++11
+	Reported by Victor Khomenko.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00033.html
+
+	* doc/bison.texi, examples/c++/variant-11.yy: Use std::to_string
+	instead of ours.
+
+2018-10-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: move the variant examples into the C++ directory
+	* examples/variant-11.test examples/variant-11.yy,
+	* examples/variant.test examples/variant.yy:
+	Move into examples/c++/.
+	* examples/c++/README: New.
+	* examples/README, examples/c++/local.mk, examples/local.mk:
+	Adjust.
+
+2018-10-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: an introductory example for C++
+	Suggested by Victor Khomenko.
+	http://lists.gnu.org/archive/html/bug-bison/2018-08/msg00037.html
+
+	* doc/bison.texi (A Simple C++ Example): New.
+	* examples/c++/local.mk, examples/c++/simple.test: New.
+	Extract, check, and install this new example.
+	* examples/local.mk: Adjust.
+	* examples/test: Adjust to the case where the dirname differs
+	from the test name.
+
+2018-10-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: remove a few copies of the Copyright from the generated Makefile
+	* build-aux/local.mk, cfg.mk, examples/calc++/local.mk,
+	* examples/local.mk, examples/mfcalc/local.mk,
+	* examples/rpcalc/local.mk, lib/local.mk, src/local.mk,
+	* tests/local.mk:
+	Use Automake comments so that we don't get a copy of each in the
+	generated Makefile.
+
+2018-10-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: make operator() an alias to the parse function
+	* data/glr.cc, data/lalr1.cc (operator()): New.
+	* doc/bison.texi: Update.
+
+2018-10-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: enable more warnings during tests
+	Prompted by Derek Clegg.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00018.html
+
+	* configure.ac: here.
+
+2018-10-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-10-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: work around strange typing issues
+	On the CI, both GCC and Clang report:
+
+	    src/parse-gram.c: In function 'yy_lac':
+	    src/parse-gram.c:1479:29: error: format '%hd' expects argument of type 'int',
+	       but argument 3 has type 'yytype_int16 {aka long int}' [-Werror=format=]
+	             YYDPRINTF ((stderr, " G%hd", yystate));
+	                                 ^
+
+	Although yytype_int16 is supposed to be a short int, not a long int.
+	This must be explored.
+
+	* data/yacc.c (yy_lac): Work around typing issue.
+
+2018-10-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: don't define _Noreturn uselessly
+	Clang warns:
+
+	     aux/x.h:97:11: error: macro name is a reserved identifier
+	           [-Werror,-Wreserved-id-macro]
+	     #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
+
+	Reported by Derek Clegg.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00024.html
+
+	* data/c.m4 (b4_attribute_define): Don't define _Noreturn unconditionally.
+	* data/glr.c: Ask for _Noreturn.
+
+2018-10-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	pacify ICC 16.0.3 20160415
+	Found on the CI.
+
+	yacc.c:
+
+	    error #2259: non-pointer conversion from "int" to "yytype_int16={short}" may lose significant bits
+	        yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyesp
+	                ^
+
+	glr.c:
+
+	    error #2259: non-pointer conversion from "int" to "yybool={unsigned char}" may lose significant bits
+	      yybool yynormal YY_ATTRIBUTE_UNUSED = (yystackp->yysplitPoint == YY_NULLPTR);
+	                                          ^
+
+	    error #2259: non-pointer conversion from "int" to "yybool={unsigned char}" may lose significant bits
+	      return yypact_value_is_default (yypact[yystate]);
+	             ^
+
+	    error #2259: non-pointer conversion from "int" to "yybool={unsigned char}" may lose significant bits
+	      return 0 < yyaction;
+	             ^
+
+	    error #2259: non-pointer conversion from "int" to "yybool={unsigned char}" may lose significant bits
+	      return yyaction == 0;
+	             ^
+
+	    error #2259: non-pointer conversion from "int" to "yybool={unsigned char}" may lose significant bits
+	      yystackp->yytops.yylookaheadNeeds[yys] = yychar != YYEMPTY;
+	                                                     ^
+
+	* data/glr.c, data/yacc.c: Avoid these warnings.
+
+2018-10-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	flex: work around more warnings
+	* doc/bison.texi: here.
+
+2018-10-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: clang 5 defines nullptr as a macro
+	* examples/variant.yy: So don't do it.
+	* examples/variant-11.yy: Fix comment.
+
+2018-10-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.c: be strict about types
+	* data/glr.c: Don't use `foo |= bar` with foo and bar being yybool:
+	the result appears to be an int, not a yybool.
+	Use yybool where appropriate.
+	Add casts where needed.
+
+2018-10-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: fix warnings about integral types
+	Reported by Derek Clegg.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00018.html
+
+	Rather than adding casts, we should be more careful with types.  For
+	instance yystate should be a yytype_int16.  But currently we can't: it
+	is also used sometimes for storing other things that state numbers.
+
+	* data/yacc.c (yyparse): Add missing casts.
+
+2018-10-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	yacc.c: clarify the computation of yystate
+	The yacc.c skeleton is old, and was using many tricks to save
+	registers.  Today's register allocators can do this themselves.  Let's
+	keep the code simpler to read and let compilers do their job.
+
+	* data/yacc.c: Avoid using yystate for different types of content.
+	An inline function would be better, but doing this portably will be
+	a problem.
+
+2018-10-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	printf returns a signed int
+	* tests/local.at: Adjust location_print's signature.
+
+2018-10-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: be strict about types
+	* tests/actions.at, tests/c++.at, tests/cxx-type.at,
+	* tests/glr-regression.at, tests/local.at, tests/torture.at,
+	* tests/types.at:
+	Pay stricter attention to types to avoid warnings.
+
+2018-10-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: fix signedness issues
+	* data/lalr1.cc, data/stack.hh: The callers of stack use int, while
+	stack is based on size_type.  Add overloads to avoid warnings.
+
+2018-10-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: minor changes
+	* data/lalr1.cc: Fix oldish comment.
+	* data/stack.hh: Prefer typename for type names.
+	Use size() instead of duplicating it.
+	* examples/variant-11.yy, examples/variant.yy (yylex): Use int,
+	as this is the type of the semantic value.
+
+2018-10-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	all: display a clear warning about private macros
+	* data/bison.m4 (b4_disclaimer): New.
+	* data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c: Use it.
+
+2018-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: minor simplification
+	* data/stack.hh: Prefer a default argument value to two constructors.
+
+2018-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	all: avoid useless comments and #lines
+	Currently we emit useless code for places where we might issue user
+	content, but there is none.  This commit avoids this.  Besides, some
+	of the comments looked like implementation details ("Copy the first
+	part of user declarations"), rather than made for the reader of the
+	result ("First part of user prologue").
+
+	On Bison's parse-gram.c we get:
+
+	    @@ -76,10 +76,6 @@
+	     #define yynerrs         gram_nerrs
+
+	    -/* Copy the first part of user declarations.  */
+	    -
+	    -#line 82 "src/parse-gram.c" /* yacc.c:339  */
+	    -
+
+	* data/bison.m4 (b4_define_user_code): Accept a comment to document
+	the section.
+	Do not emit any code if the content is empty.
+	Adjust callers to not emit the comment.
+	Do not
+	* data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java, data/yacc.c:
+	Adjust.
+
+2018-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: refactor
+	* tests/actions.at, tests/synclines.at: Prefer iteration to
+	copy-paste.
+
+2018-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: rename AT_SKEL_CC_IF/AT_SKEL_JAVA_IF as AT_CXX_IF/AT_JAVA_IF
+	The previous name is too obscure, and the other macros for C++ use
+	CXX, not CC.
+
+	* tests/local.at (AT_SKEL_CC_IF, AT_SKEL_JAVA_IF): Rename as...
+	(AT_CXX_IF, AT_JAVA_IF): these.
+	Adjust callers.
+
+2018-10-21  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: check that emplace for rvalues works
+	See the previous commit.
+
+	* tests/local.at (AT_REQUIRE_CXX_VERSION): New.
+	* tests/types.at (api.value.type): Check emplace in C++14.
+
+2018-10-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: prefer a perfect forwarding version of variant's emplace
+	* data/variant.hh (emplace): In modern C++, use only a perfect
+	forwarding version.
+	And use it.
+	* doc/bison.texi: Document it.
+
+2018-10-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: prefer 'emplace' to 'build'
+	When we introduced variants in Bison, C++ did not have the 'emplace'
+	functions, and we chose 'build'.  Let's align with modern C++ and
+	promote 'emplace' rather than 'build'.
+
+	* data/lalr1.cc, data/variant.hh (emplace): New.
+	(build): Deprecate in favor of emplace.
+	* doc/bison.texi: Adjust.
+
+2018-10-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	%printer: promote yyo rather than yyoutput
+	* doc/bison.texi: Promote yyo rather than yyoutput.
+
+	* data/c.m4, data/glr.cc, tests/types.at, tests/calc.at,
+	tests/regression.at: Adjust.
+
+2018-10-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: improve the C++ section
+	* doc/bison.texi (C++ Parser): file.hh and location.hh are no longer
+	mandatory.
+	Various minor fixes.
+
+2018-10-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: reorder C++ sections
+	* doc/bison.texi (C++ Parser Interface): Document before semantic_type
+	and location_type.
+
+2018-10-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	git: don't ignore auxiliary Texinfo files
+	As a matter of fact, I think it is wrong to gitignore generated files
+	that belong to the build tree.  There should be the strict minimum,
+	and it's up to people that build in place to adjust their own
+	~/.gitignore.
+
+	* doc/.gitignore: here.
+	Remove files we no longer produce (thanks to texi2dvi).
+
+2018-10-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: do not exhibit private macros
+	* examples/variant-11.yy: here.
+
+2018-10-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: don't obfuscate std::move when not needed
+	* data/lalr1.cc, data/variant.hh: Avoid macros that depend on the
+	version of C++ when not needed.
+
+2018-10-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: add missing gnulib libs
+	Reported by Denis Excoffier.
+
+	* lib/local.mk, src/local.mk: here.
+
+2018-10-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2018-10-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.1.91
+	* NEWS: Record release date.
+
+2018-10-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2018-10-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: force stack resizing with unique_ptr
+	In the previous commit we fixed a problem when the C++ stack was
+	resized.  The test was using ints.  Let's add a test with someone
+	quite touchy: unique_ptr
+
+	* examples/variant-11.yy: Accept an argument, which is the number of
+	numbers to send to the parser.
+	* examples/variant-11.test: Check with many numbers.
+
+2018-10-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr1.cc: fix stack symbol move
+	In some casing, once we moved a stack symbol, we forget to mark the
+	source stack symbol as emptied.  As a consequence, it may be destroyed
+	a second time.
+
+	This happens when the stack has to be resized.
+
+	* data/lalr1.cc (stack_symbol_type::stack_symbol_type): Record that
+	the source was emptied.
+	(stack_symbol_type::operator=): Likewise.
+	* tests/c++.at (C++ Variant-based Symbols Unit Tests): Force the stack
+	to be resized.  Check its content.
+
+2018-10-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: improve the doc of the examples
+	* examples/README: here.
+
+2018-10-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	reader: recognize C++ even when it's not lalr1.cc or glr.cc
+	* src/reader.c (grammar_rule_check_and_complete): If a user uses her
+	own skeleton but sets the language to C++, recognize it as C++.
+
+2018-10-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2018-10-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.1.90
+	* NEWS: Record release date.
+
+2018-10-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: don't generate the position/stack files
+	* examples/variant-11.yy, examples/variant.yy: Require 3.2.
+
+2018-10-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2018-10-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	pacify syntax-checks
+	* lib/lbitset.c, tests/c++.at: here.
+	* cfg.mk: Add exceptions.
+
+2018-10-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-10-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	generate the default action only for C++
+	This commit adds restrictions to what was done in
+	01898726e27c8cf64f8fcea7f26f8ce62f3f5cf2 [1].
+
+	Rici Lake [2] has shown that it's risky to disable the pre-action, at
+	least now.  Also, generating the default $$ = $1 action can have bad
+	effects in some cases [3].
+
+	The original change [1] was prompted for C++.  Let's try it there
+	only, for a start.  We could restrict it further to lalr1.cc with
+	variants, but we need to see in the wild how this change behaves.  And
+	it is not unreasonable to expect grammar files in C++ to behave better
+	wrt types.
+
+	See
+	[1] https://lists.gnu.org/archive/html/bison-patches/2018-10/msg00050.html
+	[2] https://lists.gnu.org/archive/html/bison-patches/2018-10/msg00061.html
+	[3] https://lists.gnu.org/archive/html/bison-patches/2018-10/msg00066.html
+
+	* src/getargs.c: Style changes.
+	* src/reader.c (grammar_rule_check_and_complete): Complete only for
+	C++.
+
+2018-10-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-10-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: let %require "3.2" disable the generation of obsolete files
+	The files stack.hh and position.hh are deprecated.  Rather than
+	devoting specify %define variables to discard them (api.position.file
+	and api.stack.file), and rather than having to use special rules when
+	api.location.file is used, let's simply decide that from %require
+	"3.2" onwards, these files will not be generated.
+
+	The only noticeable thing here is that, in order to be able to check
+	the behavior of %require "3.2", to have this version (which is still
+	3.1-*) to accept %require "3.2".
+
+	* src/gram.h, src/gram.c (required_version): New.
+	* src/parse-gram.y (version_check): Set it.
+	* src/output.c (prepare): Pass it m4.
+	* data/bison.m4 (b4_required_version_if): Receive it and use it.
+	* data/location.cc, data/stack.hh: Replace the api.*.file with only
+	required version comparison.
+	* tests/input.at: No longer check api.stack.file and api.position.file.
+	* NEWS, doc/bison.texi: Don't mention them.
+	Document the %require 3.2 behavior.
+	* tests/output.at: Use %require 3.2 instead.
+
+2018-10-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	java: bump to Java SE 7
+	macOS 10.14 no longer supports versions of Java earlier than 5.
+	And Java 6 will be deprecated by the end of this year.  So let's move
+	our requirement to Java 7.
+	Reported by Yu Yijun.
+	https://lists.gnu.org/archive/html/bug-bison/2018-09/msg00060.html
+	Suggested by Paul Eggert and Bruno Haible.
+	http://lists.gnu.org/archive/html/bug-gnulib/2018-10/msg00094.html
+
+	* configure.ac: Require Java 7, both compiler and runtime.
+
+2018-10-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: do not advertise %nterm
+	Reported by Rici Lake.
+	http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00000.html
+
+	* NEWS, doc/bison.texi: here.
+
+2018-10-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	generate the default semantic action
+	Currently, in C, the default semantic action is implemented by being
+	always run before running the actual user semantic action.  As a
+	consequence, when the user action is run, $$ is already set as $1.
+
+	In C++ with variants, we don't do that, since we cannot manipulate the
+	semantic value without knowing its exact type.  When variants are
+	enabled, the only guarantee is that $$ is default contructed and ready
+	to the used.
+
+	Some users still would like the default action to be run with
+	variants.  Frank Heckenbach's parser in
+	C++17 (http://lists.gnu.org/archive/html/bug-bison/2018-04/msg00011.html)
+	provides this feature, but relying on std::variant's dynamic typing,
+	which we forbid in lalr1.cc.
+
+	The simplest seems to be actually generating the default semantic
+	action (in all languages/skeletons).  This makes the pre-action (that
+	sets $$ to $1) useless.  But...  maybe some users depend on this, in
+	spite of the comments that clearly warn againt this.  So let's not
+	turn this off just yet.
+
+	* src/reader.c (grammar_rule_check_and_complete): Rename as...
+	(grammar_rule_check_and_complete): this.
+	Install the default semantic action when applicable.
+	* examples/variant-11.yy, examples/variant.yy, tests/calc.at:
+	Exercise the default semantic action, even with variants.
+
+2018-10-14  Jannick  <thirdedition@gmx.net>
+
+	xml2xhtml.xsl: add UTF-8 encoding
+	To make arrows appear nicely in the browser. Currently it is shown as
+	some garbled something in mine (Firefox).
+
+	* data/xslt/xml2xhtml.xsl: here.
+
+2018-10-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	reader: reorder some calls to separate checks from assignments
+	* src/reader.c (packgram): Move assignments to rules[ruleno] after the
+	checks on the rule.
+
+2018-10-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: style: add missing space before parens
+	* data/c++.m4, data/lalr1.cc, data/stack.hh, data/variant.hh,
+	* examples/variant-11.yy: here.
+
+2018-10-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update timevar
+	See
+	https://lists.gnu.org/archive/html/bug-gnulib/2018-10/msg00005.html.
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/vbitset.h
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/vbitset.c
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/lbitset.c
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/lbitset.h
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/ebitset.c
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/ebitset.h
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/bitsetv.c
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/bitsetv.h
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/bitsetv-print.c
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/bitsetv-print.h
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/bitset_stats.c
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/bitset_stats.h
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/bitset.c
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/bitset.h
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/bbitset.h
+
+2018-10-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/abitset.c
+
+2018-10-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: modernize lib/abitset.h
+
+2018-10-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: issue a better CPP guard and Doxygen file command
+	Currently we use "<dir><api.location.file>" as \file argument, and as
+	base for the CPP guard.  This is not nice when <dir> is absolute, in
+	which case it is expected that the user will use api.location.include
+	to get something nicer.  If defined, use that name instead.
+
+	* data/location.cc (b4_location_path): New.
+	Use it.
+	* tests/c++.at (Shared locations): Check the guard and Doxygen doc.
+
+2018-10-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: remove stray empty line
+	* data/stack.hh: here.
+
+2018-10-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: spell check
+
+2018-10-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: document api.*.file and the like
+	* doc/bison.texi (Exposing the Location Classes): New.
+	(%define Summary): Document api.location.file, api.location.include,
+	api.stack.file and api.position.file.
+	(C++ Bison Interface): stack.hh and position.hh are deprecated.
+
+2018-10-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: add missing gnulib libs
+	* src/local.mk (LDADD): Here.
+
+2018-10-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: let timevar be dealt with by gnulib
+	* lib/local.mk (lib_libbison_a_SOURCES): Remove timevar.
+
+2018-10-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: fix distcheck
+	Now that distcheck no longer fails (see previous commit), let's
+	address the shortcomings.
+
+	* Makefile.am (CLEANDIRS, clean-local): New.
+	* doc/local.mk, examples/calc++/local.mk, examples/local.mk,
+	* examples/mfcalc/local.mk, examples/rpcalc/local.mk,
+	* src/local.mk
+	(CLEANDIRS): Get rid of Apple's *.dSYM directories.
+	(CLEANFILES): Get rid of *.output files.
+	* examples/variant-11.yy, examples/variant.yy: Don't generate
+	any of the auxiliary files (location.hh and the like).
+
+2018-10-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	README: work around a nasty behavior of gettext
+	`make update-po` runs:
+
+	    package_gnu="$(PACKAGE_GNU)"; \
+	    test -n "$$package_gnu" || { \
+	      if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
+	             LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f \
+	                           -size -10000000c -exec grep 'GNU @PACKAGE@' \
+	                           /dev/null '{}' ';' 2>/dev/null; \
+	           else \
+	             LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
+	           fi; \
+	         } | grep -v 'libtool:' >/dev/null; then \
+	         package_gnu=yes; \
+	       else \
+	         package_gnu=no; \
+	       fi; \
+	    }; \
+
+	and based on the result, put GNU or not in the following line from
+	bison.pot:
+
+	    # This file is distributed under the same license as the GNU bison package.
+
+	It turns out that in my environment some log files had the 'GNU bison'
+	string (note the lower case), but in distcheck, these files are no
+	longer visible, so the generate bison.pot was different, and distcheck
+	failed because we try to update bison.pot, which is read only in
+	distcheck.
+
+	The heuristics should look accept 'GNU Bison', not just 'GNU bison'.
+	But let's please it to make sure we have our 'GNU'.
+
+	* README: Mention 'GNU bison'.
+
+2018-10-07  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: document api.*.file changes
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: provide a means to control how location.hh is included
+	Users may want to generate the location file elsewhere, say
+	$top_srcdir/include/ast/location.hh.  Yet, we should not generate
+	`#include "$top_srcdir/include/ast/location.hh"` but probably
+	something like `#include <ast/location.hh>`, or `#include
+	"ast/location.hh", or `#include <location.hh>`.  It entirely depends
+	on the compiler flags (-I/-isystem) that are used.  Bison cannot guess
+	what is expected, so let's give the user a means to tell how the
+	location file should be included.
+
+	* data/location.cc (b4_location_file): New.
+	* data/glr.cc, data/lalr1.cc: Use it.
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: support absolute api.location.file names
+	In the case a user wants to create location.hh elsewhere, it can be
+	helpful to define api.location.file to some possibly absolute path
+	such as -Dapi.location.file='"$(top_srcdir)/include/ast/location.hh"'.
+	Currently this does not work with `-o foo/parser.cc`, as we join foo/
+	and $(top_srcdir) together, the latter starting with slash.
+
+	We should not try to do that in m4, manipulating file names is quite
+	complex when you through Windows file name in.  Let m4 delegate this
+	to gnulib.
+
+	* src/scan-skel.l (at_output): Accept up to two arguments.
+	* data/bison.m4 (b4_output): Adjust.
+	* tests/skeletons.at (Fatal errors but M4 continues producing output):
+	Adjust to keep the error.
+
+	* data/location.cc, data/stack.hh: Leave the concatenation to @output.
+	* tests/output.at: Exercise api.location.file with an absolute path.
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: when api.location.file is defined, don't generate stack.hh
+	Make it easier to have fewer files.
+
+	* data/stack.hh: Don't generate stack.hh when api.location.file is
+	specified.
+	* tests/calc++.at, tests/output.at: Adjust tests.
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: make position.hh completely useless
+	Let's put the definition of position into location.hh, there's no real
+	value in keeping them separate: they are small, and share the same
+	requirements.
+
+	To help users transition to this new model, still generate position.hh
+	by default, but as a simple include to location.hh.
+
+	* data/location.cc (api.position.file): Accept only 'none' as possible
+	value.
+	(position.hh): Make it a stub.
+	(location.hh): Adjust.
+	(b4_position_define): Merge into...
+	(b4_location_define): this.
+	* data/glr.cc, data/lalr1.cc, tests/input.at, tests/output.at: Adjust.
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: make stack.hh completely useless
+	Let's completely deprecate stack.hh.  Don't provide a means to give it
+	a new name, allow only its removal.
+
+	See https://lists.gnu.org/archive/html/bison-patches/2018-09/msg00151.html
+	and https://lists.gnu.org/archive/html/bison-patches/2018-09/msg00182.html.
+
+	* data/stack.hh: Reduce stack.hh to a simple comment explaining how to
+	get rid of it.
+	* data/lalr1.cc: Adjust
+	* tests/input.at (%define file variables): Adjust.
+	* tests/output.at: Remove cases where stack.hh was removed.
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: add support for api.position.file and api.location.file
+	* data/location.cc: Sort includes.
+	(b4_position_file, b4_location_file): New.
+	When there's a file for locations but not for positions, include the
+	definition of position in the location file.
+	* data/lalr1.cc (b4_shared_declarations): Include the
+	position/location file when it exists.
+	Otherwise, define the class.
+	* data/glr.cc: Likewise.
+	* tests/input.at (%define file variables): Check them.
+	* tests/output.at (C++ output): Check various cases with
+	api.position.file and api.location.file.
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: provide control over the stack.hh file name
+	It was not a good idea to generate the file stack.hh.  It never was.
+	But now we have to deal with backward compatibility: if we stop
+	generating it, the build system of some build system will probably
+	break.
+
+	So offer the user a means to (i) decide what the name of the output
+	file should be, and (ii) not generate this file at all (its content
+	will be inline where the parser is defined).
+
+	* data/lalr1.cc (b4_percent_define_check_file_complain)
+	(b4_percent_define_check_file): New.
+	* data/stack.hh: Generate the file only if api.stack.file is not
+	empty.
+	In that case, use it as file name.
+	* data/lalr1.cc: Adjust to include the right file, or to include
+	the definition of stack.
+	* tests/calc.at, tests/output.at: Exercise api.stack.file.
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: c++: don't fuse prefix and namespace
+	They are not the same concept.  It appears that we still consider that
+	api.prefix is the default for api.namespace.  We should stop that.
+
+	* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
+	Separate namespace and prefix.
+	Adjust dependencies.
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: tests: factor file extension computations
+	* tests/local.at (AT_LANG_HDR): New.
+	* tests/calc.at, tests/headers.at, tests/synclines.at: Use it, and
+	AT_LANG_EXT.
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: style changes
+	* data/lalr1.cc: Formatting changes.
+	Remove duplicate definition of YY_NULLPTR.
+	Add quotes to help Emacs track balanced parens.
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	lib: introduce xpath_join
+	* lib/path-join.h, lib/path-join.c: New.
+	* lib/local.mk: Adjust.
+	* src/output.c: Use it.
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: travis finally knows about llvm-toolchain-trusty-7
+	See https://github.com/travis-ci/apt-source-safelist/pull/392.
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2018-10-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: restore spello made on purpose
+
+2018-10-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	THANKS: add Josh Soref
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: whether
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: typedef
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: troubleshooting
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: transparent
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: translated
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: transitions
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: transition
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: tracking
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: suppress
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: succesful
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: storage
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: safely
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: responsibility
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: resources
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: releases
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: reduction
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: reachable
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: rawtoknumflag
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: possibly
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: persistent
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: outputting
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: otherwise
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: occurrence
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: namespace
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: minimal
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: invocations
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: initialize
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: incorrectly
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: included
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: illicit
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: handling
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: gratuitously
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: grammar
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: generation
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: generate
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: forewarn
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: fnchange
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: family
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: extensions
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: enum
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: diagnostics
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: determined
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: detailed
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: descriptive
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: definitions
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: declaration
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: corrupted
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: consuming
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: consistently
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: conflicts
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: concatenation
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: complete
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: compatibility
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: comparison
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: combination
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: characters
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: builddir
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: assoc
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: appropriate
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: alignment
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: aggregate
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: adjust
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: additional
+
+2018-10-05  Josh Soref  <jsoref@users.noreply.github.com>
+
+	spelling: accurately
+
+2018-10-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	README-hacking: details about make check-local
+
+2018-10-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2018-10-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	main: fix error message for missing argument
+	* src/getargs.c (getargs): Don't display any argv other that argv[0]
+	when reporting a missing argument.
+	* tests/bison.in: Neutralize path differences in stderr.
+	* tests/input.at (Invalid number of arguments): New.
+
+2018-09-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: move timevar to it
+	* lib/timevar.c, lib/timevar.h, m4/timevar.m4: Remove.
+	* gnulib: Update.
+	* configure.ac: Adjust.
+	* lib/timevar.def: Use lower case for the timevvars.
+	Adjust dependencies.
+
+2018-09-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: comment changes
+	* data/glr.cc, data/lalr1.cc: here.
+
+2018-09-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2018-09-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+	getargs: use LC_MESSAGES trick only on glibc
+	* src/getargs.c (usage): Rely on setlocale (LC_MESSAGES, NULL)
+	trick only on glibc, as POSIX does not specify the output
+	of setlocale in this case, and the Gnulib localename module
+	source code indicates that the trick works only on glibc.
+
+2018-09-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+	uniqstr: avoid need for VLAs
+	C11 no longer requires support for variable-length arrays, and
+	VS2015 does not have them.  Redo UNIQSTR_CONCAT to use a method
+	that is simpler and better anyway.
+	* src/uniqstr.c (uniqstr_vsprintf): Remove; no longer needed.
+	* src/uniqstr.h (UNIQSTR_GEN_FORMAT, UNIQSTR_GEN_FORMAT_):
+	* src/uniqstr.c (uniqstr_concat): New function.
+	* src/uniqstr.h (UNIQSTR_CONCAT): Use it instead of using
+	uniqstr_vsprintf.
+
+2018-09-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: clean up the C++ section
+	* doc/bison.texi: Minor fixes in typography.
+	It is no longer require to pass --defines for C++ (it was addressed
+	long ago).
+	No longer refer to the `variant` define variable, it was replaced by
+	`api.value.type variant`.
+	Prefer nullptr to 0 for the null pointer.
+	Use deftypeop for constructors.
+	(Complete Symbols): Give the expected signature of yylex.
+	Don't document the symbol_type constructors, as we want users to focus
+	on make_TOKEN.
+	Also show the case without locations.
+
+2018-09-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: fixes for clang and asan
+	Bison's test 464 (Syntax error as exception) fails on the CI.
+	Do not use clang with asan on Ubuntu's libc++.
+	https://bugs.llvm.org/show_bug.cgi?id=17379
+
+	* .travis.yml (Clang 7 libc++ and ASAN): New.
+	(Clang 6 -O3 and libc++): Really use libc++.
+	(Clang 5): Don't use libc++, nor asan (does not work either, same
+	reason).
+
+2018-09-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes in muscle-tab.c
+
+2018-09-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: remove useless parens
+	* data/bison.m4, data/glr.c, data/glr.cc, data/lalr1.cc,
+	* data/lalr1.java, data/location.cc, data/yacc.c: Call b4_output_end
+	without parens.
+
+2018-09-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: fix warning message for automove
+	* src/scan-code.l: Remove 'enabled'.
+	Use only $k (numeric), even for named references, for clarity.
+	* tests/c++.at: Adjust expectations.
+
+2018-09-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: minor refactoring
+	* data/bison.m4: Formatting changes.
+	* src/scan-code.l: Avoid loops, prefer standard string functions.
+	(find_prefix_end): Be const correct.
+	Avoid useless intermediate variables.
+	(variant_add): Be const correct.
+	(parse_ref): Prefer variable definitions to assignments.
+
+2018-09-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: don't exit
+	* .travis.yml: Prefer `false` to `exit`, as it completely ends the
+	script (so we don't get the logs).
+
+2018-09-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: really use Clang 3.3 and 3.4, not 5.0
+	* .travis.yml: Don't define CC/CXX, it does not work.
+	Use `[[...]]` instead of `[...]`.
+	Show the compiler versions.
+	(Clang 3.3, Clang 3.4): Specify the path to avoid using
+	/usr/local/clang-5.0.0/bin's clang.
+
+2018-09-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: more compiler configurations
+	* .travis.yml (GCC 8): Use sanitizers.
+	(Clang 5 -O3): Remove, replaced by...
+	(Clang 7 ASAN and libc++, Clang 6 -O3 and libc++): New.
+
+2018-09-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: rename and simplify the -std checks for C++
+	Too much code duplication.
+
+	* m4/bison-cxx-std.m4: s/BISON_CXX_COMPILE_STDCXX/BISON_CXXSTD/.
+	(BISON_CXXSTD): New.
+	* configure.ac: Use it.
+
+2018-09-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: check for C++98 and 03 like the others
+	* m4/bison-cxx-std.m4 (BISON_CXX_COMPILE_STDCXX_98)
+	(BISON_CXX_COMPILE_STDCXX_03): New.
+	* configure.ac: Use them.
+
+2018-09-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: use our own version of ax_check_link_flag
+	The message on configure is misleading:
+
+	    checking whether the linker accepts -std=c++11... yes
+	    checking whether the linker accepts -std=c++14... yes
+	    checking whether the linker accepts -std=c++17... no
+
+	It is the compiler that we check, not just the linker.
+
+	* m4/ax_check_link_flag.m4: Remove.
+	* m4/bison-check-compiler-flag.m4: New.
+	* m4/bison-cxx-std.m4: Use it.
+
+2018-09-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: fix Autoconf macros to check for C++ standard flags
+	* m4/bison-cxx-std.m4: Since now we link the program, we need a
+	program: main was missing and linking was failing.
+
+2018-09-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix a memory leak
+	This has been bugging me for while.  I was hard to reproduce: it
+	worked only on GNU/Linux, probably because libc++ implements the small
+	string optimization, while libstdc++ did not and actually allocated on
+	the heap for this small string.
+
+	See https://lists.gnu.org/archive/html/bison-patches/2018-09/msg00110.html.
+
+	* tests/types.at (api.value.type): Do not provide a semantic value to
+	EOF.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: work around Flex's use of 'register'
+	The CI uses an old version of Flex.
+	See 65fa634cdcfc5cf59b8b074670f488bba4df57cd.
+
+	* doc/bison.texi (calc++/scanner.ll): Here.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	timevar: don't declare getrusage if we don't use it
+	This fails on MinGW.
+	Reported by Simon Sobisch.
+	http://lists.gnu.org/archive/html/bug-bison/2018-09/msg00058.html
+
+	* lib/timevar.c: Don't provide default prototypes for functions
+	we don't use.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	timevar: get rid of a useless macro
+	* lib/timevar.h (timevar_report): Rename as...
+	(timevar_enabled): this.
+	* lib/timevar.c (TIMEVAR_ENABLE): Remove.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	timevar: introduce and use get_current_time
+	* lib/timevar.c: here.
+	Remove useless prototypes.
+	(timevar_accumulate): Be const correct.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	timevar: rename get_time as set_to_current_time
+	* lib/timevar.c: here.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	timevar: reduce scopes
+	* lib/timevar.c: here.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	timevar: document in the header, not in the implementation
+	* lib/timevar.c: Move documentation from here...
+	* lib/timevar.h: to there.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	timevar: remove useless 'extern' for prototypes
+	* lib/timevar.h, lib/timevar.c: here.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	timevar: rename init_timevar as timevar_init
+	* lib/timevar.h, lib/timevar.c: here.
+	* src/main.c: Adjust.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	timevar: we don't care about backward compatibility
+	* lib/timevar.h, lib/timevar.c (get_run_time, print_time): Remove.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	timevar: prefer #elif
+	* lib/timevar.c: Use #if/#elif to be clearer about mutually exclusive
+	cases.
+	Indent CPP nested directives.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	timevar: assume ANSI C
+	Suggested by Bruno Haible.
+	https://lists.gnu.org/archive/html/bug-gnulib/2018-09/msg00102.html
+
+	* lib/timevar.c: Wow...  This was still KnR C!
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	timevar: remove remains of GCC
+	* lib/timevar.h, lib/timevar.c: Rename the header guard.
+	Get rid of parts meant for GCC only.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	news: c++: move semantics
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: issue a warning with a value is moved several times
+	Suggested by Frank Heckenbach.
+	http://lists.gnu.org/archive/html/bug-bison/2018-09/msg00022.html
+
+	* src/scan-code.l (parse_ref): Check multiple occurrences of rhs
+	values.
+	* tests/c++.at (Multiple occurrences of $n and api.value.automove): New.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: introduce api.value.automove
+	Based on work by Frank Heckenbach.
+	See http://lists.gnu.org/archive/html/bug-bison/2018-04/msg00000.html
+	and http://lists.gnu.org/archive/html/bug-bison/2018-09/msg00019.html.
+
+	* data/lalr1.cc (b4_rhs_value): Use YY_MOVE api.rhs.automove is set.
+	* doc/bison.texi (%define Summary): Document api.rhs.automove.
+	* examples/variant-11.yy: Use it.
+
+	* tests/local.at (AT_AUTOMOVE_IF): New.
+	* tests/c++.at (Variants): Check move semantics.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: c++: use a custom string type
+	The forthcoming automove feature, to be properly checked, will require
+	that we can rely on the value of a moved-from string, which is not
+	something the C++ standard guarantees.  So introduce our own wrapper.
+
+	Suggested by Frank Heckenbach.
+	https://lists.gnu.org/archive/html/bison-patches/2018-09/msg00111.html
+
+	* tests/c++.at (Variants): Introduce and use a new 'string' class.
+
+2018-09-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: prepare a test for automove
+	The 'Variants' tests are well suited to check support for move, and in
+	particular for the forthcoming automove feature.  But the tests were
+	written to show the best practice in C++98, using swap:
+
+	    list "," item { std::swap ($$, $1); $$.push_back ($3); }
+
+	This cannot work with std::move.  So, make this example simpler, based
+	on regular assignment instead of swap, which is a regression for
+	C++98 (as the new traces show), but will be an improvement for modern
+	C++ with automove.
+
+	* tests/c++.at (Variants): Stop using swap.
+	We don't generate a header file, so remove the 'require' code section.
+	Adjust expectations.
+
+2018-09-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes in gram.c
+	* src/gram.c: here.
+
+2018-09-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes in reduce.c
+	* src/reduce.c: Here.
+
+2018-09-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2018-09-20  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: work around ICC's limitations
+	Several types of failures.  First, unable to pass the file name
+	properly to the linker.
+
+	    ./synclines.at:416: $CC $CFLAGS $CPPFLAGS  $LDFLAGS -o \"\\\"\" \"\\\"\".c $LIBS
+	    stderr:
+	    ld: cannot open output file "/"": No such file or directory
+	    stdout:
+
+	Unable to save under such a file name.
+
+	    ./synclines.at:421: $CXX $CXXFLAGS $CPPFLAGS -c $LDFLAGS -o \"\\\"\" \"\\\"\".cc $LIBS
+	    stderr:
+	    error: can't open file "/"" for write
+	    compilation aborted for "\"".cc (code 1)
+
+	Spurious output because of warning flags is failed to reject as an
+	error during configure:
+
+	    ./headers.at:343: $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS c-only.o cxx-only.o -o c-and-cxx ||
+	              exit 77
+	    --- /dev/null	2018-09-18 21:21:37.745649000 +0000
+	    +++ /home/travis/build/akimd/bison/tests/testsuite.dir/at-groups/222/stderr	2018-09-18 21:28:17.291919519 +0000
+	    @@ -0,0 +1,7 @@
+	    +icpc: command line warning #10006: ignoring unknown option '-Wcast-align'
+	    +icpc: command line warning #10006: ignoring unknown option '-fparse-all-comments'
+	    +icpc: command line warning #10006: ignoring unknown option '-Wdocumentation'
+	    +icpc: command line warning #10006: ignoring unknown option '-Wnull-dereference'
+	    +icpc: command line warning #10006: ignoring unknown option '-Wnoexcept'
+	    +icpc: command line warning #10006: ignoring unknown option '-fno-color-diagnostics'
+	    +icpc: command line warning #10006: ignoring unknown option '-Wno-keyword-macro'
+	    stdout:
+
+	* tests/local.at (AT_SKIP_IF_CANNOT_LINK_C_AND_CXX): Also ignore
+	stderr, as with ICC we get
+	* tests/synclines.at (syncline escapes): Don't link the output.
+
+2018-09-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: fix typo
+	Introduced in the previous commit.
+
+	* doc/bison.texi: here.
+
+2018-09-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: use midrule only, not mid-rule
+	The code was already using midrule only, never mid_rule.  This is
+	simpler to remember, and matches a similar change we made from
+	look-ahead to lookahead.
+
+	* NEWS, doc/bison.texi, src/reader.c, src/scan-code.h, src/scan-code.l
+	* tests/actions.at, tests/c++.at, tests/existing.at: here.
+
+2018-09-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: use _foo for private macros, not foo_
+	We use both styles, let's stick to a single one.  Autoconf uses the
+	prefix one, let's do the same.
+
+	* data/bison.m4, data/c++.m4, data/c-like.m4, data/lalr1.cc,
+	* data/variant.hh, data/yacc.c: Rename all the b4_*_ macros
+	as _b4_*.
+
+2018-09-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: don't accept a broken standard lib for C++
+	On the CI, we had failures such as:
+
+	    ./c++.at:401:  $PREPARSER ./list
+	    stderr:
+	    ./list: error while loading shared libraries: libc++.so.1:
+	            cannot open shared object file: No such file or directory
+
+	because we accepted `-std=c++ -stdlib=libc++` although libc++ is not
+	installed on the machine.
+
+	* m4/ax_check_compile_flag.m4 (AX_CHECK_COMPILE_FLAG): Rewrite as...
+	* m4/bison-check-compile-flag.m4 (BISON_CHECK_COMPILE_FLAG): this, so
+	that we use AC_LINK_IFELSE to check the compiler (and its std lib)
+	instead of AC_COMPILE_IFELSE.
+
+2018-09-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+	doc: document older compiler issues
+	* doc/bison.texi (Compiler Requirements for GLR):
+	Rename from Compiler Requirements.
+	(I can't build Bison): Add FAQ for older compilers.
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.c: work around ICC limitations
+	The CI is littered with
+
+	    #                             -*- compilation -*-
+	    423. regression.at:907: testing Dancer %glr-parser ...
+	    ./regression.at:907: bison -fno-caret -o dancer.c dancer.y
+	    ./regression.at:907: $BISON_C_WORKS
+	    stderr:
+	    stdout:
+	    ./regression.at:907: $CC $CFLAGS $CPPFLAGS  $LDFLAGS -o dancer dancer.c $LIBS
+	    stderr:
+	    icc: command line warning #10006: ignoring unknown option '-Wcast-align'
+	    icc: command line warning #10006: ignoring unknown option '-fparse-all-comments'
+	    icc: command line warning #10006: ignoring unknown option '-Wdocumentation'
+	    icc: command line warning #10006: ignoring unknown option '-Wnull-dereference'
+	    icc: command line warning #10006: ignoring unknown option '-Wbad-function-cast'
+	    icc: command line warning #10006: ignoring unknown option '-fno-color-diagnostics'
+	    icc: command line warning #10006: ignoring unknown option '-Wno-keyword-macro'
+	    dancer.c(755): error #1628: function declared with "noreturn" does return
+	      }
+	      ^
+
+	    dancer.c(761): error #1628: function declared with "noreturn" does return
+	      }
+	      ^
+
+	    compilation aborted for dancer.c (code 2)
+
+	ICC sees that `longjmp(buf, 1);` does not return, it sees that
+	`abort();` does not either, but fails to see it for
+	`longjmp(buf, 1); abort();`
+
+	* data/glr.c (YYLONGJMP): Be even clearer on the fact this does not
+	return.
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	TODO: more
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: change strategy to pass CXXFLAGS and the like
+	Putting them in the env is useless.  We don't want to pass
+	`CPPFLAGS="$CPPFLAGS"` to configure, as it means "set it to nothing"
+	when $CPPFLAGS is not set, which is not what we want.
+
+	This correctly started to use libc++, but it is not installed on the
+	Ubuntu.  We will see later if we can use it.
+
+	* .travis.yml: Define CONFIGUREFLAGS, and pass it to configure.
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: also use GCC 4.7 and 4.8
+	* .travis.yml (matrix): here.
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: name the items of the matrix
+	* .travis.yml: here.
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: also check with ICC
+	* build-aux/install-icc.sh: New.
+	* .travis.yml (icc): New.
+	Use -k to get as many errors as possible from the start.
+	* src/complain.c (warnings_types): Use a more precise type.
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: be sure to exit on failures
+	a807cfa6eb1a5362ead0b7c99bdc8fd2f4f896da completely broke the whole
+	point of having a CI: we always exit with success!
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: strengthen the C++ standard flag test
+	On the CI, we have this spurious failure with clang 3.9 with
+	-std=c++17:
+
+	    In file included from list.y:23:
+	    In file included from /usr/include/c++/4.8/iostream:39:
+	    In file included from /usr/include/c++/4.8/ostream:38:
+	    In file included from /usr/include/c++/4.8/ios:42:
+	    In file included from /usr/include/c++/4.8/bits/ios_base.h:41:
+	    In file included from /usr/include/c++/4.8/bits/locale_classes.h:40:
+	    In file included from /usr/include/c++/4.8/string:52:
+	    In file included from /usr/include/c++/4.8/bits/basic_string.h:2815:
+	    In file included from /usr/include/c++/4.8/ext/string_conversions.h:43:
+	    /usr/include/c++/4.8/cstdio:120:11: error: no member named 'gets' in the global namespace
+	      using ::gets;
+	            ~~^
+
+	This shows that our test, based on gl_WARN_ADD, is a joke.  We have to
+	really check for at least a bit of C++.
+
+	* m4/ax_check_compile_flag.m4, m4/bison-cxx-std.m4: New.
+	* configure.ac: Use them to make sure the compiler actually works.
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix memory leak
+	This was reported by ASAN on the CI.
+
+	* tests/types.at (api.value.type): Don't set a semantic value to EOF.
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr.c: prefer true/false to 1/0 in C++
+	* data/glr.c: here.
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: work around Flex's use of 'register'
+	The CI uses an old version of Flex.
+
+	* doc/bison.texi (calc++/scanner.ll): Here.
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fight G++ warnings about zero as null pointer constant
+	In C++ pre C++11 it is standard practice to use 0 for the null pointer.
+	But GCC pre 8 -std=c++98 with -Wzero-as-null-pointer-constant warns about
+	this.
+
+	So disable -Wzero-as-null-pointer-constant when compiling C++ pre 11.
+	Let's do this in AT_DATA_SOURCE_PROLOGUE (which is pasted on top of
+	all the test grammar files).  Unfortunately, that shifts all the
+	locations in the expected error messages, which would be too noisy.
+	Instead, let's introduce testsuite.h, which can vary in length, and
+	include it in AT_DATA_SOURCE_PROLOGUE.
+
+	* tests/testsuite.h: New.
+	Disable -Wzero-as-null-pointer-constant's warning with GCC pre 8,
+	C++ pre 11.
+	* tests/local.at (AT_DATA_SOURCE_PROLOGUE): Use it.
+	* tests/atlocal.in (CPPFLAGS): Find it.
+	* tests/local.mk: Ship it.
+	* data/c.m4 (YY_NULLPTR): Prefer ((void*)0) to 0 in C.
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: make sure `git describe` works
+	For some reasons, the checkout on travis may not have any tags, so
+	`git describe` fails, so bootstrap fails.
+
+	* .travis.yml: If git describe fails, install some tag.
+
+2018-09-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: install Doxygen
+	* .travis.yml: here, so that its tests are not skipped.
+	Remove valgrind: it's too expensive on the CI, and asan does the job.
+
+2018-09-16  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: prefer %D% in Automake files
+	* tests/local.mk: Prefer %D%/ to tests/.
+
+2018-09-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes in complain.c
+
+2018-09-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes in tables.c
+	* src/tables.c: here.
+	* src/state.h: Formatting changes.
+
+2018-09-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes in graphviz.c
+
+2018-09-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes in LR0.c
+
+2018-09-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes in print_graph.c
+	* src/print_graph.c: here.
+
+2018-09-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: formatting changes
+	* doc/bison.texi: No changes in the output.
+
+2018-09-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: run the C++ tests on all the available standards
+	This is much of course more efficient than in the matrix of the CI (or
+	on our own machines), but a bit more tedious.
+
+	* configure.ac (CXX03_CXXFLAGS, CXX11_CXXFLAGS, CXX14_CXXFLAGS)
+	(CXX17_CXXFLAGS, CXX2A_CXXFLAGS, STDCXX_FLAGS): New.
+	* tests/atlocal.in: Receive them.
+	* tests/local.at (AT_FOR_EACH_CXX): New.
+	* tests/c++.at: Use AT_FOR_EACH_CXX.
+
+2018-09-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: allow to override variables with envvars
+	* tests/atlocal.in: Allow the user to change interesting variables
+	(CFLAGS, CXXFLAGS, etc.).
+
+2018-09-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr1.cc: modern C++ no longer needs an assignment for symbols
+	Reported by Frank Heckenbach.
+	http://lists.gnu.org/archive/html/bug-bison/2018-03/msg00002.html
+
+	Actually the assignment operator should never be needed: the C++98
+	requirements for vector::push_back is CopyInsertable, which does not require
+	an assignment operator.  However, libstdc++ shipped with GCC up to (and
+	including) 6 uses the assignment operator (which affects Clang on top of
+	libstdc++, but also ICC).  So let's keep it for legacy C++.
+
+	See https://gcc.godbolt.org/z/q0XXmC.
+
+	* data/lalr1.cc (stack_symbol_type::operator=): Remove.
+	* data/c++.m4 (basic_symbol::operator=): Ditto.
+	* tests/c++.at (C++ Variant-based Symbols Unit Tests): Adjust.
+
+2018-09-13  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr1.cc: support move semantics
+	Modern C++ (i.e., C++11 and later) introduced "move only" types: types such
+	as std::unique_ptr<T> that can never be duplicated.  They must never be
+	copied (by assignments and constructors), they must be "moved".  The
+	implementation of lalr1.cc used to copy symbols (including their semantic
+	values).  This commit ensures that values are only moved in modern C++, yet
+	remain compatible with C++98/C++03.
+
+	Suggested by Frank Heckenbach, who provided a full implementation on
+	top of C++17's std::variant.
+	See http://lists.gnu.org/archive/html/bug-bison/2018-03/msg00002.html,
+	and https://lists.gnu.org/archive/html/bison-patches/2018-04/msg00002.html.
+
+	Symbols (terminal/non terminal) are handled by several functions that used
+	to take const-refs, which resulted eventually in a copy pushed on the stack.
+	With modern C++ (C++11 and later) the callers must use std::move, and the
+	callees must take their arguments as rvalue refs (foo&&).  In order to avoid
+	duplicating these functions to support both legacy C++ and modern C++, let's
+	introduce macros (YY_MOVE, YY_RVREF, etc.)  that rely on copy-semantics for
+	C++98/03, and move-semantics for modern C++.
+
+	That's easy for inner types, when the parser's functions pass arguments to
+	each other.  Functions facing the user (make_NUMBER, make_STRING, etc.)
+	should support both rvalue-refs (for instance to support move-only types:
+	make_INT (std::make_unique<int> (1))), and lvalue-refs (so that we can pass
+	a variable: make_INT (my_int)).  To avoid the multiplication of the
+	signatures (there is also the location), let's take the argument by value.
+
+	See:
+	https://lists.gnu.org/archive/html/bison-patches/2018-09/msg00024.html.
+
+	* data/c++.m4 (b4_cxx_portability): New.
+	(basic_symbol): In C++11, replace copy-ctors with move-ctors.
+	In C++11, replace copies with moves.
+	* data/lalr1.cc (stack_symbol_type, yypush_): Likewise.
+	Use YY_MOVE to avoid useless copies.
+	* data/variant.hh (variant): Support move-semantics.
+	(make_SYMBOL): In C++11, in order to support both read-only lvalues,
+	and rvalues, take the argument as a copy.
+	* data/stack.hh (yypush_): Use rvalue-refs in C++11.
+	* tests/c++.at: Use move semantics.
+
+	* tests/headers.at: Adjust to the new macros (YY_MOVE, etc.).
+
+	* configure.ac (CXX98_CXXFLAGS, CXX11_CXXFLAGS, CXX14_CXXFLAGS)
+	(CXX17_CXXFLAGS, ENABLE_CXX11): New.
+	* tests/atlocal.in: Receive them.
+
+	* examples/variant.yy: Don't define things in std.
+	* examples/variant-11.test, examples/variant-11.yy: New.
+	Check the support of move-only types.
+	* examples/README, examples/local.mk: Adjust.
+
+2018-09-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: factor the definition of full compilation
+	* tests/local.at (AT_LANG_EXT): New.
+	(AT_FULL_COMPILE): Simplify.
+
+2018-09-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: use clang with libc++
+	GCC uses libstdc++.  Let's also check libc++.
+
+	* .travis.yml: here.
+
+2018-09-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: use address sanitizer
+	* .travis.yml (matrix): Use the latest (available) clang with asan.
+
+2018-09-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: sort the matrix in reverse-chronological
+	There are only three builds at a time: show the result of modern
+	compilers first.
+
+	* .travis.yml (matrix): Sort in reverse-chronological.
+
+2018-09-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: use -fparse-all-comments with -Wdocumentation
+	Clang checks only /** ... */ comments without this flag.
+
+	* configure.ac (warn_common): Also check -fparse-all-comments.
+
+2018-09-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	TODO: minor updates
+
+2018-09-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: fix support for --disable-dependency-tracking
+	Reported by Juan Manuel Guerrero.
+	https://lists.gnu.org/archive/html/bug-bison/2014-07/msg00000.html.
+
+	* examples/local.mk (%D%/extracted.stamp): Make sure the output
+	directory exists.
+	* examples/extexi (process): Likewise.
+
+2018-09-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	configure.ac: fix definition of NO_EXCEPTIONS_CXXFLAGS
+	* configure.ac: Always define it, not just when --enable-gcc-warnings
+	is passed.
+
+2018-09-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	skeletons: style/comment changes
+	* data/c++.m4, data/c.m4, data/glr.c: Here.
+
+2018-09-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	variant: indent better the generated code
+	* data/variant.hh (b4_basic_symbol_constructor_declare)
+	(b4_basic_symbol_constructor_define): here.
+
+2018-09-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr1.cc: don't generate useless constructors when variant is used
+	This generates less code, which is nicer to read, but also takes less
+	chances with compilers such as G++ 4.8 that are too strict and check
+	"dead code" (templated code that is not instantiated).
+
+	* data/c++.m4 (b4_symbol_type_declare, b4_symbol_type_define): When
+	variants are used, don't generate code meant for non variants.
+
+2018-09-09  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: Clang 6.0 is not available
+	But Clang 3.3 and 3.4 are.
+
+	* .travis.yml (addons): Remove, it appears to be ignore if the matrix
+	also defines it.
+	(matrix): Update.
+
+2018-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: work around warnings in Flex
+	See ea0db44fedc8d5cbdc5c3180bef0285d7ae83803.  We also need to disable
+	the warning in the examples (but don't want to clutter the
+	documentation with such details).
+
+	* doc/bison.texi (scanner.ll): Disable Clang's -Wdocumentation.
+	While at it, hide the other kludges.
+
+2018-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: more compiler configurations
+	* .travis.yml: here.
+
+2018-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	configure: reveal the name of the Valgrind suppression file we use
+	* configure.ac: here.
+	* build-aux/Linux.valgrind (libstdcxx_init): New.
+
+2018-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: work around warnings in Flex 2.5.35
+	That's the version on Ubuntu Precise.
+	See also 1dac131ec45ffa1e382319a94640c65bd10f6aa5.
+
+	* src/flex-scanner.h: Disable -Wdocumentation.
+	* doc/bison.texi: Turn off a warning triggered by Flex 2.6.4.
+
+2018-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: show the version of the tools we use
+	We have failures on Flex output, which are probably related to an old
+	release.  Let's check.
+
+	    In file included from src/scan-code-c.c:3:
+	    src/scan-code.c:2198:21: error: empty paragraph passed to '@param' command
+	          [-Werror,-Wdocumentation]
+	     * @param line_number
+	       ~~~~~~~~~~~~~~~~~^
+
+	* .travis.yml: here.
+
+2018-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: run more maintainer tests and show the logs
+	Running all these tests might be overkill: it is very long, and don't
+	need full portability checks.  Besides, some tests under Valgrind are
+	too slow and get killed by the CI (timeout of 10min without output).
+
+	* .travis.yml: here.
+
+2018-09-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: enable compiler warnings
+	* .travis.yml: here.
+	* README-hacking: We no longer aim at K&R C.
+
+2018-09-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: work around GCC warnings on Flex code
+	See ef98967ada3c1cd48c177d7349e65a709bb49b97.
+
+	* src/flex-scanner.h: Disable -Wnull-dereference for GCC 6+.
+
+2018-09-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix target naming convention
+	We have some maintainer-check-foo and some maintainer-foo-check.  Keep
+	only the former.
+
+	* tests/local.mk (maintainer-push-check, maintainer-xml-check)
+	(maintainer-release-check): Rename as...
+	(maintainer-check-push, maintainer-check-xml)
+	(maintainer-check-release): these.
+
+2018-09-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix variable naming convention
+	Most of our variables for C++ flags are named FOO_CXXFLAGS, not
+	CXXFLAGS_FOO.
+
+	* configure.ac, tests/atlocal.in, tests/calc.at
+	(NO_EXCEPTIONS_CXXFLAGS): Rename as...
+	(CXXFLAGS_NO_EXCEPTIONS): this.
+
+2018-09-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix maintainer-check-g++ make recipe
+	Clang++ issues warnings when it's used to compile C.  This make target
+	is precisely checking whether we can do that.
+
+	* configure.ac (NO_DEPRECATED_CXXFLAGS): New.
+	* tests/atlocal.in: Use it.
+
+2018-09-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix maintainer-check-valgrind make recipe
+	* tests/local.mk (maintainer-check-valgrind): Run the with Valgrind
+	when it's available, not the converse.
+
+2018-09-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	CI: prepare for travis
+	* .travis.yml: New.
+
+2018-09-06  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: beware of shell portability issues
+	This completes 2d7e7438024e47650c3a0c9f5f313c6eb6acae2d.
+
+	Some shells don't grok "local var=`cmd`" very well: they need the rhs
+	to be quoted.
+
+	    ./examples/test: 72: local: you.,: bad variable name
+	    FAIL examples/variant.test (exit status: 2)
+
+	Reported by Étienne Renault.
+
+	* examples/test (run): Quote the values in 'local' assignments.
+
+2018-09-04  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: style changes
+	* tests/c++.at: Formatting changes.
+	Use 'using' to shorten the code.
+
+2018-09-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: disable GCC7 warnings for some tests
+	With GCC7 we have warnings (false positive):
+
+	    x8.c: In function 'x8_parse':
+	    x8.c:1233:16: error: 'yylval' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+	             yylval = *yypushed_val;
+	             ~~~~~~~^~~~~~~~~~~~~~~
+	    x8.c: In function 'x8_pull_parse':
+	    x8.c:1233:16: error: 'yylval' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+	             yylval = *yypushed_val;
+	             ~~~~~~~^~~~~~~~~~~~~~~
+
+	See also 9645a2b20ee7cbfa8bb4ac2237f87d598afe349c.
+
+	* tests/local.at (AT_PUSH_IF): New.
+	(AT_BISON_OPTION_POPDEFS): Pop it, and pop AT_PURE_IF.
+	* tests/headers.at (Several parsers, Several parsers): Disable these
+	warnings when in push parser.
+
+2018-09-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: don't issue the definition of symbol_type when not used
+	Currently, in glr.cc, we emit the definitions of basic_symbol and
+	symbol_type, although there are not used.
+
+	* data/c++.m4 (b4_public_types_declare): Extract these definitions from
+	here, and move them...
+	(b4_symbol_type_declare): here.
+	(b4_public_types_declare): Also remove the definition of the symbol
+	constructors.
+	* data/lalr1.cc (b4_shared_declarations): Adjust: call
+	b4_symbol_type_declare and b4_symbol_constructor_declare.
+
+2018-09-02  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: beware of shell portability issues
+	Some shells don't grok `local var=$val` very well: they need the rhs
+	to be quoted.
+
+	    ./examples/test: 66: local: you.,: bad variable name
+	    FAIL examples/variant.test (exit status: 2)
+
+	Reported by Étienne Renault.
+
+	* examples/test (run): Quote the values in 'local' assignments.
+
+2018-08-31  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: leave 'inline' on the definition, not the declaration
+	This is for consistency with the other uses of 'inline' in the C++
+	skeletons.  On examples/variant.yy, this change gives:
+
+	    --- examples/variant.hh	2018-08-31 07:16:57.214222580 +0200
+	    +++ examples/variant.hh	2018-08-31 07:19:52.285431997 +0200
+	    @@ -444,15 +444,15 @@
+	         typedef basic_symbol<by_type> symbol_type;
+
+	         // Symbol constructors declarations.
+	    -    static inline
+	    +    static
+	         symbol_type
+	         make_END_OF_FILE (const location_type& l);
+
+	    -    static inline
+	    +    static
+	         symbol_type
+	         make_TEXT (const ::std::string& v, const location_type& l);
+
+	    -    static inline
+	    +    static
+	         symbol_type
+	         make_NUMBER (const int& v, const location_type& l);
+
+	    @@ -945,19 +945,23 @@
+	         };
+	         return static_cast<token_type> (yytoken_number_[type]);
+	       }
+	    +
+	       // Implementation of make_symbol for each symbol type.
+	    +  inline
+	       parser::symbol_type
+	       parser::make_END_OF_FILE (const location_type& l)
+	       {
+	         return symbol_type (token::END_OF_FILE, l);
+	       }
+
+	    +  inline
+	       parser::symbol_type
+	       parser::make_TEXT (const ::std::string& v, const location_type& l)
+	       {
+	         return symbol_type (token::TEXT, v, l);
+	       }
+
+	    +  inline
+	       parser::symbol_type
+	       parser::make_NUMBER (const int& v, const location_type& l)
+	       {
+	    @@ -967,7 +971,7 @@
+
+	     } // yy
+	    -#line 971 "examples/variant.hh" // lalr1.cc:380
+	    +#line 975 "examples/variant.hh" // lalr1.cc:380
+
+	and no changes on variant.cc.
+
+	* data/c++.m4 (b4_public_types_define): Formatting changes.
+	* data/variant.hh (b4_symbol_value_template_, b4_symbol_constructor_declare_):
+	Move the 'inline' from declaration to implementation.
+
+2018-08-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: style changes
+	Instead of
+
+	    parser::stack_symbol_type::stack_symbol_type (const stack_symbol_type& that)
+	      : super_type (that.state, that.location)
+	    {
+	      value = that.value;
+	    }
+
+	generate
+
+	    parser::stack_symbol_type::stack_symbol_type (const stack_symbol_type& that)
+	      : super_type (that.state, that.value, that.location)
+	    {}
+
+	* data/lalr1.cc (stack_symbol_type): Improve the copy ctor, when not
+	using the variants.
+	(yypush_): Rename arguments for clarity.
+
+2018-08-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: the assignment operator does not have to be const
+	* data/lalr1.cc (stack_symbol_type::operator=): Don't copy the
+	argument, move it.
+
+2018-08-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: style changes
+	* tests/c++.at (C++ Variant-based Symbols): Rename as...
+	(C++ Variant-based Symbols Unit Tests): this.
+	Comment/style changes.
+
+2018-08-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2018-08-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.1
+	* NEWS: Record release date.
+
+2018-08-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: tabs are ok in a Makefile
+	* cfg.mk: TABs are ok in examples/calc++/Makefile.
+
+2018-08-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: make sure the generated header is self container
+	See the previous commit.
+
+	* data/lalr1.cc: Be sure to define YY_NULLPTR.
+	* tests/headers.at: Check the case that was failing.
+
+2018-08-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: check that headers are sane
+	The header generated for variants with assertions but without
+	locations, is not self-contained.  Prepare a check for this.
+
+	* tests/headers.at (Sane headers): New, extracted from...
+	(Several parsers): here.
+
+2018-08-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	"C++: restore copy-constructor for stack_symbol_type
+	Benchmarks show that it is more efficient to keep this copy
+	constructor, rather than forcing the use of the default constructor
+	and then assignment.
+
+	This reverts commit 7ab25ad0208d00f509613e1e151aa3043cf2862f.
+
+2018-08-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: calc++: a Makefile and a README
+	* examples/calc++/Makefile, examples/calc++/README: New.
+	* examples/calc++/local.mk: Ship and install them.
+	* doc/bison.texi: Formatting changes.
+
+2018-08-25  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+
+2018-08-25  Jiahao Li  <jiahaoli@fb.com>
+
+	variant: fix uninitialized memory access in `variant<>`
+	Currently, in bison's C++ parser template (`lalr.cc`), the `variant<>`
+	struct's `build()` method uses placement-new in the form `new (...) T`
+	to initialize a variant type.  However, for POD variant types, this
+	will leave the memory space uninitialized.  If we subsequently tries
+	to `::move` into a variant object in such state, the call can trigger
+	clang's undefined behavior sanitizer due to accessing the
+	uninitialized memory.
+
+	https://lists.gnu.org/archive/html/bison-patches/2018-08/msg00098.html
+
+	* data/variant.hh (build): Always initialize the stored value.
+
+2018-08-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2018-08-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: calc++: minor improvements
+	* doc/bison.texi (A Complete C++ Example): Prefer throw exceptions
+	from the scanner.
+	Show the invalid characters.
+	Since the scanner sends exceptions, it no longer needs to report
+	errors, so we can get rid of the driver's routine to report error,
+	do it in yyerror.
+	Use @group/@end group to improve rendering.
+
+2018-08-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: calc++: make sure the file name in location is set
+	Reported by Hans Åberg.
+	http://lists.gnu.org/archive/html/bug-bison/2018-08/msg00039.html
+
+	* doc/bison.texi (A Complete C++ Example): Move the token's location
+	from the scanner to the driver.
+
+2018-08-24  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: calc++: remove prefixes
+	This example uses the calcxx_ prefix for each class.  That's uselessly
+	heavy.
+
+	* doc/bison.texi (A Complete C++ Example): Simplify the class names.
+	Since now 'driver' denotes the class, use 'drv' for the values.
+	Formatting changes.
+
+2018-08-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: fix the leading empty line
+	* examples/extexi: Really avoid the first empty line.
+	Remove useless `next`.
+
+2018-08-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: shorten the name of the calc++ files
+	* doc/bison.texi: Turn the calc++- prefix into calc++/.
+	* examples/extexi (%file_wanted): Replace with
+	(&file_wanted): this.
+	* examples/calc++/local.mk: Adjust.
+
+2018-08-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: disable -Wmaybe-uninitialized in some tests
+	On these tests, at -O2 and above, GCC 8 complains that yylval may be
+	uninitialized.  But it seems wrong: it is initialized.  Rather than
+	turning off the warning in the skeleton (hence possibility hiding
+	relevant warnings of user parsers), let's turn it off in the tests
+	only.
+
+	    163: parse.error=verbose and consistent errors:      FAILED (conflicts.at:625)
+	    165: parse.error=verbose and consistent errors: lr.default-reduction=consistent FAILED (conflicts.at:635)
+	    166: parse.error=verbose and consistent errors: lr.default-reduction=accepting FAILED (conflicts.at:641)
+	    167: parse.error=verbose and consistent errors: lr.type=canonical-lr FAILED (conflicts.at:645)
+	    168: parse.error=verbose and consistent errors: parse.lac=full FAILED (conflicts.at:650)
+	    169: parse.error=verbose and consistent errors: parse.lac=full lr.default-reduction=accepting FAILED (conflicts.at:655)
+
+	We get:
+
+	    input.c: In function 'yyparse':
+	    input.c:980:9: error: 'yylval' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+	     YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
+	             ^~~~~~
+	    cc1: all warnings being treated as errors
+
+	See https://lists.gnu.org/archive/html/bison-patches/2018-08/msg00063.html.
+
+	* tests/conflicts.at (AT_CONSISTENT_ERRORS_CHECK): Disable
+	-Wmaybe-uninitialized.
+
+2018-08-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: clarify that the push parser object can be reused
+	Suggested by Rici Lake.
+	https://lists.gnu.org/archive/html/bug-bison/2018-08/msg00033.html
+
+	* doc/bison.texi: Complete description of the first node in the main
+	@menu.
+	(Push Decl): Remove the 'experimental' warnings about push parser.
+	Clarify that the push parser object can be reused in several parses.
+
+2018-08-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr1.cc: support compilation with disabled support for exceptions
+	Reported by Brooks Moses <bmoses@google.com>
+	http://lists.gnu.org/archive/html/bison-patches/2018-02/msg00000.html
+
+	* data/lalr1.cc (YY_EXCEPTIONS): New.
+	Use it to disable try/catch clauses.
+
+	* doc/bison.texi (C++ Parser Interface): Document it.
+
+	* configure.ac (CXXFLAGS_NO_EXCEPTIONS): New.
+	* tests/atlocal.in: Receive it.
+	* tests/local.at (AT_FULL_COMPILE, AT_LANG_COMPILE):
+	Accept a new argument, extra compiler flags.
+	* tests/calc.at: Run the C++ calculator with exception support disabled.
+
+2018-08-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: add empty lines
+	Currently the examples are too dense, let's put empty lines where
+	'#line' would be issued.  And also remove some spurious empty
+	lines (remains from @group, @end group, etc.).
+
+	* examples/extexi: Do that.
+	* examples/local.mk (extexiFLAGS): Rename as...
+	(EXTEXIFLAGS): this.
+
+2018-08-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: check the variant example
+	* examples/mfcalc/local.mk, examples/rpcalc/local.mk: Define the
+	programs in a more natural order, source, preproc, then linker.
+
+	* examples/test: Be ready to work on programs that are not in
+	a subdir.
+	* examples/variant.test: New.
+	* examples/local.mk: Use it.
+	* examples/variant.yy: Don't use 0 for nullptr.
+	Use a more natural output for a list of string.
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: fix portability issue with MSVC 2017
+	Visual Studio issues a C4146 warning on '-static_cast<unsigned>(rhs)'.
+	The code is weird, probably to cope with INT_MIN.  Let's go back to
+	using std::max (whose header is still included in position.hh...) like
+	originally, but with the needed casts.
+
+	Reported by 長田偉伸, and with help from Rici Lake.
+
+	See also
+	http://lists.gnu.org/archive/html/bug-bison/2013-02/msg00000.html
+	and commit 75ae8299840bbd854fa2474d38402bbb933c6511.
+
+	* data/location.cc (position::add_): Take min as an int.
+	Use std::max.
+	While here, get rid of a couple of useless inlines.
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: fix concurrent build failure
+	Reported by Dengke Du and Robert Yang.
+	https://lists.gnu.org/archive/html/bison-patches/2017-07/msg00000.html
+
+	* src/local.mk (src/yacc): Make sure the directory exists.
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	lalr1.cc: remove debug comment
+	* data/lalr1.cc: Remove a comment about indentation.
+	I'm not sure it would be nice to indent even more, it's already quite
+	of the right.
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: fix the name of the GFDL section
+	Reported by dine <2500418497@qq.com>.
+	http://lists.gnu.org/archive/html/bug-bison/2016-10/msg00000.html
+
+	I mirrored what the Coreutils do.
+
+	* doc/bison.texi (Copying This Manual): Rename as...
+	(GNU Free Documentation License): this, since that the name we
+	used in the preamble.
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: clarify the destructor selection example
+	Reported by Gary L Peskin.
+	http://lists.gnu.org/archive/html/help-bison/2016-02/msg00000.html
+
+	* doc/bison.texi (Destructor Decl): here.
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	portability: don't use _Pragma with ICC
+	ICC defines __GNUC__ [1], but does not support GCC's _Pragma for
+	diagnostics.  As a matter of fact, I believe it does not support
+	_Pragma at all (only #pragma) [2].
+
+	Reported by Maxim Prohorenko.
+	https://savannah.gnu.org/support/index.php?108339
+
+	[1] https://software.intel.com/en-us/cpp-compiler-18.0-developer-guide-and-reference-gcc-compatibility-and-interoperability
+	[2] https://software.intel.com/en-us/cpp-compiler-18.0-developer-guide-and-reference-pragmas
+
+	* data/c.m4 (YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN): Exclude ICC from
+	the club.
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: typed mid-rule actions
+	* doc/bison.texi (Mid-Rule Actions): Restructure to insert...
+	(Typed Mid-Rule Actions): this new section.
+	Move the manual translation of mid-rule actions into regular actions
+	to...
+	(Mid-Rule Action Translation): here.
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	escape properly the file names in #line for printer/destructor
+	Reported by Jannick.
+	http://lists.gnu.org/archive/html/bug-bison/2017-05/msg00001.html
+
+	"Amusingly" enough, we have the same problem with %defines when the
+	parser file name has backslashes or quotes: we generate #includes with
+	an incorrect C string.
+
+	* src/output.c (prepare_symbol_definitions): Escape properly the file
+	names before passing them to M4.
+	* data/bison.m4, data/lalr1.cc: Don't simply put the file name between
+	two quotes (that should have been strong enough a smell...), expect
+	the string to be properly quoted.
+	* tests/synclines.at: New tests to check this.
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix title and improve quoting
+	* tests/synclines.at: here.
+	Also, prefer '%code' to ;%{...%}' for yylex/yyerror prototypes.
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes
+	* src/output.c: here.
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes
+	* src/scan-code.l: here.
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes
+	* src/parse-gram.y: Declare iterator within the for-loop.
+
+2018-08-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: style changes
+	* tests/c++.at, tests/local.at: Formatting and title changes.
+
+2018-08-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	reader: simplify the search of the start symbol
+	Suggested by Paul Eggert.
+
+	* src/reader.c (find_start_symbol): Don't check 'res', we know it is
+	not null.  That suffices to avoid the GCC warnings.
+	* bootstrap.conf: We don't need 'assume', which doesn't exist anyway.
+
+2018-08-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: fix GCC8 warnings about uninitialized values
+	In 0931d14728fb4a2272399f2c927ae78e2607b4fb I removed too many
+	initializations from some ctors: some were not about base ctors, but
+	about member variables.  In fact, more of them were missing to please
+	GCC 8.
+
+	While at it, generate more natural code for C++ without variant:
+	instead of
+
+	    template <typename Base>
+	    parser::basic_symbol<Base>::basic_symbol (const basic_symbol& other)
+	      : Base (other)
+	      , value ()
+	    {
+	      value = other.value
+	    }
+
+	generate
+
+	    template <typename Base>
+	    parser::basic_symbol<Base>::basic_symbol (const basic_symbol& other)
+	      : Base (other)
+	      , value (other.value)
+	    {}
+
+	* data/c++.m4 (basic_symbol::basic_symbol): Always initialize 'value',
+	it might be a POD without a ctor.
+	* data/lalr1.cc (stack_symbol_type::stack_symbol_type): Likewise.
+	* data/variant.hh (variant::variant): Default initialize the buffer too.
+
+2018-08-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: style: use %empty
+	* tests/conflicts.at: here.
+
+2018-08-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix warnings in push mode
+	Fix warning with GCC 8, -DNDEBUG.
+
+	    422. push.at:83: testing Multiple impure instances ...
+	    input.y: In function 'main':
+	    input.c:1022:12: error: potential null pointer dereference [-Werror=null-dereference]
+	       if (!yyps->yynew && yyps->yyss != yyps->yyssa)
+	            ~~~~^~~~~~~
+
+	* data/yacc.c (pstate_delete): Do nothing if called on null pointer.
+
+2018-08-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: avoid GCC 8 warnings
+	GCC 8 issues warnings whose root cause was a bit hard to find.
+
+	    calc.cc: In member function 'virtual int yy::parser::parse()':
+	    calc.cc:810:18: warning: '*((void*)&<anonymous> +8)' may be used uninitialized in this function [-Wmaybe-uninitialized]
+	         , location (l)
+	                      ^
+	    calc.cc: In member function 'void yy::parser::yypush_(const char*, yy::parser::stack_symbol_type&)':
+	    calc.cc:810:18: warning: '*((void*)&<anonymous> +8)' may be used uninitialized in this function [-Wmaybe-uninitialized]
+	         , location (l)
+	                      ^
+	    calc.cc: In member function 'void yy::parser::yypush_(const char*, yy::parser::state_type, yy::parser::symbol_type&)':
+	    calc.cc:810:18: warning: '*((void*)&<anonymous> +8)' may be used uninitialized in this function [-Wmaybe-uninitialized]
+	         , location (l)
+	                      ^
+
+	The problem is with locations that don't have a constructor, such as
+	Span (in calc.cc) which is POD.  It is POD on purpose: so that we can
+	use that structure to test glr.cc which cannot use non POD in its
+	(C) stacks.
+
+	* data/c++.m4 (basic_symbol): Also ensure that 'location' is
+	initialized.
+
+2018-08-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: avoid compiler warnings
+	* tests/calc.at (AT_CALC_MAIN): Declare yyparse and operator<< in an
+	unnamed namespace to avoid "not declared" warnings (clang
+	-Weverything).
+	Remove useless prototypes.
+
+2018-08-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	build: work around GCC warnings on Flex code
+	With GCC 7.3.0 and Flex 2.6.4, we get warnings on all the generated
+	scanners:
+
+	    examples/calc++/calc++-scanner.cc: In function 'void yyrestart(FILE*)':
+	    examples/calc++/calc++-scanner.cc:1611:20: error: potential null pointer dereference [-Werror=null-dereference]
+	     /* %endif */
+	      ~~~~~~~~~~~       ^
+	    examples/calc++/calc++-scanner.cc:1607:19: error: potential null pointer dereference [-Werror=null-dereference]
+	     /* %if-c-only */
+	      ~~~~~~~~~~~~~~~  ^
+	    examples/calc++/calc++-scanner.cc:1611:20: error: potential null pointer dereference [-Werror=null-dereference]
+	     /* %endif */
+	      ~~~~~~~~~~~       ^
+	    examples/calc++/calc++-scanner.cc:1607:19: error: potential null pointer dereference [-Werror=null-dereference]
+	     /* %if-c-only */
+	      ~~~~~~~~~~~~~~~  ^
+	    cc1plus: all warnings being treated as errors
+
+	Obviously the lines are incorrect, and the warnings are emitted twice.
+	Still, let's get rid of these warnings.
+
+	* doc/bison.texi, src/flex-scanner.h: Disable these warnings in code
+	generated by Flex.
+
+2018-08-15  Akim Demaille  <akim.demaille@gmail.com>
+
+	fix incorrect C code
+	Commit 3df32101e7978eaafa63bce8908de3dcae4d9cda introduced invalid C
+	code.  Caught by GCC 7.3.0.
+
+	* bootstrap.conf (gnulib_modules): We need assume.
+	* src/reader.c (find_start_symbol): Fix the signature (too much C++,
+	sorry...).
+	Prefer 'assume' to 'assert', so that we don't have these warnings even
+	when NDEBUG is defined.
+
+2018-08-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: fix Englishoes
+	* examples/README: Fix my mistakes.
+
+2018-08-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	examples: ship and install variant.yy
+	This file was meant to be shown as an example.  Install it.
+
+	* README, data/README: Put Emacs metadata in the final section.
+	* examples/README: New.
+	* examples/variant.yy: Use %empty.
+	* examples/local.mk: Install both these files.
+
+2018-08-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: remove useless copy-constructor
+	We currently generate copy constructors such as the following
+	one (taken from examples/variant.yy):
+
+	    parser::stack_symbol_type::stack_symbol_type (const stack_symbol_type& that)
+	      : super_type (that.state, that.location)
+	    {
+	      switch (that.type_get ())
+	      {
+	        case 3: // TEXT
+	        case 8: // item
+	          value.copy< ::std::string > (that.value);
+	          break;
+
+	        case 7: // list
+	          value.copy< ::std::vector<std::string> > (that.value);
+	          break;
+
+	        case 4: // NUMBER
+	          value.copy< int > (that.value);
+	          break;
+
+	        default:
+	          break;
+	      }
+	    }
+
+	they are actually useless: we never need it.
+
+	* data/lalr1.cc: Don't generate the stack_symbol_type copy ctor.
+
+2018-08-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: symbol constructors: add a missing reference
+	Fix a typo so that instead of
+
+	    basic_symbol::basic_symbol (typename Base::kind_type t, const int v)
+
+	we now generate
+
+	    basic_symbol::basic_symbol (typename Base::kind_type t, const int& v)
+
+	* data/variant.hh (b4_basic_symbol_constructor_declare)
+	(b4_basic_symbol_constructor_define): Add missing reference.
+
+2018-08-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: remove useless calls to the base default constructor
+	* data/c++.m4, data/stack.hh, data/variant.hh: here.
+
+2018-08-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: prefer size_type to unsigned for indexes
+	* data/stack.hh (size_type): New, based on the container type.
+
+2018-08-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-08-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: m4: remove useless reference to 'int' in integral types
+	* m4/cxx.m4: Prefer 'unsigned' to 'unsigned int'.
+
+2018-08-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: doc: remove useless reference to 'int' in integral types
+	* doc/bison.texi: Prefer 'unsigned' to 'unsigned int'.  Likewise for
+	long and short.
+
+2018-08-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: lib: remove useless reference to 'int' in integral types
+	* lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
+	* lib/bitset_stats.c, lib/bitsetv-print.c, lib/bitsetv.c,
+	* lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/timevar.c,
+	* lib/vbitset.c:
+	Prefer 'unsigned' to 'unsigned int'.  Likewise for long and short.
+
+2018-08-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: src: remove useless reference to 'int' in integral types
+	* src/AnnotationList.c, src/AnnotationList.h, src/InadequacyList.h,
+	* src/closure.c, src/closure.h, src/gram.c, src/gram.h, src/ielr.c,
+	* src/location.c, src/output.c, src/reader.c, src/relation.c,
+	* src/scan-code.l, src/scan-gram.l, src/tables.c, src/tables.h:
+	Prefer 'unsigned' to 'unsigned int'.  Likewise for long and short.
+
+2018-08-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: tests: remove useless reference to 'int' in integral types
+	* tests/actions.at, tests/cxx-type.at: Prefer 'unsigned' to 'unsigned
+	int'.  Likewise for long and short.
+
+2018-08-14  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: data: remove useless reference to 'int' in integral types
+	* data/c.m4, data/glr.c, data/yacc.c: Prefer 'unsigned' to 'unsigned
+	int'.  Likewise for long and short.
+
+2018-08-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+	* bootstrap.conf: gnulib_mk is defined again by bootstrap.
+
+2018-08-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: avoid type aliases
+	* doc/bison.texi (C++ Location Values): Use 'unsigned' instead of
+	'uint'.
+
+2018-08-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: remove the "experimental" warning for some features
+	Several features were flagged 'experimental' and waiting for user
+	feedback to 'stabilize', but i. AFAIK, no user ever reported anything
+	about them, ii. they'be been here long enough to prove they don't do
+	harm.
+
+	* doc/bison.texi: No longer experimental: default %printer and
+	%destructor (typed: <*> and untyped: <>), %define api.value.type union
+	and variant, Java parsers, XML output, LR family (lr, ielr, lalr),
+	semantic predicates (%?).
+
+2018-08-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: check variants and typed mid-rule actions
+	See
+	http://lists.gnu.org/archive/html/bison-patches/2018-08/msg00013.html
+
+	* tests/c++.at (Variants and Typed Mid-rule Actions): New.
+
+2018-08-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix minor issues
+	* tests/actions.at: Fix some log messages.
+	Prefer #error to fprintf: it fixes the invalid use of yyoutput in
+	%destructor, and it is an even stronger check: that the code is not
+	even emitted.  The portability of #error is not really a problem here,
+	since the point is anyway to have the compilation fail.
+
+2018-08-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	c++: variant: add more assertions
+	* data/variant.hh (variant::as): Check yytypeid_ before
+	checking *yytypeid_.
+
+2018-08-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: -fcaret is enabled by default
+	* doc/bison.texi (Mid-Rule Action Translation): So no need to pass it.
+
+2018-08-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes
+	* src/closure.c, src/conflicts.c: here.
+
+2018-08-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2018-08-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	rule actions cannot be typed
+	Make sure that we cannot apply a type to the (main) action of a rule.
+
+	* src/reader.c (grammar_rule_check): Issue the warning.
+	* tests/input.at (Cannot type action): Check the warning.
+
+2018-08-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	warn about typed mid-rule actions in Yacc mode
+	* src/reader.c (grammar_current_rule_action_append): Warn.
+	* tests/input.at (AT_CHECK_UNUSED_VALUES): Check.
+
+2018-08-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: check typed mid-rule actions
+	* tests/input.at (_AT_UNUSED_VALUES_DECLARATIONS): Check
+	typed mid-rule actions.
+	* tests/report.at (Reports): Check that types of typed mid-rule
+	actions are reported.
+	* tests/actions.at (Typed mid-rule actions): Check that
+	the values of typed mid-rule actions are correct.
+
+2018-08-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-08-11  Akim Demaille  <akim.demaille@gmail.com>
+
+	add support for typed mid-rule actions
+	Prompted on Piotr Marcińczyk's message:
+	http://lists.gnu.org/archive/html/bug-bison/2017-06/msg00000.html.
+	See also http://lists.gnu.org/archive/html/bug-bison/2018-06/msg00001.html.
+
+	Because their type is unknown to Bison, the values of midrule actions are
+	not treated like the others: they don't have %printer and %destructor
+	support.  In addition, in C++, (Bison) variants cannot work properly.
+
+	Typed midrule actions address these issues.  Instead of:
+
+	    exp: { $<ival>$ = 1; } { $<ival>$ = 2; }   { $$ = $<ival>1 + $<ival>2; }
+
+	write:
+
+	    exp: <ival>{ $$ = 1; } <ival>{ $$ = 2; }   { $$ = $1 + $2; }
+
+	* src/scan-code.h, src/scan-code.l (code_props): Add a `type` field to
+	record the declared type of an action.
+	(code_props_rule_action_init): Add a type argument.
+	* src/parse-gram.y: Accept an optional type tag for actions.
+	* src/reader.h, src/reader.c (grammar_current_rule_action_append): Add
+	a type argument.
+	(grammar_midrule_action): When a mid-rule is typed, pass its type to
+	the defined dummy non terminal symbol.
+
+2018-08-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: make room for more cases
+	* tests/input.at (AT_CHECK_UNUSED_VALUES): Add an empty line
+	to allow more symbols, and adjust line numbers.
+	Use a more consistent m4 quoting scheme.
+
+2018-08-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	warnings: address -Wnull-dereference in reader.c
+	Based on a patch by David Michael.
+	http://lists.gnu.org/archive/html/bison-patches/2018-07/msg00000.html
+
+	* src/reader.c (find_start): New, extracted from...
+	(check_and_convert_grammar): here.
+
+2018-08-05  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: ielr: reduce scopes
+	* src/ielr.c: Use modern C to reduce the scopes of some variables.
+
+2018-07-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: move to C99 to reduce scopes
+	* src/symtab.c, src/reader.c: Freely mix statements and variable
+	definitions.  And use for-loops with initializers.
+
+2018-07-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: split a function in two
+	grammar_current_rule_action_append was used in two different places:
+	for actual action (`{...}`), and for predicates (`%?{...}`).  Let's
+	split this in two different functions.
+
+	* src/reader.h, src/reader.c (grammar_current_rule_predicate_append): New.
+	Extracted from...
+	(grammar_current_rule_action_append): here.
+	Remove arguments that don't apply.
+	Adjust dependencies.
+
+2018-07-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix typo
+	* tests/actions.at: Remove (harmless) stray character.
+
+2018-07-26  Akim Demaille  <akim.demaille@gmail.com>
+
+	print: remove unused function
+	This function was unused since 1991's original import by
+	rms (e06f0c34427faedc7afbec9554adbffc4c87312e).
+
+	* src/print.c (print_token): Remove.
+
+2018-06-23  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: fix Texinfo syntax error
+	* doc/bison.texi (Understanding): here.
+
+2018-06-22  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: we now show the type of the symbols
+	* doc/bison.texi (Understanding Your Parser): Update the output
+	from Bison.
+	Use types in the example, and show them in the report.
+	* NEWS: Update.
+
+2018-06-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: check the typed symbols in the reports
+	* tests/report.at: New.
+	* tests/local.mk, tests/testsuite.at: Use it.
+
+2018-06-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	report: display the type of the symbols
+	* src/print.c (print_nonterminal_symbols, print_terminal_symbols):
+	Also should the type of the symbols.
+
+2018-06-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes
+	* src/print.c (print_terminal_symbols, print_nonterminal_symbols): Here.
+
+2018-06-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: split large function
+	* src/print.c (print_grammar): Split into...
+	(print_terminal_symbols, print_nonterminal_symbols): these.
+	Adjust dependencies.
+
+2018-06-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: reduce scopes
+	* src/print.c (print_grammar): Shorten scopes.
+
+2018-06-18  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+	Fixes the `make install-pdf` problem reported by Hans Åberg in
+	http://lists.gnu.org/archive/html/bug-bison/2018-06/msg00000.html
+	that had already been fixed by Joel E. Denny in
+	http://lists.gnu.org/archive/html/bug-bison/2012-04/msg00011.html
+	Final fix in
+	http://lists.gnu.org/archive/html/bug-gnulib/2018-06/msg00019.html
+
+2018-06-17  Akim Demaille  <akim.demaille@gmail.com>
+
+	Merge maint into master
+	* upstream/maint: (48 commits)
+	  THANKS: update an address
+	  tests: adjust syncline tests to GCC 7
+	  glr: fix improperly placed synclines
+	  bison: be git grep friendly
+	  Replace ftp with https
+	  maint: post-release administrivia
+	  version 3.0.5
+	  bison: style: indentation fixes
+	  regen
+	  bison: please address sanitizer
+	  C++: style: fix indentation
+	  NEWS: update
+	  C++: style: prefer `unsigned` to `unsigned int`
+	  C++: style: space before paren
+	  C++: fix -Wdeprecated warnings
+	  tests: fix -Wdeprecated warning
+	  maint: update syntax-check exclusions
+	  autoconf: update
+	  regen
+	  Update copyright years
+	  ...
+
+2018-05-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	THANKS: update an address
+
+2018-05-30  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: adjust syncline tests to GCC 7
+	GCC 7 also underlines the error.
+
+	    syncline.c:4:2: error: #error "4"
+	     #error "4"
+	      ^~~~~
+
+	* tests/synclines.at (_AT_SYNCLINES_COMPILE): Remove tildas from GCC 7.
+
+2018-05-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	glr: fix improperly placed synclines
+	Predicates with GLR are issued with synclines in the middle of C code:
+
+	          case 2:
+	      if (! (#line 6 "sempred.y" /* glr.c:816  */
+	      new_syntax)) YYERROR;
+	    #line 793 "sempred.tab.c" /* glr.c:816  */
+	      break;
+
+	Reported by Rici Lake.
+	http://lists.gnu.org/archive/html/bug-bison/2018-05/msg00033.html
+
+	* data/c.m4 (b4_predicate_case): Be sure to start on column 0.
+	It would be nicer if b4_syncline could ensure this by itself
+	(that would avoid ugly code when synclines are disabled), but that's
+	way more work.
+	* tests/glr-regression.at (Predicates): Be a real end-to-end test.
+	This would have caught this error years ago...
+
+2018-05-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	bison: be git grep friendly
+	* src/output.c (user_actions_output): Make calls to b4_case and
+	b4_predicate_case explicit.
+
+2018-05-29  Akim Demaille  <akim.demaille@gmail.com>
+
+	Replace ftp with https
+	Reported by Hans Åberg.
+
+	* README, cfg.mk, doc/bison.texi: here.
+
+2018-05-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2018-05-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	version 3.0.5
+	* NEWS: Record release date.
+
+2018-05-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	bison: style: indentation fixes
+	* src/parse-gram.y: here.
+
+2018-05-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-05-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	bison: please address sanitizer
+	* src/parse-gram.y (add_param): Asan does not like that the second
+	argument of strspn is not 0-terminated.
+
+2018-05-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: style: fix indentation
+	* data/variant.hh (b4_symbol_variant): De-indent, as the callers are
+	indented.
+
+2018-05-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	NEWS: update
+
+2018-05-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: style: prefer `unsigned` to `unsigned int`
+	* data/c++.m4: here.
+
+2018-05-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: style: space before paren
+	* data/c++.m4, data/lalr1.cc: here.
+
+2018-05-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: fix -Wdeprecated warnings
+	For instance on test 99:
+
+	    In file included from @@.cc:56:
+	    @@.hh:409:26: error: definition of implicit copy constructor for
+	                         'stack_symbol_type' is deprecated because it
+	                         has a user-declared copy assignment operator
+	                         [-Werror,-Wdeprecated]
+	          stack_symbol_type& operator= (const stack_symbol_type& that);
+	                         ^
+
+	Reported by Derek Clegg.
+	https://lists.gnu.org/archive/html/bison-patches/2018-05/msg00036.html
+
+	* configure.ac (warn_tests): Add -Wdeprecated.
+	* data/lalr1.cc (stack_symbol_type): Add an explicit copy ctor.
+	We cannot rely on the explicit default implementation (`= default`)
+	as we support C++ 98.
+
+2018-05-27  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: fix -Wdeprecated warning
+	With recent compilers:
+
+	    input.yy:49:5: error: definition of implicit copy assignment
+	                          operator for 'Object' is deprecated because
+	                          it has a user-declared destructor
+	                          [-Werror,-Wdeprecated]
+	        ~Object ()
+	        ^
+	    input.yy:130:35: note: in implicit copy assignment operator for
+	                           'Object' first required here
+	        { yylhs.value.as< Object > () = yystack_[0].value.as< Object > (); }
+
+	* tests/c++.at (Object): Add missing assignment operator.
+
+2018-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	maint: update syntax-check exclusions
+	sc_two_space_separator_in_usage complains about bootstrap:
+
+	    two_space_separator_in_usage
+	    /Users/akim/src/gnu/bison/bootstrap:905:   --aux-dir $build_aux\
+	    /Users/akim/src/gnu/bison/bootstrap:906:   --doc-base $doc_base\
+	    /Users/akim/src/gnu/bison/bootstrap:907:   --lib $gnulib_name\
+	    /Users/akim/src/gnu/bison/bootstrap:908:   --m4-base $m4_base/\
+	    /Users/akim/src/gnu/bison/bootstrap:909:   --source-base $source_base/\
+	    /Users/akim/src/gnu/bison/bootstrap:910:   --tests-base $tests_base\
+	    /Users/akim/src/gnu/bison/bootstrap:911:   --local-dir $local_gl_dir\
+	    maint.mk: help2man requires at least two spaces between an option and its description
+
+	* cfg.mk: Exclude bootstrap from this check.
+
+2018-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	autoconf: update
+	* submodules/autoconf: Update to latest master.
+	No difference on the M4 files we use.
+
+2018-05-19  Akim Demaille  <akim.demaille@gmail.com>
+
+	regen
+
+2018-05-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	Update copyright years
+	Run `make update-copyright`.
+
+2018-05-12  Nate Guerin  <nathan.guerin@riseup.net>
+
+	Add a missing word in the documentation
+	Small patch adds the word 'to' to the documentation.
+
+2018-05-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	Examples: improve C++ style
+	* examples/variant.yy: Prefer vector to list.
+	Remove useless inline.
+
+2018-05-12  Akim Demaille  <akim.demaille@gmail.com>
+
+	Avoid compiler warnings
+	At least GCC 7.3, with -O1 or -O2 (but not -O0 or -O3) generates
+	warnings with -Wnull-dereference when using yyformat: it fails to see
+	yyformat cannot be null.
+
+	Reported by Frank Heckenbach, https://savannah.gnu.org/patch/?9620.
+
+	* configure.ac: Use -Wnull-dereference if supported.
+	* data/glr.c, data/lalr1.cc, data/yacc.c: Define yyformat in such
+	a way that GCC cannot not see that yyformat is defined.
+	Using `default: abort();` also addresses the issue, but forces
+	the inclusion of `stdlib.h`, which we avoid.
+
+2018-05-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: fix uses of `inline`
+	Sometimes `inline` would be used in *.cc files on symbols that are not
+	exported (useless but harmless), and sometimes on exported symbols
+	such as the constructor of syntax_error (harmful: linking fails).
+
+	Reported several times, including:
+
+	- by Dennis T
+	  http://lists.gnu.org/archive/html/bug-bison/2016-03/msg00002.html
+	- by Frank Heckenbach
+	  https://savannah.gnu.org/patch/?9616
+
+	* data/c++.m4 (b4_inline): New: expands to `inline` or nothing.
+	Use it where appropriate.
+	* data/lalr1.cc: Use it where appropriate.
+
+	* tests/c++.at (Syntax error as exception): Put the scanner in another
+	compilation unit to exercise the constructor of syntax_error.
+
+2018-05-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: remove useless `inline` in CC files
+	* data/glr.cc, data/lalr1.cc: Remove `inline` from implementations
+	that are not in headers.
+
+2018-05-10  Akim Demaille  <akim.demaille@gmail.com>
+
+	C++: remove useless `inline` on templates
+	Templates are implicitly `inline`.
+
+	* data/c++.m4, data/lalr1.cc: Remove `inline` from templates.
+
+2018-05-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	style: don't use std::endl
+	* data/lalr1.cc, doc/bison.texi, etc/bench.pl.in, examples/variant.yy,
+	* tests/actions.at, tests/atlocal.in, tests/c++.at, tests/headers.at,
+	* tests/local.at, tests/types.at:
+	Don't use std::endl, it flushes uselessly, and is considered bad
+	style.
+
+2018-05-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	doc: wrap
+	* README-hacking: Refill paragraphs.
+
+2018-05-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	gnulib: update
+	* README-hacking: Commit before bootstrapping.
+	* bootstrap.conf: gnulib_mk is no longer defined by bootstrap.
+	* bootstrap, gnulib, lib/.gitignore, m4/.gitignore: Update/regen.
+
+2018-05-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	tests: we might need to find gnulib headers
+	    315. calc.at:596: testing Calculator  ...
+	    ++ cat
+	    ++ test x = x1
+	    ++ set +x
+	    bison/tests/calc.at:596: bison -fno-caret -o calc.c calc.y
+	    ++ bison -fno-caret -o calc.c calc.y
+	    ++ set +x
+	    bison/tests/calc.at:596: $BISON_C_WORKS
+	    stderr:
+	    stdout:
+	    ++ set +x
+	    bison/tests/calc.at:596: $CC $CFLAGS $CPPFLAGS $LDFLAGS -o calc calc.c $LIBS
+	    ++ ccache clang-mp-6.0 -Qunused-arguments -O3 -g -Wall -Wextra -Wno-sign-compare -Wcast-align -Wdocumentation -Wformat -Wpointer-arith -Wwrite-strings -Wbad-function-cast -Wshadow -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -Wmissing-declarations -Wmissing-prototypes -Wundef -pedantic -Wsign-compare -fno-color-diagnostics -Wno-keyword-macro -Werror -Ibison/_build/6s/lib -DNDEBUG -isystem /opt/local/include -I/opt/local/include -L/opt/local/lib -o calc calc.c bison/_build/6s/lib/libbison.a -lintl -Wl,-framework -Wl,CoreFoundation
+	    stderr:
+	    In file included from calc.y:198:
+	    bison/_build/6s/lib/unistd.h:592:11: fatal error: 'getopt-pfx-core.h' file not found
+	    # include <getopt-pfx-core.h>
+	              ^~~~~~~~~~~~~~~~~~~
+	    1 error generated.
+	    stdout:
+	    bison/tests/calc.at:596: exit code was 1, expected 0
+	    315. calc.at:596: 315. Calculator  (calc.at:596): FAILED (calc.at:596)
+
+	* tests/atlocal.in (CPPFLAGS): Find gnulib's headers.
+
+2018-05-08  Akim Demaille  <akim.demaille@gmail.com>
+
+	getargs: rename argument to avoid gnulib's renaming
+	With Clang 6.0:
+
+	      CC       src/bison-getargs.o
+	    bison/src/getargs.c:67:12: error: parameter 'option' not found in the
+	                               function declaration [-Werror,-Wdocumentation]
+	     *  \param option   option being decoded.
+	               ^~~~~~
+	    bison/src/getargs.c:67:12: note: did you mean 'rpl_option'?
+
+	* src/getargs.c: Don't use `option` as a documentation argument.
+
+2017-09-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Capitalize "Polish" when it's a proper adjective
+
+2017-09-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Adjust to recent Gnulib changes
+
+2017-09-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	autoconf: update
+
+2017-09-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	gnulib: update
+
+2015-08-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	gnulib: update
+
+2015-08-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	lalr1, yacc: use the default location as initial error location
+	Currently lalr1.cc makes an out-of-bound access when trying to read @1
+	in rules with an empty rhs (i.e., when there is no @1) that raises an
+	error (YYERROR).
+
+	glr.c already gracefully handles this by using @$ as initial location
+	for the errors.  Let's do that in yacc.c and lalr1.cc.
+
+	* data/lalr1.cc, data/yacc.c: Use @$ to initialize the error location.
+	* tests/actions.at: Check that case.
+
+2015-08-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	style: formatting and comment changes
+	* data/glr.c: Avoid empty lines.
+	* data/lalr1.cc: Use the same comments as in glr.c and yacc.c.
+
+2015-08-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: style: use "unsigned", not "unsigned int"
+	This style appears to be more traditional, at least in C++.
+	For instance in the standard, [facets.examples].
+	There are occurrences using "unsigned int" too though.
+
+	* data/lalr1.cc, data/location.cc, data/stack.hh: here.
+
+2015-08-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: style: remove useless "inline" and fix space issues
+	* data/lalr1.cc, data/c++.m4: Formatting changes.
+	* data/stack.hh: Remove useless "inline".
+	Add documentation.
+	* data/location.cc: Prefer {} for empty bodies.
+
+2015-08-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: beware of additional warnings from GCC 5
+	* tests/synclines.at (AT_SYNCLINES_COMPILE): Avoid warnings about
+	unused functions.
+
+2015-08-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: beware that clang warns about "#define private public"
+	We use this trick to write some test about internal details.  But
+	since we use -Werror, clang++ 3.6 dies issueing a warning about it.
+
+	* configure.ac (warn_tests): Disable this warning.
+
+2015-08-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: update our Valgrind suppression files
+	* build-aux/linux-gnu.valgrind, build-aux/darwin11.4.0.valgrind: Rename as...
+	* build-aux/Linux.valgrind, build-aux/Darwin.valgrind: these.
+	* build-aux/Linux.valgrind: Add suppression clause.
+	* configure.ac: Update.
+	* tests/local.mk: Use it.
+
+2015-03-03  Akim Demaille  <akim@lrde.epita.fr>
+
+	doc: improve html and pdf rendering
+	* doc/bison.texi: Help html conversion to understand where the
+	function names end.
+	Beware of PDF width.
+
+2015-03-03  Akim Demaille  <akim@lrde.epita.fr>
+
+	doc: fixes in the C++ part
+	Reported by Askar Safin.
+
+	http://lists.gnu.org/archive/html/bug-bison/2015-02/msg00018.html
+	http://lists.gnu.org/archive/html/bug-bison/2015-02/msg00019.html
+
+	* doc/bison.texi (Split Symbols): Fix access to token types.
+	yylval is a pointer, so use ->.
+	Fix coding style issues: space before paren.
+
+2015-02-10  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: be robust to platforms that support UTF-8 even with LC_ALL=C
+	Because musl supports UTF-8 with LC_ALL=C, gcc produces:
+
+	  input.y: In function ‘yyparse’:
+
+	instead of:
+
+	  input.y: In function 'yyparse':
+
+	Reported by Ferdinand Thiessen.
+	http://lists.gnu.org/archive/html/bug-bison/2015-02/msg00001.html
+
+	* tests/synclines.at (AT_SYNCLINES_COMPILE): Skip syncline tests when
+	we can't trust error messages issued about a function body.
+
+2015-02-10  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: java: avoid recent Java features
+	Tests 463 and 464 fail with Java 1.4 compilers.
+
+	Reported by Michael Felt.
+	<http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00091.html>
+
+	* tests/javapush.at: Use StringBuffer instead of StringBuilder.
+
+2015-01-26  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: c++: fix symbol lookup issue
+	Sun C 5.13 SunOS_sparc 2014/10/20 reports errors on tests 430-432.
+
+	Reported by Dennis Clarke.
+	<http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00087.html>
+
+	* tests/c++.at (Variants): Be sure to emit operator<< before using it:
+	use "%code top" rather than "%code".
+	Prefer std::vector to std::list.
+	Do not define anything in std::, to avoid undefined behavior.
+
+2015-01-23  Akim Demaille  <akim@lrde.epita.fr>
+
+	Merge remote-tracking branch 'origin/maint'
+	* origin/maint:
+	  maint: post-release administrivia
+	  version 3.0.4
+	  gnulib: update
+	  build: re-enable compiler warnings, and fix them
+	  tests: c++: fix a C++03 conformance issue
+	  tests: fix a title
+	  c++: reserve 200 slots in the parser's stack
+	  tests: be more robust to unrecognized synclines, and try to recognize xlc
+	  tests: fix C++ conformance
+	  build: fix some warnings
+	  build: avoid infinite recursions on include_next
+
+2015-01-23  Akim Demaille  <akim@lrde.epita.fr>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2015-01-23  Akim Demaille  <akim@lrde.epita.fr>
+
+	version 3.0.4
+	* NEWS: Record release date.
+
+2015-01-23  Akim Demaille  <akim@lrde.epita.fr>
+
+	gnulib: update
+
+2015-01-23  Akim Demaille  <akim@lrde.epita.fr>
+
+	build: re-enable compiler warnings, and fix them
+	There are warnings (-Wextra) in generated C++ code:
+
+	  ltlparse.cc: In member function 'ltlyy::parser::symbol_number_type
+	  ltlyy::parser::by_state::type_get() const':
+	  ltlparse.cc:452:33: warning: enumeral and non-enumeral type in
+	  conditional expression
+	      return state == empty_state ? empty_symbol : yystos_[state];
+
+	Reported by Alexandre Duret-Lutz.
+
+	It turns out that -Wall and -Wextra were disabled because of a stupid
+	typo.
+
+	* configure.ac: Fix the stupid typo.
+	* data/lalr1.cc, src/AnnotationList.c, src/InadequacyList.c,
+	* src/ielr.c, src/print.c, src/scan-code.l, src/symlist.c,
+	* src/symlist.h, src/symtab.c, src/tables.c, tests/actions.at,
+	* tests/calc.at, tests/cxx-type.at, tests/glr-regression.at,
+	* tests/named-refs.at, tests/torture.at:
+	Fix warnings, mostly issues about variables used only with assertions,
+	which are disabled with -DNDEBUG.
+
+2015-01-22  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: c++: fix a C++03 conformance issue
+	This fixes test 241 on xLC:
+
+	"input.y", line 42.11: 1540-0274 (S) The name lookup for "report" did not find a declaration.
+	"input.y", line 42.11: 1540-1292 (I) Static declarations are not considered for a function call if the function is not qualified.
+
+	where report is:
+
+	  static void
+	  report (std::ostream& yyo, int ival, float fval)
+	  {
+	    yyo << "ival: " << ival << ", fval: " <<  fval;
+	  }
+
+	and line 42 is:
+
+	  %printer { report (yyo, $$,       $<fval>$); } <ival>;
+
+	It turns out that indeed this function must not be declared static,
+	<http://stackoverflow.com/a/17662745/1353549>.  Let's put it into an
+	anonymous namespace.
+
+	Reported by Thomas Jahns.
+	http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00059.html
+
+	* tests/actions.at (Qualified $$ in actions): Don't use "static",
+	prefer anonymous namespace.
+
+2015-01-20  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: fix a title
+	* tests/conflicts.at: De-overquote.
+
+2015-01-20  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: reserve 200 slots in the parser's stack
+	This is consistent with what is done with yacc.c and glr.c.  Because
+	it also avoids that the stack needs to be resized very soon, it should
+	help keeping tests about destructors more reliable.
+
+	Indeed, if the stack is created too small, very soon the C++ library
+	needs to enlarge it, which means creating a new one, copying the
+	elements from the initial one onto it, and then destroy the elements
+	of the initial stack: that would be a spurious call to a destructor.
+
+	Reported by Thomas Jahns.
+	http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00059.html
+
+	* data/stack.hh (stack::stack): Reserve 200 slots.
+	* tests/c++.at: Remove traces of stack expansions.
+
+2015-01-20  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: be more robust to unrecognized synclines, and try to recognize xlc
+	Reported by Thomas Jahns.
+	http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00059.html
+
+	* tests/synclines.at (AT_SYNCLINES_COMPILE): Rename as...
+	(_AT_SYNCLINES_COMPILE): this.
+	Try to recognize xlc locations.
+	(AT_SYNCLINES_COMPILE): New.  Skips the test if we can't read the
+	synclines.
+
+2015-01-20  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: fix C++ conformance
+	Reported by Thomas Jahns.
+	http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00059.html
+
+	* tests/c++.at (Exception safety): Add missing include.
+	Don't use const_iterator for erase.
+
+2015-01-18  Akim Demaille  <akim@lrde.epita.fr>
+
+	build: fix some warnings
+	Reported by John Horigan.
+	http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00034.html
+
+	* src/graphviz.c, src/symtab.h: Address compiler warnings.
+
+2015-01-16  Akim Demaille  <akim@lrde.epita.fr>
+
+	Merge remote-tracking branch 'origin/maint' into origin/master
+	* origin/maint:
+	  doc: minor fixes
+	  gnulib: strtoul is considered obsolete and now useless
+	  c++: avoid warnings when destructors don't use $$
+	  maint: post-release administrivia
+	  version 3.0.3
+	  gnulib: update
+
+2015-01-16  Akim Demaille  <akim@lrde.epita.fr>
+
+	build: avoid infinite recursions on include_next
+	On MacOS X 10.5 PPC with Apple's GCC 4.0.1:
+
+	  % uname -a
+	  Darwin aria.cielonegro.org 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:57:0
+	  1 PDT 2009; root:xnu-1228.15.4~1/RELEASE_PPC Power Macintosh
+	  % gcc --version
+	  powerpc-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5493)
+	  Copyright (C) 2005 Free Software Foundation, Inc.
+	  This is free software; see the source for copying conditions.  There is NO
+	  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+	building in place enters into an infinite recursion on "#include_next":
+
+	  % gmake V=1
+	  [snip]
+	  depbase=`echo lib/math.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
+	  gcc -std=gnu99    -I. -Ilib -I. -I./lib   -g -O2 -MT lib/math.o -MD -MP -MF $depbase.Tpo -c -o lib/math.o lib/math.c &&\
+	  mv -f $depbase.Tpo $depbase.Po
+	  In file included from lib/math.h:27,
+	                   from lib/math.h:27,
+	                   from lib/math.h:27,
+	                   from lib/math.h:27,
+	  [snip]
+	                   from lib/math.h:27,
+	                   from lib/math.h:27,
+	                   from lib/math.c:3:
+	  lib/math.h:27:23: error: #include nested too deeply
+	  Makefile:3414: recipe for target 'lib/math.o' failed
+	  gmake[2]: *** [lib/math.o] Error 1
+
+	Using -I./lib instead of -Ilib fixes the problem.
+
+	Reported by Pho.
+	<https://lists.gnu.org/archive/html/bison-patches/2014-01/msg00000.html>
+
+	* Makefile.am (AM_CPPFLAGS): Use -I./lib instead of -Ilib.
+
+2015-01-16  Akim Demaille  <akim@lrde.epita.fr>
+
+	doc: minor fixes
+	* doc/bison.texi: Fix warnings about colon in reference names.
+	* data/bison.m4, src/files.h: Fix comments.
+	* doc/Doxyfile.in: update.
+
+2015-01-15  Akim Demaille  <akim@lrde.epita.fr>
+
+	gnulib: strtoul is considered obsolete and now useless
+	* bootstrap.conf: here.
+
+2015-01-15  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: avoid warnings when destructors don't use $$
+	* data/c++.m4: here.
+
+2015-01-15  Akim Demaille  <akim@lrde.epita.fr>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2015-01-15  Akim Demaille  <akim@lrde.epita.fr>
+
+	version 3.0.3
+	* NEWS: Record release date.
+
+2015-01-15  Akim Demaille  <akim@lrde.epita.fr>
+
+	gnulib: update
+
+2015-01-14  Akim Demaille  <akim@lrde.epita.fr>
+
+	symbol: use the first occurrence as an LHS as defining location
+	Currently on the following grammar:
+
+	    %type <foo> foo
+	    %%
+	    start: foo | bar | "baz"
+	    foo: foo
+	    bar: bar
+
+	bison reports:
+
+	    warning: 2 nonterminals useless in grammar [-Wother]
+	    warning: 4 rules useless in grammar [-Wother]
+	    1.13-15: warning: nonterminal useless in grammar: foo [-Wother]
+	     %type <foo> foo
+	                 ^^^
+	    3.14-16: warning: nonterminal useless in grammar: bar [-Wother]
+	     start: foo | bar | "baz"
+	                  ^^^
+	    [...]
+
+	i.e., the location of the first occurrence of a symbol is taken as its
+	definition point.  In the case of nonterminals, the first occurrence
+	as a left-hand side of a rule makes more sense:
+
+	    warning: 2 nonterminals useless in grammar [-Wother]
+	    warning: 4 rules useless in grammar [-Wother]
+	    4.1-3: warning: nonterminal useless in grammar: foo [-Wother]
+	     foo: foo
+	     ^^^
+	    5.1-3: warning: nonterminal useless in grammar: bar [-Wother]
+	     bar: bar
+	     ^^^
+	    [...]
+
+	* src/symtab.h, src/symtab.c (symbol::location_of_lhs): New.
+	(symbol_location_as_lhs_set): New.
+	* src/parse-gram.y (current_lhs): Use it.
+	* tests/reduce.at: Update locations.
+
+2015-01-14  Akim Demaille  <akim@lrde.epita.fr>
+
+	reduce: don't complain about rules whose lhs is useless
+	In the following grammar, the 'exp' nonterminal is trivially useless.
+	So, of course, its rules are useless too.
+
+	    %%
+	    input: '0' | exp
+	    exp: exp '+' exp | exp '-' exp | '(' exp ')'
+
+	Previously all the useless rules were reported, including those whose
+	left-hand side is the 'exp' nonterminal:
+
+	    warning: 1 nonterminal useless in grammar [-Wother]
+	    warning: 4 rules useless in grammar [-Wother]
+	    2.14-16: warning: nonterminal useless in grammar: exp [-Wother]
+	     input: '0' | exp
+	                  ^^^
+	    2.14-16: warning: rule useless in grammar [-Wother]
+	     input: '0' | exp
+	                  ^^^
+	  ! 3.6-16: warning: rule useless in grammar [-Wother]
+	  !  exp: exp '+' exp | exp '-' exp | '(' exp ')'
+	  !       ^^^^^^^^^^^
+	  ! 3.20-30: warning: rule useless in grammar [-Wother]
+	  !  exp: exp '+' exp | exp '-' exp | '(' exp ')'
+	  !                     ^^^^^^^^^^^
+	  ! 3.34-44: warning: rule useless in grammar [-Wother]
+	  !  exp: exp '+' exp | exp '-' exp | '(' exp ')'
+	  !                                   ^^^^^^^^^^^
+
+	The interest of being so verbose is dubious.  I suspect most of the
+	time nonterminals are not expected to be useless, so the user wants to
+	fix the nonterminal, not remove its rules.  And even if the user
+	wanted to get rid of its rules, the position of these rules probably
+	does not help more that just having the name of the nonterminal.
+
+	This commit discard these messages, marked with '!', and keep the
+	others.  In particular, we still report:
+
+	    2.14-16: warning: rule useless in grammar [-Wother]
+	     input: '0' | exp
+	                  ^^^
+
+	All the useless rules (including the '!' ones) are still reported in
+	the reports (xml, text, etc.); only the diagnostics on stderr change.
+
+	* src/gram.c (grammar_rules_useless_report): Don't complain about
+	useless rules whose lhs is useless.
+	* src/reduce.h, src/reduce.c (reduce_nonterminal_useless_in_grammar):
+	Take a sym_content as argument.
+	Adjust callers.
+	* tests/reduce.at (Useless Rules, Underivable Rules, Reduced Automaton):
+	Adjust.
+
+2015-01-14  Akim Demaille  <akim@lrde.epita.fr>
+
+	style: reduce: use unsigned to count a number of objects
+	* src/reduce.h, src/reduce.c (nuseful_productions, nuseless_productions)
+	(nuseful_nonterminals, nuseless_nonterminals): Declare as unsigned.
+	Simplify "0 <" tests into non-zero tests.
+
+2015-01-14  Akim Demaille  <akim@lrde.epita.fr>
+
+	style: reduce: introduce and use a swap for bitset
+	* src/reduce.c (bitset_swap): New.
+	Use it.
+
+2015-01-14  Akim Demaille  <akim@lrde.epita.fr>
+
+	style: reduce: reduce scopes and other stylistic changes
+	* src/reduce.c: Various stylistic changes:
+	Reduce scopes.
+	Prefer ++i to i++.
+	Prefer < to >.
+
+2015-01-13  Akim Demaille  <akim@lrde.epita.fr>
+
+	Merge remote-tracking branch 'origin/maint'
+	* origin/maint:
+	  tests: split a large test case into several smaller ones
+	  package: a bit of trouble shooting indications
+	  doc: liby's main arms the internationalization
+	  bison: avoid warnings from static code analysis
+	  c++: fix the use of destructors when variants are enabled
+	  style: tests: simplify the handling of some C++ tests
+	  c++: symbols can be empty, so use it
+	  c++: variants: don't leak the lookahead in error recovery
+	  c++: provide a means to clear symbols
+	  c++: clean up the handling of empty symbols
+	  c++: comment and style changes
+	  c++: variants: comparing addresses of typeid.name() is undefined
+	  c++: locations: complete the API and fix comments
+	  build: do not clean figure sources in make clean
+
+2015-01-13  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: split a large test case into several smaller ones
+	* tests/conflicts.at (AT_CONSISTENT_ERRORS_CHECK): Move AT_SETUP/AT_CLEANUP
+	into it, so that we don't skip non Java tests following a test case in Java.
+
+2015-01-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	package: a bit of trouble shooting indications
+	* README-hacking: here.
+
+2015-01-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	doc: liby's main arms the internationalization
+	Reported by Nicolas Bedon.
+	<https://lists.gnu.org/archive/html/bug-bison/2014-11/msg00005.html>
+
+	* doc/bison.texi (Yacc Library): Document the call the setlocale.
+
+2015-01-09  Akim Demaille  <akim@lrde.epita.fr>
+
+	bison: avoid warnings from static code analysis
+	A static analysis tool reports that some callers of symbol_list_n_get
+	might get NULL and not handle it properly.  This is not the case, yet
+	we can suppress this pattern.
+
+	Reported by Mike Sullivan.
+	<https://lists.gnu.org/archive/html/bug-bison/2013-12/msg00027.html>
+
+	* src/symlist.c (symbol_list_n_get): Actually it is never called
+	to return 0.  Enforce this postcondition via aver.
+	(symbol_list_n_type_name_get): Simplify accordingly.  In particular,
+	discards a (translated) useless error message.
+	* src/symlist.h: Adjust documentation.
+	* src/scan-code.l: Style change.
+
+2015-01-09  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: fix the use of destructors when variants are enabled
+	When using variants, destructors generate invalid code.
+	<http://lists.gnu.org/archive/html/bug-bison/2014-09/msg00005.html>
+	Reported by Michael Catanzaro.
+
+	* data/c++.m4 (~basic_symbol): b4_symbol_foreach works on yysym:
+	define it.
+	* tests/c++.at (Variants): Check it.
+
+2015-01-08  Akim Demaille  <akim@lrde.epita.fr>
+
+	style: tests: simplify the handling of some C++ tests
+	* tests/c++.at: here.
+	(Doxygen): Pass %define, so that files such as position.hh etc.
+	are generated, instead of putting everything into input.hh.
+
+2015-01-08  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: symbols can be empty, so use it
+	The previous patches ensure that symbols (symbol_type and
+	stack_symbol_type) can be empty, cleared, and their emptiness can be
+	checked.  Therefore, yyempty, which codes whether yyla is empty or
+	not, is now useless.
+
+	In C skeletons (e.g., yacc.c), the fact that the lookahead is empty is
+	coded by "yychar = YYEMPTY", which is exactly what this patch
+	restores, since yychar/yytoken corresponds to yyla.type.
+
+	* data/lalr1.cc (yyempty): Remove.
+	Rather, depend on yyla.empty ().
+
+2015-01-08  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: variants: don't leak the lookahead in error recovery
+	During error recovery, when discarding the lookeahead, we don't
+	destroy it, which is caught by parse.assert assertions.
+
+	Reported by Antonio Silva Correia.
+	With an analysis and suggested patch from Michel d'Hooge.
+	<http://savannah.gnu.org/support/?108481>
+
+	* tests/c++.at (Variants): Strengthen the test to try syntax errors
+	with discarded lookahead.
+
+2015-01-08  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: provide a means to clear symbols
+	The symbol destructor is currently the only means to clear a symbol.
+	Unfortunately during error recovery we might have to clear the
+	lookahead, which is a local variable (yyla) that has not yet reached
+	its end of scope.
+
+	Rather that duplicating the code to destroy a symbol, or rather than
+	destroying and recreating yyla, let's provide a means to clear a
+	symbol.
+
+	Reported by Antonio Silva Correia, with an analysis from Michel d'Hooge.
+	<http://savannah.gnu.org/support/?108481>
+
+	* data/c++.m4, data/lalr1.cc (basis_symbol::clear, by_state::clear)
+	(by_type::clear): New.
+	(basic_symbol::~basic_symbol): Use clear.
+
+2015-01-08  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: clean up the handling of empty symbols
+	* data/c++.m4, data/lalr1.cc (yyempty_): Remove, replaced by...
+	(empty_symbol, by_state::empty_state): these.
+	(basic_symbol::empty): New.
+
+2015-01-08  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: comment and style changes
+	* data/c++.m4, data/lalr1.cc: More documentation.
+	Tidy.
+	* tests/c++.at (string_cast): Rename as...
+	(to_string): this C++11 name.
+
+2015-01-07  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: variants: comparing addresses of typeid.name() is undefined
+	Instead of storing and comparing pointers to names of types, store
+	pointers to the typeids, and compares the typeids.
+	Reported by Thomas Jahns.
+	<http://lists.gnu.org/archive/html/bug-bison/2014-03/msg00001.html>
+
+	* data/variant.hh (yytname_): Replace with...
+	(yytypeid_): this.
+
+2015-01-05  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: locations: complete the API and fix comments
+	There are no support for += between locations, and some comments are wrong.
+	Reported by Alexandre Duret-Lutz.
+
+	* data/location.cc: Fix.
+	* doc/bison.texi: Document.
+	* tests/c++.at: Check.
+
+2015-01-05  Akim Demaille  <akim@lrde.epita.fr>
+
+	build: do not clean figure sources in make clean
+	"make clean && make" fails in in-tree builds.
+
+	* doc/local.mk (CLEANDIRS): Replace with...
+	(CLEANFILES): this safer list of files to clean.
+
+2015-01-05  Akim Demaille  <akim@lrde.epita.fr>
+
+	Merge remote-tracking branch 'origin/maint'
+	* origin/maint:
+	  build: don't try to generate docs when cross-compiling
+	  package: fix a reporter's name
+	  %union: fix the support for named %union
+	  package: bump to 2015
+	  flex: don't trust YY_USER_INIT
+	  yacc.c: fix broken union when api.value.type=union and %defines are used
+	  doc: fix missing xref
+	  gnulib: update
+	  location: remove some ugly debugging code traces
+	  build: use abort to pacify compiler errors
+	  package: bump to 2014
+	  doc: specify documentation encoding
+
+2015-01-05  Akim Demaille  <akim@lrde.epita.fr>
+
+	build: don't try to generate docs when cross-compiling
+	When cross-compiling don't run the generated bison to update the docs.
+	Reported by Aaro Koskinen.
+	<http://lists.gnu.org/archive/html/bison-patches/2014-03/msg00000.html>
+
+	* configure.ac (CROSS_COMPILING): New.
+	* doc/local.mk: Use it.
+
+2015-01-04  Akim Demaille  <akim@lrde.epita.fr>
+
+	package: fix a reporter's name
+	* THANKS, build-aux/git-log-fix: s/Bernd Edligner/Bernd Edlinger/.
+
+2015-01-04  Akim Demaille  <akim@lrde.epita.fr>
+
+	%union: fix the support for named %union
+	Bison supports a union tag, for obscure reasons.  But it does a poor
+	job at it, especially since Bison 3.0.
+	Reported by Stephen Cameron and Tobias Frost.
+
+	It did not ensure that the name was not given several times.  An easy
+	way to do this is to make the %union tag be handled as a %define
+	variable, as they cannot be defined several times.
+
+	Since Bison 3.0, the synclines were wrongly placed, resulting in
+	invalid code.  Addressing this issue, because of the way the union tag
+	was stored (as a code muscle), would have been tedious.  Unless we
+	rather define the %union tag as a %percent variable, whose synclines
+	are easier to manipulate.
+
+	So replace the b4_union_name muscle by the api.value.union.name
+	%define variable, document, and check.
+
+	* data/bison.m4: Make sure that api.value.union.name has a keyword value.
+	* data/c++.m4: Make sure that api.value.union.name is not defined.
+	* data/c.m4 (b4_union_name): No longer use it, use api.value.union.name.
+	* doc/bison.texi (%define Summary): Document it.
+	* src/parse-gram.y (union_name): No longer define b4_uion_name, but
+	api.value.union.name.
+	* tests/input.at (Redefined %union name): New.
+	* tests/synclines.at (%union name syncline): New.
+	* tests/types.at: Check named %unions.
+
+2015-01-04  Akim Demaille  <akim@lrde.epita.fr>
+
+	package: bump to 2015
+	Which also requires:
+
+	* gnulib: Update.
+
+2014-12-31  Akim Demaille  <akim@lrde.epita.fr>
+
+	flex: don't trust YY_USER_INIT
+	Reported by Bernd Edlinger and others.
+
+	* src/scan-gram.l: here.
+
+2014-12-31  Akim Demaille  <akim@lrde.epita.fr>
+
+	yacc.c: fix broken union when api.value.type=union and %defines are used
+	Reported by Rich Wilson.
+
+	* data/c.m4 (b4_symbol_type_register): Append to b4_union_members,
+	not b4_user_union_members.
+	The latter invokes the former, but it is the former which is reinitialized
+	to empty by b4_value_type_setup_union.
+	* tests/types.at: Check it.
+
+	This reveals another bug, this time in the case of glr.c parsers.
+
+	* data/glr.c: Generate the header file before the implementation file,
+	to be sure that the setup is run before what depends on it.
+
+2014-12-31  Akim Demaille  <akim@lrde.epita.fr>
+
+	doc: fix missing xref
+	Reported by xolodho.
+
+	* doc/bison.texi (Printer Decl): here.
+
+2014-12-29  Akim Demaille  <akim@lrde.epita.fr>
+
+	gnulib: update
+
+2014-02-03  Akim Demaille  <akim@lrde.epita.fr>
+
+	location: remove some ugly debugging code traces
+	* data/location.cc: here.
+
+2014-02-03  Akim Demaille  <akim@lrde.epita.fr>
+
+	build: use abort to pacify compiler errors
+	clang, with -DNDEBUG and -Werror fails on some functions that might
+	lack a return.  This is because aver is just another assert, discarded
+	with -DNDEBUG.  So use abort.
+
+	* src/muscle-tab.c, src/scan-skel.l: here.
+
+2014-02-03  Akim Demaille  <akim@lrde.epita.fr>
+
+	package: bump to 2014
+	* AUTHORS, ChangeLog-2012, Makefile.am, NEWS, PACKAGING, README,
+	* README-alpha, README-hacking, THANKS, TODO, bootstrap.conf,
+	* build-aux/darwin11.4.0.valgrind, build-aux/local.mk,
+	* build-aux/update-b4-copyright,
+	* build-aux/update-package-copyright-year, cfg.mk, configure.ac,
+	* data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4,
+	* data/c-like.m4, data/c-skel.m4, data/c.m4, data/glr.c, data/glr.cc,
+	* data/java-skel.m4, data/java.m4, data/lalr1.cc, data/lalr1.java,
+	* data/local.mk, data/location.cc, data/stack.hh, data/variant.hh,
+	* data/xslt/bison.xsl, data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl,
+	* data/xslt/xml2xhtml.xsl, data/yacc.c, djgpp/Makefile.maint,
+	* djgpp/README.in, djgpp/config.bat, djgpp/config.sed,
+	* djgpp/config.site, djgpp/config_h.sed, djgpp/djunpack.bat,
+	* djgpp/local.mk, djgpp/subpipe.c, djgpp/subpipe.h,
+	* djgpp/testsuite.sed, doc/bison.texi, doc/local.mk, doc/refcard.tex,
+	* etc/README, etc/bench.pl.in, etc/local.mk,
+	* examples/calc++/calc++.test, examples/calc++/local.mk,
+	* examples/extexi, examples/local.mk, examples/mfcalc/local.mk,
+	* examples/mfcalc/mfcalc.test, examples/rpcalc/local.mk,
+	* examples/rpcalc/rpcalc.test, examples/test, examples/variant.yy,
+	* lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c,
+	* lib/bitset.h, lib/bitset_stats.c, lib/bitset_stats.h,
+	* lib/bitsetv-print.c, lib/bitsetv-print.h, lib/bitsetv.c,
+	* lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/get-errno.c,
+	* lib/get-errno.h, lib/lbitset.c, lib/lbitset.h, lib/libiberty.h,
+	* lib/local.mk, lib/main.c, lib/timevar.c, lib/timevar.def,
+	* lib/timevar.h, lib/vbitset.c, lib/vbitset.h, lib/yyerror.c,
+	* m4/bison-i18n.m4, m4/c-working.m4, m4/cxx.m4, m4/flex.m4,
+	* m4/timevar.m4, src/AnnotationList.c, src/AnnotationList.h,
+	* src/InadequacyList.c, src/InadequacyList.h, src/LR0.c, src/LR0.h,
+	* src/Sbitset.c, src/Sbitset.h, src/assoc.c, src/assoc.h,
+	* src/closure.c, src/closure.h, src/complain.c, src/complain.h,
+	* src/conflicts.c, src/conflicts.h, src/derives.c, src/derives.h,
+	* src/files.c, src/files.h, src/flex-scanner.h, src/getargs.c,
+	* src/getargs.h, src/gram.c, src/gram.h, src/graphviz.c,
+	* src/graphviz.h, src/ielr.c, src/ielr.h, src/lalr.c, src/lalr.h,
+	* src/local.mk, src/location.c, src/location.h, src/main.c,
+	* src/muscle-tab.c, src/muscle-tab.h, src/named-ref.c,
+	* src/named-ref.h, src/nullable.c, src/nullable.h, src/output.c,
+	* src/output.h, src/parse-gram.c, src/parse-gram.y, src/print-xml.c,
+	* src/print-xml.h, src/print.c, src/print.h, src/print_graph.c,
+	* src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c,
+	* src/reduce.h, src/relation.c, src/relation.h, src/scan-code.h,
+	* src/scan-code.l, src/scan-gram.h, src/scan-gram.l, src/scan-skel.h,
+	* src/scan-skel.l, src/state.c, src/state.h, src/symlist.c,
+	* src/symlist.h, src/symtab.c, src/symtab.h, src/system.h,
+	* src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h,
+	* tests/actions.at, tests/atlocal.in, tests/bison.in, tests/c++.at,
+	* tests/calc.at, tests/conflicts.at, tests/cxx-type.at,
+	* tests/existing.at, tests/glr-regression.at, tests/headers.at,
+	* tests/input.at, tests/java.at, tests/javapush.at, tests/local.at,
+	* tests/local.mk, tests/named-refs.at, tests/output.at, tests/push.at,
+	* tests/reduce.at, tests/regression.at, tests/sets.at,
+	* tests/skeletons.at, tests/synclines.at, tests/testsuite.at,
+	* tests/torture.at, tests/types.at:
+	here.
+
+2014-01-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+	doc: specify documentation encoding
+	* doc/bison.texi: Add '@documentencoding UTF-8'; needed since the
+	manual contains UTF-8 characters.  This will cause the .info files
+	to contain UTF-8 quotes and the like, which should be OK nowadays.
+	Add @documentlanguage while we're at it.
+
+2013-12-10  Akim Demaille  <akim@lrde.epita.fr>
+
+	symbols: properly fuse the properties of two symbol aliases
+	This completes and fixes a7280757105b2909f6a58fdd1c582de8e278319a.
+	Reported by Valentin Tolmer.
+
+	Before it Bison used to put the properties of the symbols
+	(associativity, printer, etc.) in the 'symbol' structure.  An
+	identifier-named token (FOO) and its string-named alias ("foo")
+	duplicated these properties, and symbol_check_alias_consistency()
+	checked that both had compatible properties and fused them, at the end
+	of the parsing of the grammar.
+
+	The commit a7280757105b2909f6a58fdd1c582de8e278319a introduces a
+	sym_content structure that keeps all these properties, and ensures
+	that both aliases point to the same sym_content (instead of
+	duplicating).  However, it removed symbol_check_alias_consistency,
+	which resulted in the non-fusion of *existing* properties:
+
+	  %token FOO "foo"
+	  %left FOO %left "foo"
+
+	was properly diagnosed as a redeclaration, but
+
+	  %left FOO %left "foo"
+	  %token FOO "foo"
+
+	was not, as the properties of FOO and "foo" were not checked before
+	fusion.  It certainly also means that
+
+	  %left "foo"
+	  %token FOO "foo"
+
+	did not transfer properly the associativity to FOO.
+
+	The fix is simple: reintroduce symbol_check_alias_consistency (under a
+	better name, symbol_merge_properties) and call it where appropriate.
+
+	Also, that commit made USER_NUMBER_HAS_STRING_ALIAS useless, but left
+	it.
+
+	* src/symtab.h (USER_NUMBER_HAS_STRING_ALIAS): Remove, unused.
+	Adjust dependencies.
+	* src/symtab.c (symbol_merge_properties): New, based on the former
+	symbol_check_alias_consistency.
+	* tests/input.at: Re-enable tests that we now pass.
+
+2013-12-10  Akim Demaille  <akim@lrde.epita.fr>
+
+	Merge remote-tracking branch 'origin/maint'
+	* origin/maint:
+	  package: install the examples
+	  package: install README and the like in docdir
+	  diagnostics: fix the order of multiple declarations reports
+	  symbol: provide an easy means to compare them in source order
+
+2013-12-09  Akim Demaille  <akim@lrde.epita.fr>
+
+	package: install the examples
+	Currently, we do not install the various examples extracted from the
+	documentation.  Let's do it, as they are useful starting points.
+
+	* configure.ac: When --enable-gcc-warnings is set, enable ENABLE_GCC_WARNINGS.
+	* examples/extexi: No longer issue synclines by default.
+	* examples/local.mk: Except if ENABLE_GCC_WARNINGS.
+	* examples/calc++/local.mk, examples/mfcalc/local.mk,
+	* examples/rpcalc/local.mk: Install the example files.
+
+2013-12-09  Akim Demaille  <akim@lrde.epita.fr>
+
+	package: install README and the like in docdir
+	* Makefile.am: here.
+
+2013-12-09  Akim Demaille  <akim@lrde.epita.fr>
+
+	diagnostics: fix the order of multiple declarations reports
+	On
+
+	  %token FOO "foo"
+	  %printer {} "foo"
+	  %printer {} FOO
+
+	we report
+
+	  /tmp/foo.yy:2.10-11: error: %printer redeclaration for FOO
+	   %printer {} "foo"
+	            ^^
+	  /tmp/foo.yy:3.10-11:     previous declaration
+	   %printer {} FOO
+	            ^^
+
+	* src/symtab.c (locations_sort): New.
+	Use it.
+	* tests/input.at (Invalid Aliases): Stress the order of diagnostics.
+
+2013-12-09  Akim Demaille  <akim@lrde.epita.fr>
+
+	symbol: provide an easy means to compare them in source order
+	* src/symtab.c (symbols_sort): New.
+	(user_token_number_redeclaration): Taken from here.
+
+2013-12-09  Akim Demaille  <akim@lrde.epita.fr>
+
+	Merge remote-tracking branch 'origin/maint'
+	* origin/maint: (43 commits)
+	  maint: post-release administrivia
+	  version 3.0.2
+	  gnulib: update
+	  output: do not generate source files when late errors are caught
+	  output: record what generated files are source or report files
+	  output: do not generate source files when early errors are caught
+	  xml: also use "%empty" with html output
+	  style: formatting changes
+	  xml: also display %empty for empty right-hand sides
+	  reports: display %empty in the generated pointed-rules
+	  news: YYERROR vs variants
+	  style: scope reduction in lalr.cc
+	  lalr1.cc: formatting changes
+	  lalr1.cc: fix the support of YYERROR with variants
+	  tests: check $$'s destruction with variant, YYERROR, and no error recovery
+	  tests: simplify useless obfuscation
+	  skeletons: use better names when computing a "goto"
+	  maint: post-release administrivia
+	  version 3.0.1
+	  aver: it is no longer "protected against NDEBUG"
+	  ...
+
+2013-12-05  Akim Demaille  <akim@lrde.epita.fr>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2013-12-05  Akim Demaille  <akim@lrde.epita.fr>
+
+	version 3.0.2
+	* NEWS: Record release date.
+
+2013-12-05  Akim Demaille  <akim@lrde.epita.fr>
+
+	gnulib: update
+	* gnulib: here.
+
+2013-12-04  Akim Demaille  <akim@lrde.epita.fr>
+
+	output: do not generate source files when late errors are caught
+	Reported by Alexandre Duret-Lutz as "second problem" in:
+	http://lists.gnu.org/archive/html/bug-bison/2013-09/msg00015.html
+
+	* bootstrap.conf: We need the "unlink" module.
+	* src/files.h, src/files.c (unlink_generated_sources): New.
+	* src/output.c: Use it.
+	* tests/output.at: Check the case of late errors.
+
+2013-12-04  Akim Demaille  <akim@lrde.epita.fr>
+
+	output: record what generated files are source or report files
+	* src/files.h, src/files.c (output_file_name_check): Take an additional
+	argument to record whether a file is a source or report file.
+	* src/files.c (generated_file): New.
+	(file_names, file_names_count): Replace with...
+	(generated_files, generated_files_size): these.
+	* src/scan-skel.l: Adjust.
+
+2013-12-04  Akim Demaille  <akim@lrde.epita.fr>
+
+	output: do not generate source files when early errors are caught
+	Reported by Alexandre Duret-Lutz as "second problem" in:
+	http://lists.gnu.org/archive/html/bug-bison/2013-09/msg00015.html
+
+	One problem is that some errors are caught early, before the
+	generation of output files, while others can only be detected
+	afterwards (since, for instance, skeletons can raise errors
+	themselves).
+
+	This will be addressed in two steps: early errors do not generate
+	source files at all, while later errors will remove the files that
+	have already been generated.
+
+	* src/scan-skel.l (yyout): Open to /dev/null when there are errors.
+	* tests/output.at (AT_CHECK_FILES): Factored out of...
+	(AT_CHECK_OUTPUT): this.
+	Fuse the "SHELLIO" argument in the "FLAGS" one.
+	Use $5 to denote the expected exit status.
+	Add a test case for early errors.
+
+2013-11-26  Akim Demaille  <akim@lrde.epita.fr>
+
+	xml: also use "%empty" with html output
+	* data/xslt/xml2xhtml.xsl: No longer issue an Epsilon, display as in
+	dot and text formats.
+
+2013-11-26  Akim Demaille  <akim@lrde.epita.fr>
+
+	style: formatting changes
+	* src/print-xml.c: here.
+
+2013-11-26  Akim Demaille  <akim@lrde.epita.fr>
+
+	xml: also display %empty for empty right-hand sides
+	* data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl: Display %empty where needed.
+
+2013-11-26  Akim Demaille  <akim@lrde.epita.fr>
+
+	reports: display %empty in the generated pointed-rules
+	* src/print.c (print_core): Use %empty for empty rules.
+	* src/print_graph.c (print_core): Ditto.
+	* tests/conflicts.at, tests/output.at, tests/reduce.at: Adjust
+	expectations.
+
+2013-11-26  Akim Demaille  <akim@lrde.epita.fr>
+
+	news: YYERROR vs variants
+
+2013-11-18  Akim Demaille  <akim@lrde.epita.fr>
+
+	style: scope reduction in lalr.cc
+	* src/lalr.c: Shorten variable scopes.
+	(lookahead_tokens_print): Use the same variable name in two loops
+	iterating over the same structure.
+
+2013-11-15  Akim Demaille  <akim@lrde.epita.fr>
+
+	lalr1.cc: formatting changes
+	* data/lalr1.cc: Fix indentation.
+
+2013-11-15  Akim Demaille  <akim@lrde.epita.fr>
+
+	lalr1.cc: fix the support of YYERROR with variants
+	When variant are enabled, the yylhs variable (the left-hand side of
+	the rule being reduced, i.e. $$ and @$) is explicitly destroyed when
+	YYERROR is called.  This is because before running the user code, $$
+	is initialized, so that the user can properly use it.
+
+	However, when quitting yyparse, yylhs is also reclaimed by the C++
+	compiler: the variable goes out of scope.
+
+	Instead of trying to be too smart, let the compiler do its job: reduce
+	the scope of yylhs to exactly the reduction.  This way, whatever the
+	type of scope exit (regular, exception, return, goto...) this variable
+	will be properly reclaimed.
+
+	Reported by Paolo Simone Gasparello.
+	<http://lists.gnu.org/archive/html/bug-bison/2013-10/msg00003.html>
+
+	* data/lalr1.cc (yyparse): Reduce the scope of yylhs.
+	* tests/c++.at: We now pass this test.
+
+2013-11-15  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: check $$'s destruction with variant, YYERROR, and no error recovery
+	When variant are enabled, the yylhs variable (the left-hand side of
+	the rule being reduced, i.e. $$ and @$) is explicitly destroyed when
+	YYERROR is called.  This is because before running the user code, $$
+	is initialized, so that the user can properly use it.
+
+	However, when quitting yyparse, yylhs is also reclaimed by the C++
+	compiler: the variable goes out of scope.
+
+	This was not detected by the test suite because (i) the Object tracker
+	was too weak, and (ii) the problem does not show when there is error
+	recovery.
+
+	Reported by Paolo Simone Gasparello.
+	<http://lists.gnu.org/archive/html/bug-bison/2013-10/msg00003.html>
+
+	* tests/c++.at (Exception safety): Improve the objects logger to make
+	sure that we never destroy twice an object.
+	Also track copy-constructors.
+	Use a set instead of a list.
+	Display the logs before running the function body, this is more
+	useful in case of failure.
+	Generalize to track with and without error recovery.
+
+2013-11-15  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: simplify useless obfuscation
+	* tests/c++.at: $$ is not special for M4, there is no need to "escape"
+	it.
+
+2013-11-14  Akim Demaille  <akim@lrde.epita.fr>
+
+	skeletons: use better names when computing a "goto"
+	* data/glr.c (yyLRgotoState): Name the symbol argument yysym, instead
+	of yylhs.
+	* data/lalr1.cc (yy_lr_goto_state_): Likewise.
+	* data/lalr1.java (yy_lr_goto_state_): New, modeled after the previous
+	two routines.
+	Use it.
+
+2013-11-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	maint: post-release administrivia
+	* NEWS: Add header line for next release.
+	* .prev-version: Record previous version.
+	* cfg.mk (old_NEWS_hash): Auto-update.
+
+2013-11-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	version 3.0.1
+	* NEWS: Record release date.
+
+2013-11-12  Akim Demaille  <akim@lrde.epita.fr>
+
+	aver: it is no longer "protected against NDEBUG"
+	Apply the same rules for aver as for assert: no side effects,
+	especially not important ones.
+
+	* src/AnnotationList.c, src/muscle-tab.c: Adjust aver uses to resist
+	to -DNDEBUG.
+
+2013-11-08  Akim Demaille  <akim@lrde.epita.fr>
+
+	parsers: rename YY_NULL as YY_NULLPTR to avoid conflicts with Flex
+	Flex also defines YY_NULL (to 0).  Avoid gratuitous conflicts.
+
+	* data/c.m4 (b4_null_define): Rename YY_NULL as YY_NULLPTR.
+
+	* data/glr.c, data/lalr1.cc, data/location.cc, data/variant.hh,
+	* data/yacc.c, src/parse-gram.c, tests/actions.at, tests/c++.at,
+	* tests/cxx-type.at, tests/glr-regression.at, tests/headers.at,
+	* tests/push.at, tests/regression.at:
+	Adjust.
+
+2013-11-05  Akim Demaille  <akim@lrde.epita.fr>
+
+	build: use Automake 1.14's non-recursive Makefile features
+	* configure.ac: Require Automake 1.14.
+	* examples/calc++/local.mk, examples/local.mk, examples/mfcalc/local.mk,
+	* examples/rpcalc/local.mk, tests/local.mk: Use %D% and %C%.
+
+2013-11-05  Akim Demaille  <akim@lrde.epita.fr>
+
+	build: restore maintainer-push-check
+	* tests/local.mk: here.
+
+2013-11-05  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: use __attribute__((__pure__)) to avoid warnings
+	Building C++ parsers with -Wsuggest-attribute=const and
+	-Wsuggest-attribute=noreturn triggers warning in generated code.
+
+	* data/lalr1.cc: Call b4_attribute_define.
+	(debug_stream, debug_level): Flag as pure.
+	* tests/headers.at (Several parsers): There are now more YY macros
+	that "leak".
+
+2013-11-05  Akim Demaille  <akim@lrde.epita.fr>
+
+	skeletons: update the handling of compiler attributes
+	* data/c.m4 (b4_attribute_define): Instead of defining __attribute__,
+	define YY_ATTRIBUTE conditionally.
+	(YY_ATTRIBUTE_PURE, YY_ATTRIBUTE_UNUSED, _Noreturn): New.
+	Use them.
+	* data/glr.c: Use them.
+
+2013-11-05  Akim Demaille  <akim@lrde.epita.fr>
+
+	gnulib: update
+
+2013-10-24  Akim Demaille  <akim@lrde.epita.fr>
+
+	style: use /* ... */ comments
+	* src/complain.c: Here.
+
+2013-10-24  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: skip C++ tests that are too demanding for some compilers
+	Some tests now fail when compiled with G++ 4.3 or 4.4 on MacPorts.
+
+	* tests/local.at (AT_SKIP_IF_EXCEPTION_SUPPORT_IS_POOR): New.
+	* tests/c++.at (Exception safety): Use it.
+
+2013-10-22  Akim Demaille  <akim@lrde.epita.fr>
+
+	install: do not install yacc.1 when --disable-yacc
+	* configure.ac (ENABLE_YACC): New conditional.
+	(YACC_SCRIPT, YACC_LIBRARY): Remove.
+	* lib/local.mk, src/local.mk: Use the former instead of the latter.
+	* doc/local.mk: Use ENABLE_YACC to avoid installing yacc.1.
+
+2013-10-22  Akim Demaille  <akim@lrde.epita.fr>
+
+	style: avoid tabs
+	* src/scan-code.l: here.
+
+2013-10-22  Akim Demaille  <akim@lrde.epita.fr>
+
+	c++: fix generated doxygen comments
+	* configure.ac: Enable -Wdocumentation if supported.
+	* data/lalr1.cc: Fix comments.
+
+2013-10-22  Akim Demaille  <akim@lrde.epita.fr>
+
+	fix: uniqstr are already pointers
+	* src/uniqstr.c (uniqstr_assert): Remove incorrect double indirection,
+	and now useless cast.
+
+2013-10-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+	bison: pacify Sun C 5.12
+	* src/scan-code.l (show_sub_message):
+	Redo initializations to work around a bogus Sun C 5.12 warning.
+	(parse_ref): Remove unreachable code that Sun C 5.12 complains about.
+	* src/uniqstr.h (uniqstr_vsprintf): Use
+	_GL_ATTRIBUTE_FORMAT_PRINTF (...)  instead of __attribute__
+	((__format__ (__printf__, ...))).  Otherwise, Sun C 5.12
+	complains about an unknown attribute.
+
+2013-10-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+	maint: git now ignores rpcalc
+	* examples/rpcalc/.gitignore: Ignore rpcalc.
+
+2013-10-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+	build: examples/calc++/calc++ requires flex
+	* configure.ac (FLEX_CXX_WORKS): New AM_CONDITIONAL.
+	* examples/calc++/local.mk (examples/calc++/calc++):
+	Build if FLEX_CXX_WORKS, not BISON_CXX_WORKS.
+
+2013-10-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+	maint: mention help2man, texinfo, apt-get
+	* README-hacking: Add help2man, texinfo.
+	Describe how to add packages if you're using Debian.
+
+2013-10-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+	maint: git now ignores .log and .trs files
+	* .gitignore: Add *.log, *.trs.
+
+2013-10-21  Akim Demaille  <akim@lrde.epita.fr>
+
+	tests: fix incorrect object construction
+	Reported by Ken Moffat.
+	http://lists.gnu.org/archive/html/bug-bison/2013-10/msg00009.html
+
+	* tests/c++.at (Exception safety): Here.
+
+2013-10-16  Akim Demaille  <akim@lrde.epita.fr>
+
+	glr: allow spaces between "%?" and "{" in predicates
+	Reported by Rici Lake.
+	http://lists.gnu.org/archive/html/bug-bison/2013-10/msg00004.html
+	http://stackoverflow.com/questions/19330171/
+
+	* src/scan-gram.l: Do not try to be too smart when diagnosing invalid
+	directives.
+	* tests/glr-regression.at (Predicates): New test.
+
+2013-10-16  Akim Demaille  <akim@lrde.epita.fr>
+
+	diagnostics: "-Werror -Wno-error=foo" must not emit errors
+	Currently "-Werror -Wno-error=foo" still turns "foo" warnings into errors.
+	Reported by Alexandre Duret-Lutz.
+	See http://lists.gnu.org/archive/html/bug-bison/2013-09/msg00015.html.
+
+	* src/complain.c (errority, errority_flag): New.
+	(complain_init): Initialize the latter.
+	(warning_argmatch): Extract the loop iterating on the flag's bits.
+	Set and unset errority_flag here.
+	(warnings_argmatch): -Wno-error is not the same as -Wno-error=everything:
+	we must remember if category foo was explicitly turned in an error/warning
+	via -W(no-)error=foo.
+	(warning_severity): Use errority_flag.
+
+	* tests/input.at (Symbols): Just check --yacc, not -Wyacc, that's the
+	job of tests on -W.
+	(-Werror is not affected by -Wnone and -Wall): Rename as...
+	(-Werror combinations): this.
+	Tests more combinations of -W, -W(no-)error, and -W(no-)error=foo.
+	* tests/local.at (AT_BISON_CHECK_WARNINGS): Don't expect -Werror
+	to turn runs that issue warnings into runs with errors, as the
+	warnings might be enforced as warnings by -Wno-error=foo, in which
+	case -Werror does not change anything.
+
+	* doc/bison.texi (Bison Options): Try to be clearer about how
+	-W(no-)error and -W(no-)error=foo interact.
+
+2013-10-16  Akim Demaille  <akim@lrde.epita.fr>
+
+	comment changes
+	* src/complain.h, src/complain.c: More documentation, more comments.
+
+2013-10-04  Andreas Schwab  <schwab@linux-m68k.org>
+
+	location: fix EOF check
+	* location.c (location_caret): Use int, not char, for values from
+	getc.
+
+2013-09-19  Akim Demaille  <akim@lrde.epita.fr>
+
+	style: variant: remove empty line
+	* data/variant.hh (b4_symbol_constructor_define_): Remove
+	stray eol.
+
+2013-09-19  Akim Demaille  <akim@lrde.epita.fr>
+
+	Merge remote-tracking branch 'origin/maint'
+	* origin/maint:
+	  glr: more assertions
+	  glr: shorten scopes
+	  glr: formatting changes
+	  glr: better use of tracing macros
+	  examples: improve the output of the "variant" example
+	  variant: remove useless assertion
+	  tests: remove stray debugging traces
+	  tests: do not use grep -q
+	  build: don't require flex for ordinary builds
+	  maint: update .gitignore
+	  build: port to pre-5.8.7 perl
+	  tests: minor change to make it easier to test other skeletons
+	  uniqstr: fix assertion
+
+2013-09-19  Akim Demaille  <akim@lrde.epita.fr>
+
+	glr: simplify the invocation of YYLLOC_DEFAULT
+	The commit which introduces yyresolveLocations (commit
+	8710fc41aaebc5d167a2783a4b8b60849a803869) saves and restores the
+	look-ahead (type, value and location) for no clear reason.  This
+	appears to be useless.
+
+	* data/glr.c (yyresolveLocations): Don't save/restore the current