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-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>

	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-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.

