12012-12-12  Akim Demaille  <akim@lrde.epita.fr>
2
3	version 2.7
4	* NEWS: Record release date.
5
62012-12-12  Akim Demaille  <akim@lrde.epita.fr>
7
8	yacc.c: scope reduction
9	* data/yacc.c (yysyntax_error): here.
10
112012-12-12  Akim Demaille  <akim@lrde.epita.fr>
12
13	tests: C90 compliance
14	* tests/synclines.at: here.
15
162012-12-12  Akim Demaille  <akim@lrde.epita.fr>
17
18	fix C90 compliance
19	* data/glr.c, src/graphviz.h, src/ielr.c, src/scan-gram.l,
20	* src/system.h, tests/actions.at, tests/glr-regression.at: Do not
21	use // comments.
22	Do not introduce variables after statements.
23	Provide "main" with a return value.
24
252012-12-12  Akim Demaille  <akim@lrde.epita.fr>
26
27	glr.c: scope reduction
28	* data/glr.c (yyreportSyntaxError): Reduce the scope of yysize1 (now
29	yysz).
30
312012-12-12  Akim Demaille  <akim@lrde.epita.fr>
32
33	gnulib: update
34
352012-12-09  Akim Demaille  <akim@lrde.epita.fr>
36
37	news: prepare for forthcoming release
38	* NEWS: Fill paragraph.
39	Reorder.
40	Update examples.
41	Remove line for 2.6.90.
42
432012-12-09  Akim Demaille  <akim@lrde.epita.fr>
44
45	doc: explain how mid-rule actions are translated
46	* doc/bison.texi (Actions in Mid-Rule): Mention and use named references.
47	Split into three subsections, among which...
48	(Mid-Rule Action Translation): this new section.
49
502012-12-09  Akim Demaille  <akim@lrde.epita.fr>
51
52	error: use better locations for unused midrule values
53	On
54
55	  %%
56	  exp: {;} {$$;} { $$ = $1; }
57
58	instead of reporting (with -fcaret -Wmidrule-value)
59
60	  midrule.y:2.6-8: warning: unset value: $$ [-Wmidrule-values]
61	   exp: {;} {$$;} { $$ = $1; }
62	        ^^^
63	  midrule.y:2.6-27: warning: unused value: $2 [-Wmidrule-values]
64	   exp: {;} {$$;} { $$ = $1; }
65	        ^^^^^^^^^^^^^^^^^^^^^^
66
67	report
68
69	  midrule.y:2.6-8: warning: unset value: $$
70	   exp: {;} {$$;} { $$ = $1; }
71	        ^^^
72	  midrule.y:2.10-14: warning: unused value: $2
73	   exp: {;} {$$;} { $$ = $1; }
74	            ^^^^^
75
76	* src/reader.c (grammar_rule_check): When warning about the value of a
77	midrule action, use the location of the midrule action instead of the
78	location of the rule.
79	the location of the part of the rule.
80	* tests/actions.at (Default %printer and %destructor for mid-rule values):
81	Adjust expectations
82	* tests/input.at (Unused values with default %destructor): Ditto.
83	(AT_CHECK_UNUSED_VALUES): Ditto.
84	And use -fcaret.
85
862012-12-09  Akim Demaille  <akim@lrde.epita.fr>
87
88	doc: various minor improvements and fixes
89	* doc/figs/example.dot, doc/figs/example.y: New.
90	* doc/bison.texi: Prefer "token" to TOKEN.
91	Use @group where appropriate.
92	Adjust with style changes in the output (State 0, not state 0).
93	Fix some @ref that were missing the third argument.
94	Fix some incorrect line numbers.
95	Use "nonterminal", not "non-terminal".
96	Fix overfull and underfull TeX hboxes.
97	Put the comments in the index.
98	Remove duplicate index entries.
99	Fuse glossary entries where appropriate.
100	(Understanding): Improve the continuity between sections.
101	Use example.dot to show the whole graph.
102	* doc/Makefile.am: Adjust.
103
1042012-12-09  Akim Demaille  <akim@lrde.epita.fr>
105
106	tests: ignore more useless compiler warnings
107	* tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore complains about
108	using c++ to compile C.
109
1102012-12-09  Akim Demaille  <akim@lrde.epita.fr>
111
112	tests: be robust to C being compiled with a C++11 compiler
113	* tests/glr-regression.at: Use YY_NULL instead of NULL.
114	Comment changes.
115
1162012-12-09  Akim Demaille  <akim@lrde.epita.fr>
117
118	build: beware of Clang++ not supporting POSIXLY_CORRECT
119	* m4/c-working.m4 (BISON_LANG_COMPILER_POSIXLY_CORRECT): New.
120	(BISON_C_COMPILER_POSIXLY_CORRECT): Use it.
121	For consistency with C++, also define BISON_C_WORKS.
122	* m4/cxx.m4 (BISON_CXX_COMPILER_POSIXLY_CORRECT): New.
123	* configure.ac: Use it.
124	* tests/atlocal.in: Get its result.
125	Propagate properly CXX values when used to compile C.
126	When POSIXLY_CORRECT, adjust BISON_C_WORKS and BISON_CXX_WORKS.
127	* tests/local.at (AT_COMPILE): Use BISON_C_WORKS.
128
1292012-12-07  Akim Demaille  <akim@lrde.epita.fr>
130
131	maint: post-release administrivia
132	* NEWS: Add header line for next release.
133	* .prev-version: Record previous version.
134	* cfg.mk (old_NEWS_hash): Auto-update.
135
1362012-12-07  Akim Demaille  <akim@lrde.epita.fr>
137
138	version 2.6.90
139	* NEWS: Record release date.
140
1412012-12-07  Akim Demaille  <akim@lrde.epita.fr>
142
143	build: fix syntax-check error.
144	* cfg.mk: Exclude names-refs, it includes a "double" if (end of first
145	line, first of second line below).
146
147	test.y:43.12-44.59:  symbol not found in production: if
148	 if-stmt-a: IF expr[cond] THEN stmt.list[then] ELSE stmt.list[else] FI
149	            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
150
1512012-12-07  Theophile Ranquet  <ranquet@lrde.epita.fr>
152
153	cpp: simplify the Flex version checking macro
154	* src/flex-scanner,h (FLEX_VERSION): Consider YY_FLEX_SUBMINOR_VERSION
155	defined.
156
1572012-12-07  Theophile Ranquet  <ranquet@lrde.epita.fr>
158
159	news: improve the carets example and fix a typo
160	* NEWS: Here.
161
1622012-12-07  Theophile Ranquet  <ranquet@lrde.epita.fr>
163
164	cpp: improve the Flex version checking macro
165	* src/flex-scanner.h (FLEX_VERSION): Here.
166
1672012-12-07  Theophile Ranquet  <ranquet@lrde.epita.fr>
168
169	carets: improve the code
170	* src/location.c: Remove duplicate documentations.
171	(caret_info): Stylistic change.
172	(location_caret): Many reworks.
173
1742012-12-07  Akim Demaille  <akim@lrde.epita.fr>
175
176	maint: update news
177	* NEWS: There is no 2.6.6, remove its stub.
178
1792012-12-07  Akim Demaille  <akim@lrde.epita.fr>
180
181	build: keep -Wmissing-declarations and -Wmissing-prototypes for modern GCCs
182	Fixes a -Werror failure of xalloc.h used in src.
183	From Eric Blake.
184	http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00006.html
185
186	* configure.ac: Check whether GCC pragma diagnostic push/pop works.
187	Enable these warnings for bison if it does.
188	Enable these warnings for the test suite anyway.
189
1902012-12-07  Akim Demaille  <akim@lrde.epita.fr>
191
192	build: drop -Wcast-qual
193	Suggested by Jim Meyering.
194	http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00017.html
195	* configure.ac (warn_common): Remove -Wcast-qual.
196
1972012-12-07  Akim Demaille  <akim@lrde.epita.fr>
198
199	gnulib: update
200
2012012-12-06  Theophile Ranquet  <ranquet@lrde.epita.fr>
202
203	misc: pacify the Tiny C Compiler
204	* src/graphviz.c (conclude_red): Remove a useless return.
205
2062012-12-05  Theophile Ranquet  <ranquet@lrde.epita.fr>
207
208	cpp: make the check of Flex version portable
209	This was problematic with tcc 0.9.25
210
211	* src/flex-scanner.h (FLEX_VERSION_GT): Rewrite and rename as...
212	(FLEX_VERSION): This.
213
2142012-12-05  Theophile Ranquet  <ranquet@lrde.epita.fr>
215
216	misc: require getline
217	* bootstrap.conf: Here, used by src/location.c.
218	* src/getargs.c (long_options): Rename --flags to --feature.
219
2202012-12-05  Akim Demaille  <akim@lrde.epita.fr>
221
222	c++: support wide strings for file names
223	Reported by Mark Boyall.
224	http://lists.gnu.org/archive/html/help-bison/2011-08/msg00002.html
225
226	* data/location.cc (operator<<): Be templated on the type of
227	output stream.
228	* tests/headers.at (Several parsers): Adjust.
229
2302012-12-05  Theophile Ranquet  <ranquet@lrde.epita.fr>
231
232	doc: document carets
233	* NEWS: Announce it.
234	* doc/bison.texi (Bison Options):  Here.
235
2362012-12-05  Theophile Ranquet  <ranquet@lrde.epita.fr>
237
238	tests: enhance existing tests with carets
239	* tests/actions.at: Unset value.
240	* tests/conflicts.at: Rule useless due to conflicts.
241	* tests/input.at: Missing terminator, unexpected end of file, command line
242	redefinition of variable.
243	* tests/named-refs.at: Many errors.
244	* tests/reduce.at: Useless nonterminals and rules.
245	* tests/regression.at: Large token.
246
2472012-12-05  Theophile Ranquet  <ranquet@lrde.epita.fr>
248
249	errors: show carets
250	* src/locations.c (caret_info): New, persistant information useful
251	for...
252	(location_caret): New, print a caret.
253	(cleanup_caret): Release caret_info cleanly, call it...
254	* src/main.c (main): Here.
255	* src/complain.c (error_message): Call location_caret here.
256
2572012-12-05  Theophile Ranquet  <ranquet@lrde.epita.fr>
258
259	getargs: add support for --feature/-f
260	Introduce -fdiagnostics-show-caret
261
262	* src/getargs.c (feature_flag): New global.
263	* src/getargs.h (feature): New enum.
264
2652012-12-04  Theophile Ranquet  <ranquet@lrde.epita.fr>
266
267	getargs: don't label --language/-l as experimental
268	* NEWS: Announce it.
269	* doc/bison.texi, src/getargs.c (usage): Here.
270
2712012-12-03  Theophile Ranquet  <ranquet@lrde.epita.fr>
272
273	getargs: fix the locations of command-line input
274	* src/getargs.c (command_line_location): Here.
275	* tests/input.at: Adjust.
276
2772012-12-03  Theophile Ranquet  <ranquet@lrde.epita.fr>
278
279	errors: indent missing action code semicolon warning
280	Also, remove a duplicate #define.
281
282	* src/scan-code.l (SC_RULE_ACTION): Here.
283	* tests/actions.at: Adjust.
284
2852012-12-03  Akim Demaille  <akim@lrde.epita.fr>
286
287	parser: accept #line NUM
288	* src/scan-gram.l (scanner): Accept '#line NUM'.
289	(handle_syncline): Adjust to the possible missing file name.
290
2912012-12-03  Akim Demaille  <akim@lrde.epita.fr>
292
293	m4: use a safer pattern to enable/disable output
294	Work on some other areas of Bison revealed that some macros expanded
295	to be expanded only once were actually expanded several times.  This
296	was due to the fact that changecom was not properly restored each
297	time, and macro names appearing in comments were then expanded.
298
299	Introduce begin/end macros which are easier to match that
300	changecom()/changecom(#).
301
302	* data/bison.m4 (b4_output_begin, b4_output_end): New.
303	* data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java,
304	* data/location.cc, data/stack.hh, data/yacc.c:
305	Use them.
306
3072012-12-03  Akim Demaille  <akim@lrde.epita.fr>
308
309	tests: beware of gnulib's need for config.h
310	* tests/skeletons.at, tests/torture.at: Be sure to include config.h
311	where appropriate.
312
3132012-11-30  Akim Demaille  <akim@lrde.epita.fr>
314
315	gnulib: update
316	* lib/yyerror.c: Include config.h since the following stdio.h might be
317	from gnulib.
318
3192012-11-30  Akim Demaille  <akim@lrde.epita.fr>
320
321	yacc.c, glr.c: check and fix the display of locations
322	In some case, negative column number could be displayed.
323	Make YY_LOCATION_PRINT similar to bison's own implementation of
324	locations.  Since the macro is getting fat, make it a static
325	function.
326	Reported by Jonathan Fabrizio.
327
328	* data/c.m4 (yy_location_print_define): Improve the implementation,
329	and generate the yy_location_print_ function.
330	Adjust YY_LOCATION_PRINT.
331	* tests/actions.at (Location Print): New tests.
332
3332012-11-30  Akim Demaille  <akim@lrde.epita.fr>
334
335	formatting changes
336	* data/c.m4: Fix comments, put macros in a more natural order.
337	Space changes (from M-x whitespace-cleanup).
338	* src/location.c: Fix spaces.
339	* tests/actions.at: Space changes.
340
3412012-11-30  Akim Demaille  <akim@lrde.epita.fr>
342
343	glr.c: remove stray macro
344	* data/glr.c (YYOPTIONAL_LOC): Remove, unused since commit
345	769a8ef9bcb5e14d0be9d0869f5dca20ab093930.
346
3472012-11-29  Akim Demaille  <akim@lrde.epita.fr>
348
349	doc: minor fixes
350	* doc/bison.texi: Use stderr for error messages.
351	Meta-variables are usually spelled in lower case.
352	Use @code for function names.
353
3542012-11-29  Akim Demaille  <akim@lrde.epita.fr>
355
356	doc: improve the index
357	* doc/bison.texi: Fix uses of "deffn" so that the arguments of the
358	directives do not show in the index.
359	Remove a duplicate entry for api.pure.
360
3612012-11-29  Theophile Ranquet  <ranquet@lrde.epita.fr>
362
363	doc: introduce api.pure full, rearrange some examples
364	* NEWS: Add entry.
365	* doc/bison.texi (%define Summary): Show the old Yacc behaviour.
366	(Parser Function): Move parse-param examples here.
367	(Pure Calling): Remove parse-param examples.
368	(Error Reporting): Don't show the old behavior, stick to 'full'.
369
3702012-11-29  Theophile Ranquet  <ranquet@lrde.epita.fr>
371
372	yacc.c: support "%define api.pure full"
373	This makes the interface for yyerror() pure without the need for a spurious
374	parse_param.
375
376	* data/yacc.c (b4_pure_if, b4_pure_flag): New definition, accept three states.
377	(b4_yacc_pure_if): Rename as...
378	(b4_yyerror_arg_loc_if): This, and use b4_pure_flag.
379	* tests/actions.at (%define api.pure): Modernize.
380	* test/calc.at (Simple LALR Calculator): Modernize.
381	* tests/local.at (AT_YYERROR_ARG_LOC_IF): Adjust.
382
3832012-11-26  Theophile Ranquet  <ranquet@lrde.epita.fr>
384
385	local.at: improvements
386	* tests/local.at (AT_YYERROR_FORMALS): Make llocp const.
387	(AT_PURE_AND_LOC_IF, AT_GLR_OR_PARAM_IF): Remove, expand...
388	(AT_YYERROR_ARG_LOC_IF): Here, and use m4_join for readability.
389
3902012-11-26  Akim Demaille  <akim@lrde.epita.fr>
391
392	Merge remote-tracking branch 'origin/branch-2.6' into maint
393	* origin/branch-2.6:
394	  yacc.c: always initialize yylloc
395	  doc: one of the fixes for an ambiguous grammar was ambiguous too
396	  doc: fix the dangling else with precedence directives
397	  doc: prefer "token" to TOKEN
398	  doc: formatting changes
399
4002012-11-23  Theophile Ranquet  <ranquet@lrde.epita.fr>
401
402	yacc.c: always initialize yylloc
403	The initial location might be used if the parser starts by an empty
404	reduction, so really ensure proper initialization of the initial
405	location.  The previous approach fails for PostgreSQL, which uses
406	Reported by Peter Eisentraut.
407	http://lists.gnu.org/archive/html/bug-bison/2012-11/msg00023.html
408	With help from Théophile Ranquet.
409
410	* data/yacc.c (b4_declare_scanner_communication_variables): Be sure
411	to initialize yylloc, even when its structure is unknown.
412	(yyparse): Simplify the call to b4_dollar_pushdef.
413	* tests/actions.at (Initial location): Check of similar pattern
414	as in the case of PostgreSQL.
415
4162012-11-23  Akim Demaille  <akim@lrde.epita.fr>
417
418	scanner: issue a single error for groups of invalid characters
419	* src/scan-gram.l: Scan groups of invalid characters together.
420	* tests/input.at, tests/named-refs.at: Adjust.
421
4222012-11-23  Akim Demaille  <akim@lrde.epita.fr>
423
424	tests: formatting changes
425	* tests/named-refs.at: Here.
426
4272012-11-23  Akim Demaille  <akim@lrde.epita.fr>
428
429	doc: one of the fixes for an ambiguous grammar was ambiguous too
430	Reported by Аскар Сафин.
431	http://lists.gnu.org/archive/html/bug-bison/2012-11/msg00024.html
432
433	* doc/bison.texi (Reduce/Reduce): Fix the resulting ambiguity using
434	precedence/associativity directives.
435
4362012-11-22  Akim Demaille  <akim@lrde.epita.fr>
437
438	doc: fix the dangling else with precedence directives
439	* doc/bison.texi (Non Operators): New node.
440	(Shift/Reduce): Point to it.
441	Don't promote "%expect n" too much.
442
4432012-11-22  Akim Demaille  <akim@lrde.epita.fr>
444
445	doc: prefer "token" to TOKEN
446	This is more readable in short examples.
447
448	* doc/bison.texi (Shift/Reduce): here.
449	Make "win" and "lose" action more alike.
450
4512012-11-22  Akim Demaille  <akim@lrde.epita.fr>
452
453	doc: formatting changes
454	* doc/bison.texi: Use @group.
455
4562012-11-14  Akim Demaille  <akim@lrde.epita.fr>
457
458	scanner: use explicit "ignore" statements
459	* src/scan-gram.l: here.
460
4612012-11-12  Theophile Ranquet  <ranquet@lrde.epita.fr>
462
463	tests: close files in glr-regression
464	* tests/glr-regression.at: Here.
465
4662012-11-12  Theophile Ranquet  <ranquet@lrde.epita.fr>
467
468	xml: match DOT output and xml2dot.xsl processing
469	Make the DOT produced by XSLT processing equivalent to the one made with the
470	--graph option.
471
472	* data/xslt/xml2dot.xsl: Stylistic changes, and add support for reductions.
473	* doc/bison.texi (Xml): Update.
474	* src/graphviz.c (conclude_red): Minor stylistic changes to DOT internals.
475	(output_red): Swap enabled and disabled reductions output, for coherence
476	with XSLT output.
477	* src/print_graph.c (print_core): Minor stylistic change to States' output.
478	(print_actions): Swap order of output for reductions and transitions.
479	* tests/local.at (AT_BISON_CHECK_XML): Ignore differences in order.
480	* tests/output.at: Adjust to changes in DOT internals.
481
4822012-11-12  Theophile Ranquet  <ranquet@lrde.epita.fr>
483
484	xml: factor xslt space template
485	* data/xslt/bison.xsl (space): New, import from...
486	* data/xslt/xml2text.xsl: Here.
487
4882012-11-12  Theophile Ranquet  <ranquet@lrde.epita.fr>
489
490	graph: fix a memory leak
491	* src/graphviz.c (output_red): Here.
492
4932012-11-12  Theophile Ranquet  <ranquet@lrde.epita.fr>
494
495	xml: documentation
496	The XML output combined with the XSL Transformations provided in data/ are
497	incredibly useful, they should be documented.
498
499	* doc/bison.texi (Xml): New node.
500
5012012-11-12  Theophile Ranquet  <ranquet@lrde.epita.fr>
502
503	output: capitalize State
504	* src/print.c (print_state): Here.
505	* tests/conflicts.at, tests/existing.at, tests/local.at, tests/reduce.at,
506	tests/regression.at, tests/sets.at: Adjust.
507
5082012-11-12  Akim Demaille  <akim@lrde.epita.fr>
509
510	maint: address syntax-check errors.
511	* cfg.mk: Ignore the "error" call in tests/c++.at, it is not to be
512	translated.
513	* doc/bison.texi: Fix incorrect @pxref use.
514	* po/POTFILES.in: Add missing file.
515	* src/print_graph.c: Remove useless include.
516
5172012-11-12  Akim Demaille  <akim@lrde.epita.fr>
518
519	tests: use valgrind where appropriate
520	Reported by Théophile Ranquet.
521
522	* cfg.mk (sc_at_parser_check): New.
523	* tests/c++.at: Fix use of AT_CHECK vs. AT_PARSER_CHECK.
524
5252012-11-12  Akim Demaille  <akim@lrde.epita.fr>
526
527	Merge remote-tracking branch 'origin/branch-2.6' into maint
528	* origin/branch-2.6:
529	  tests: use valgrind where appropriate
530	  tests: don't expect $EGREP to support -w
531
5322012-11-10  Akim Demaille  <akim@lrde.epita.fr>
533
534	tests: use valgrind where appropriate
535	Reported by Théophile Ranquet.
536
537	* tests/glr-regression.at: Rewrite some test cases so that AT_PARSER_CHECK,
538	which runs valgrind, is exposed with the parser, not with "echo".
539	* tests/local.at, tests/regression.at, tests/headers.at:
540	Use AT_PARSER_CHECK for generated parsers.
541
5422012-11-08  Akim Demaille  <akim@lrde.epita.fr>
543
544	tests: don't expect $EGREP to support -w
545	Does not work on Solaris 10.  Reported by Dennis Clarke.
546	http://lists.gnu.org/archive/html/bug-bison/2012-11/msg00009.html
547	* tests/headers.at (Several parsers): Use Perl instead.
548	While at it, run it only once, on all the generated headers.
549	Adjust to YY_NULL be defined in position.hh.
550
5512012-11-08  Akim Demaille  <akim@lrde.epita.fr>
552
553	tests: more possible error compiler messages for "#error"
554	* tests/synclines.at (AT_SYNCLINES_COMPILE): Adjust for Clang.
555	Verified with GCC 4.0, 4.2 to 4.8, and Clang 2.9, 3.2: none skip.
556
5572012-11-08  Akim Demaille  <akim@lrde.epita.fr>
558
559	regen
560
5612012-11-08  Akim Demaille  <akim@lrde.epita.fr>
562
563	Merge branch 'branch-2.6' into maint
564	* origin/branch-2.6:
565	  maint: post-release administrivia
566	  version 2.6.5
567	  regen
568	  tests: syntax-check
569	  tests: beware of compilers that do not support POSIXLY_CORRECT
570	  gnulib: update
571
5722012-11-07  Akim Demaille  <akim@lrde.epita.fr>
573
574	maint: post-release administrivia
575	* NEWS: Add header line for next release.
576	* .prev-version: Record previous version.
577	* cfg.mk (old_NEWS_hash): Auto-update.
578
5792012-11-07  Akim Demaille  <akim@lrde.epita.fr>
580
581	version 2.6.5
582	* NEWS: Record release date.
583
5842012-11-07  Akim Demaille  <akim@lrde.epita.fr>
585
586	regen
587
5882012-11-07  Akim Demaille  <akim@lrde.epita.fr>
589
590	tests: syntax-check
591	* tests/actions.at: Fix typo.
592
5932012-11-07  Akim Demaille  <akim@lrde.epita.fr>
594
595	tests: beware of compilers that do not support POSIXLY_CORRECT
596	Running "maintainer-release-check" on OS X with Clang 2.9 fails,
597	because "clang-mp-2.9 -o test -g test.c" launches "/usr/bin/dsymutil
598	test -o test.dSYM" which fails with "error: unable to open executable
599	'-o'".
600
601	* m4/c-working.m4 (BISON_CHECK_WITH_POSIXLY_CORRECT)
602	(BISON_C_COMPILER_POSIXLY_CORRECT): New.
603	* configure.ac: Use the latter.
604	* tests/atlocal.in (POSIXLY_CORRECT_IS_EXPORTED): New.
605	* tests/local.at (AT_BISON_CHECK_WARNINGS_): Use it instead of computing its
606	value each time.
607	(AT_QUELL_VALGRIND): Skip tests that cannot work because of compilers
608	that do not support POSIXLY_CORRECT.
609
6102012-11-07  Akim Demaille  <akim@lrde.epita.fr>
611
612	gnulib: update
613
6142012-11-06  Akim Demaille  <akim@lrde.epita.fr>
615
616	Merge branch 'branch-2.6' into maint
617	* origin/branch-2.6: (24 commits)
618	  tests: calc: modernize the use of locations
619	  tests: remove useless location initializations
620	  lalr1.cc: always initialize yylval.
621	  tests: check that C and C++ objects can be linked together.
622	  yacc.c: also disable -Wuninitialized.
623	  glr.cc, yacc.c: initialize yylloc properly
624	  yacc.c, glr.c: a better YY_LOCATION_PRINT
625	  yacc.c: simplify initialization
626	  doc: formatting changes
627	  c++: fix position operator signatures
628	  tests: remove useless location initialization.
629	  tests: fix locations in C
630	  tests: handle %parse-param in the generated yyerror
631	  tests: simplifications
632	  grammars: fix display of nul character in error message
633	  tests: sort
634	  tests: cosmetic changes
635	  comment changes
636	  autoconf: update
637	  gnulib: update
638	  ...
639
6402012-11-06  Akim Demaille  <akim@lrde.epita.fr>
641
642	tests: calc: modernize the use of locations
643	* tests/calc.at: Don't initialize the location, let the parser
644	do it.
645	Use a $printer.
646	Change some testing input to be easier to distinguish (instead of always
647	"0 0" for instance).
648
6492012-11-06  Akim Demaille  <akim@lrde.epita.fr>
650
651	tests: remove useless location initializations
652	* tests/actions.at, tests/calc.at: here.
653
6542012-11-06  Akim Demaille  <akim@lrde.epita.fr>
655
656	lalr1.cc: always initialize yylval.
657	* data/lalr1.cc: here.
658
6592012-11-06  Akim Demaille  <akim@lrde.epita.fr>
660
661	tests: check that C and C++ objects can be linked together.
662	* tests/local.at (AT_SKIP_IF_CANNOT_LINK_C_AND_CXX): New.
663	* tests/headers.at (Several parsers): Use it.
664
6652012-11-06  Akim Demaille  <akim@lrde.epita.fr>
666
667	yacc.c: also disable -Wuninitialized.
668	* data/yacc.c (YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN): For some versions
669	of GCC, -Wmaybe-uninitialized alone does not suffice.
670
6712012-11-06  Akim Demaille  <akim@lrde.epita.fr>
672
673	glr.cc, yacc.c: initialize yylloc properly
674	There are several issues to address here.  One is that yylloc should
675	be initialized when possible.  Another is that the push parser needs
676	to update yypushed_loc when the user modified it.  And if the parser
677	starts by a reduction of an empty, it uses the first location on the
678	stack, which, therefore, must also be initialized to this initial
679	location.
680
681	This is getting complex, especially since because initializing a
682	global (impure interface) is different from initializing a local
683	variable.  To simplify, the local yylloc is not initialized during its
684	definition.
685
686	* data/c.m4 (b4_yyloc_default_define): Replace by...
687	(b4_yyloc_default): this.
688	Adjust dependencies.
689	* data/glr.cc: Initialize yylloc.
690	* data/yacc.c (b4_declare_scanner_communication_variables):
691	Initialize yylloc during its definition.
692	Don't define yyloc_default.
693	(yypush_parse): The location formal is not const, as we might
694	initialize it.
695	(yyparse): Define yyloc_default.
696	Use it before running the user initial action.
697	Possibly update the first location on the stack, and the pushed
698	location after the user initial action.
699	* tests/actions.at (Initial locations): Check that the initial
700	location is correct.
701
7022012-11-06  Akim Demaille  <akim@lrde.epita.fr>
703
704	yacc.c, glr.c: a better YY_LOCATION_PRINT
705	* data/c.m4 (b4_yy_location_print_define): New.
706	Now issues "short" locations, e.g., "1.1" instead of "1.1-1.1".
707	Was initially a function, but then we face "static but unused"
708	warnings.
709	Simpler as a macro.
710	* tests/local.at, data/glr.c, data/yacc.c: Use it instead of duplicating.
711	* tests/actions.at: Adjust expectations.
712
7132012-11-06  Akim Demaille  <akim@lrde.epita.fr>
714
715	yacc.c: simplify initialization
716	* data/yacc.c: Fuse the initializations of yyssp, yyss and the like.
717	Remove an obsolete comment: we do initialize these initial stack
718	members (in some cases).
719
7202012-11-05  Akim Demaille  <akim@lrde.epita.fr>
721
722	doc: formatting changes
723	* doc/bison.texi: In a pointer type.
724
7252012-11-05  Akim Demaille  <akim@lrde.epita.fr>
726
727	c++: fix position operator signatures
728	* data/location.cc (operator+=, operator-=): Remove const from return
729	type.
730
7312012-11-05  Akim Demaille  <akim@lrde.epita.fr>
732
733	tests: remove useless location initialization.
734	* tests/glr-regression.at: here.
735	glr.c does initialize yylloc.
736
7372012-11-05  Akim Demaille  <akim@lrde.epita.fr>
738
739	tests: fix locations in C
740	* tests/local.at (AT_YYERROR_DEFINE): Don't display the end of the location
741	if it is not after its beginning.
742	* tests/actions.at, tests/cxx-type.at: Adjust the expected output.
743
7442012-11-05  Akim Demaille  <akim@lrde.epita.fr>
745
746	tests: handle %parse-param in the generated yyerror
747	* tests/local.at (AT_PARSE_PARAMS): New.
748	(AT_YYERROR_FORMALS, AT_YYERROR_DEFINE): Use it to add the parse-param
749	to yyerror.
750	* tests/calc.at, tests/regression.at: Use AT_YYERROR_DEFINE and
751	AT_YYERROR_DECLARE, now that they handle properly the parse-params.
752	Be sure to let AT_BISON_OPTION_PUSHDEFS now what parse-params are used.
753
7542012-11-05  Akim Demaille  <akim@lrde.epita.fr>
755
756	tests: simplifications
757	* tests/actions.at (Exotic Dollars): Formatting changes.
758	Use AT_FULL_COMPILE.
759	(AT_CHECK_PRINTER_AND_DESTRUCTOR): Remove useless initialization of @$.
760
7612012-11-01  Akim Demaille  <akim@lrde.epita.fr>
762
763	grammars: fix display of nul character in error message
764	Reported by Marc Mendiola.
765	http://lists.gnu.org/archive/html/help-bison/2012-10/msg00017.html
766
767	* gnulib: Update to get quote_mem.
768	* src/scan-gram.l: Use it.
769	* tests/input.at (Invalid inputs): Additional checks.
770	* tests/named-refs.at: Likewise.
771
7722012-11-01  Akim Demaille  <akim@lrde.epita.fr>
773
774	tests: sort
775	* tests/regression.at (Invalid inputs, Invalid inputs with {}): Move to...
776	* tests/input.at: here, for consistency.
777
7782012-11-01  Akim Demaille  <akim@lrde.epita.fr>
779
780	tests: cosmetic changes
781	* tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): Improve the
782	displayed title.
783
7842012-11-01  Akim Demaille  <akim@lrde.epita.fr>
785
786	comment changes
787	* data/lalr1.cc: here.
788
7892012-11-01  Akim Demaille  <akim@lrde.epita.fr>
790
791	autoconf: update
792	There are comment changes only in the files we use.
793
7942012-11-01  Akim Demaille  <akim@lrde.epita.fr>
795
796	gnulib: update
797
7982012-10-28  Akim Demaille  <akim@lrde.epita.fr>
799
800	regen
801
8022012-10-28  Akim Demaille  <akim@lrde.epita.fr>
803
804	yacc.c: initialize yylval and yylloc.
805	When generating a pure push parser, the initialization of yylval and
806	yylloc may not be visible to the compiler.  With warnings enabled, GCC
807	4.3.6, 4.4.7, 4.5.4, and 4.6.3 report uninitialized uses of
808	yylval/yylloc.  Using local pragmas to disable these warnings is not
809	supported before 4.6, and 4.6 does not support it properly.  So
810	initialize yylval and yylloc at their definition.  Reported by Peter
811	Simons.  See
812	http://lists.gnu.org/archive/html/bison-patches/2012-10/msg00133.html
813
814	* data/c.m4 (b4_yyloc_default_define): New.
815	* data/yacc.c: Use it when locations are requested.
816	(YYLVAL_INITIALIZE): Replace by...
817	(YY_INITIAL_VALUE): this.
818	(yyparse): Initialize yylloc and yylval.
819	Therefore, remove the initialization of yylloc's field.
820	* data/glr.c: Likewise.
821
8222012-10-26  Akim Demaille  <akim@lrde.epita.fr>
823
824	Merge branch 'branch-2.6' into maint
825	* origin/branch-2.6:
826	  regen
827	  yacc.c: do not define location support when not using locations
828	  maint: be compilable with GCC 4.0
829	  tests: address a warning from GCC 4.4
830	  tests: don't use options that Clang does not support
831	  tests: restore the tests on -Werror
832	  regen
833	  parse-gram: update the Bison interface
834	  fix comment
835
8362012-10-26  Akim Demaille  <akim@lrde.epita.fr>
837
838	doc: minor style change
839	* doc/figs/example-reduce.txt: here.
840
8412012-10-26  Akim Demaille  <akim@lrde.epita.fr>
842
843	maint: use gendocs's new -I option
844	* gnulib: Update gendocs.
845	* cfg.mk (gendocs_options_): New.
846
8472012-10-26  Akim Demaille  <akim@lrde.epita.fr>
848
849	regen
850
8512012-10-26  Akim Demaille  <akim@lrde.epita.fr>
852
853	yacc.c: don't use _Pragma GCC diagnostic with 4.6
854	Reported by Peter Simons.
855	http://lists.gnu.org/archive/html/bug-bison/2012-10/msg00033.html
856
857	* data/yacc.c (b4_declare_scanner_communication_variables): 4.7
858	seems fine though.
859
8602012-10-26  Akim Demaille  <akim@lrde.epita.fr>
861
862	regen
863
8642012-10-26  Akim Demaille  <akim@lrde.epita.fr>
865
866	yacc.c: do not define location support when not using locations
867	* data/yacc.c (YYLLOC_DEFAULT, YYRHSLOC): Don't define when not
868	using locations.
869
8702012-10-26  Akim Demaille  <akim@lrde.epita.fr>
871
872	maint: be compilable with GCC 4.0
873	The "shadows a global declaration" warning in GCC 4.0 was a bit
874	annoying.  It does not like that a type name be used in a prototype of
875	a function (not the implementation, just the declaration):
876
877	  In file included from src/LR0.c:38:
878	  src/reader.h:56: warning: declaration of 'named_ref' shadows a
879	                            global declaration
880	  src/named-ref.h:35: warning: shadowed declaration is here
881
882	It does not like either when a global variable name is used in a
883	prototype.  Flex 2.5.37 generates this prototype:
884
885	  void gram_set_debug (int debug_flag  );
886
887	* src/getargs.h, src/getargs.c (debug_flag): Rename as...
888	(debug): this.
889	Adjust dependencies.
890	* src/reader.h: Don't use "named_ref" as a formal argument name.
891
8922012-10-25  Akim Demaille  <akim@lrde.epita.fr>
893
894	tests: address a warning from GCC 4.4
895	236. torture.at:465: testing Exploding the Stack Size with Alloca ...
896	../../../tests/torture.at:474: bison -o input.c input.y
897	../../../tests/torture.at:474: $CC $CFLAGS $CPPFLAGS $LDFLAGS -o input input.c $LIBS
898	stderr:
899	cc1: warnings being treated as errors
900	input.y: In function 'main':
901	input.y:60: error: 'status' may be used uninitialized in this function
902
903	* tests/torture.at (AT_DATA_STACK_TORTURE): Initial status to avoid
904	the previous error.
905
9062012-10-25  Akim Demaille  <akim@lrde.epita.fr>
907
908	tests: don't use options that Clang does not support
909	* configure.ac (WARN_CFLAGS, WARN_CXXFLAGS): Do not include options
910	that Clang does not support.
911
9122012-10-25  Akim Demaille  <akim@lrde.epita.fr>
913
914	tests: restore the tests on -Werror
915	When run as /bin/sh, Bash sets the shell variable POSIXLY_CORRECT to
916	y.  The test suite checks for the envvar POSIXLY_CORRECT to turn of
917	some tests not supported in POSIX mode.  Restore these tests.
918
919	Reported by the Hydra build farm, from Rob Vermaas.
920
921	* tests/local.at (AT_BISON_CHECK_WARNINGS_): Check the envvar
922	POSIXLY_CORRECT, not the shell variable.
923
9242012-10-25  Akim Demaille  <akim@lrde.epita.fr>
925
926	regen
927
9282012-10-25  Akim Demaille  <akim@lrde.epita.fr>
929
930	parse-gram: update the Bison interface
931	* src/parse-gram.y (%pure-parser, %name-prefix): Replace with...
932	(%define api.pure, %define api.prefix)
933	* src/location.h, src/scan-gram.h: Adjust to api.prefix.
934
9352012-10-25  Akim Demaille  <akim@lrde.epita.fr>
936
937	fix comment
938	* data/c.m4 (b4_YYDEBUG_define): here.
939
9402012-10-23  Akim Demaille  <akim@lrde.epita.fr>
941
942	Merge branch 'branch-2.6' into maint
943	* origin/branch-2.6:
944	  maint: post-release administrivia
945	  version 2.6.4
946	  regen
947	  2.6.4: botched 2.6.3
948
9492012-10-23  Akim Demaille  <akim@lrde.epita.fr>
950
951	maint: post-release administrivia
952	* NEWS: Add header line for next release.
953	* .prev-version: Record previous version.
954	* cfg.mk (old_NEWS_hash): Auto-update.
955
9562012-10-23  Akim Demaille  <akim@lrde.epita.fr>
957
958	version 2.6.4
959	* NEWS: Record release date.
960
9612012-10-22  Akim Demaille  <akim@lrde.epita.fr>
962
963	regen
964
9652012-10-22  Akim Demaille  <akim@lrde.epita.fr>
966
967	2.6.4: botched 2.6.3
968	* NEWS: here.
969
9702012-10-22  Akim Demaille  <akim@lrde.epita.fr>
971
972	Merge branch '2.6.3' into maint
973	* 2.6.3: (22 commits)
974	  maint: post-release administrivia
975	  version 2.6.3
976	  gnulib: update
977	  tests: check %no-lines
978	  NEWS: warnings with clang
979	  warnings: avoid warnings from clang
980	  tests: no longer disable -O compiler options
981	  yacc.c: initialize yylval in pure-parser mode
982	  skeletons: style changes
983	  tests: minor improvements
984	  tests: use $PERL instead of perl
985	  build: look for Perl in configure.
986	  tests: fix sed portability issues
987	  tests: diff -u is not portable
988	  maint: word changes
989	  lalr1.cc: fix test suite portability
990	  maint: fix an erroneous include
991	  tests: check that headers are self contained
992	  doc: add missing documentation for --report
993	  headers: move CPP guards into YY_*_INCLUDED to avoid collisions
994	  ...
995
9962012-10-22  Akim Demaille  <akim@lrde.epita.fr>
997
998	maint: post-release administrivia
999	* NEWS: Add header line for next release.
1000	* .prev-version: Record previous version.
1001	* cfg.mk (old_NEWS_hash): Auto-update.
1002
10032012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1004
1005	version 2.6.3
1006	* NEWS: Record release date.
1007
10082012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1009
1010	gnulib: update
1011
10122012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1013
1014	tests: check %no-lines
1015	* tests/synclines.at: here.
1016
10172012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1018
1019	NEWS: warnings with clang
1020	* NEWS: here.
1021
10222012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1023
1024	warnings: avoid warnings from clang
1025	Fix the following warning
1026
1027	  parse-gram.c:2078:14: error: equality comparison with extraneous parentheses
1028	                        [-Werror,-Wparentheses-equality]
1029	    if (((yyn) == (-91)))
1030	         ~~~~~~^~~~~~~~
1031	  parse-gram.c:2078:14: note: remove extraneous parentheses around the
1032	                        comparison to silence this warning
1033	    if (((yyn) == (-91)))
1034	        ~      ^       ~
1035	  parse-gram.c:2078:14: note: use '=' to turn this equality comparison into
1036	                        an assignment
1037	    if (((yyn) == (-91)))
1038	               ^~
1039	               =
1040	  1 error generated.
1041
1042	and the following one:
1043
1044	  input.cc:740:1: error: function declared 'noreturn' should not return
1045	                         [-Werror,-Winvalid-noreturn]
1046	  static void yyMemoryExhausted (yyGLRStack* yystackp)
1047	    __attribute__ ((__noreturn__));
1048	  static void
1049	  yyMemoryExhausted (yyGLRStack* yystackp)
1050	  {
1051	    YYLONGJMP (yystackp->yyexception_buffer, 2);
1052	  }
1053	  ^
1054	  1 warning and 1 error generated.
1055
1056	This is Apple clang version 3.1 (tags/Apple/clang-318.0.61).
1057
1058	* data/c.m4 (b4_table_value_equals): Use (!!(A == B)) instead of (A == B)
1059	to avoid this warning.
1060	Any reasonable compiler should generate the same code.
1061	* src/uniqstr.h (UNIQSTR_EQ): Likewise.
1062	* data/glr.c (LONGJMP): abort after longjmp to pacify clang.
1063
10642012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1065
1066	tests: no longer disable -O compiler options
1067	Tests are running without -O since
1068	f377f69fec28013c79db4efe12bbb9d48987fb2c because some warnings (about
1069	yylval not being initialized) show only when GCC is given -O2.  The
1070	previous patch fixes the warnings. Run the test suite with compiler
1071	options unmodified.
1072
1073	* tests/atlocal.in (O0CFLAGS, O0CXXFLAGS): Remove, use CFLAGS and
1074	CXXFLAGS.
1075
10762012-10-22  Paul Eggert  <eggert@cs.ucla.edu>
1077
1078	yacc.c: initialize yylval in pure-parser mode
1079	See http://lists.gnu.org/archive/html/bison-patches/2012-08/msg00024.html
1080	(spreading over September and October).
1081
1082	* data/yacc.c (YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN)
1083	(YY_IGNORE_MAYBE_UNINITIALIZED_END, YYLVAL_INITIALIZE):
1084	New macros.  Use them to suppress an unwanted GCC diagnostic.
1085
10862012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1087
1088	skeletons: style changes
1089	* data/yacc.c, data/glr.c: Prefer Title case for (CPP) macro arguments.
1090
10912012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1092
1093	tests: minor improvements
1094	* tests/c++.at: Space changes.
1095	Use AT_YYERROR_DEFINE.
1096	* tests/local.at (AT_YYERROR_DEFINE): Issue errors on unknown languages.
1097
10982012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1099
1100	tests: use $PERL instead of perl
1101	* tests/atlocal.in (PERL): New.
1102	Sort.
1103	* tests/calc.at, tests/input.at, tests/local.at, tests/regression.at,
1104	* tests/skeletons.at, tests/synclines.at, tests/torture.at: here.
1105
11062012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1107
1108	build: look for Perl in configure.
1109	Bison uses "/usr/bin/perl" or "perl" in several places, and it does
1110	not appear to be a problem.  But, at least to make it simpler to
1111	change PERL on the make command line, check for perl in configure.
1112
1113	* configure.ac (PERL): New.
1114	* doc/Doxyfile.in, doc/Makefile.am, tests/bison.in: Use it.
1115
11162012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1117
1118	tests: fix sed portability issues
1119	Reported by Didier Godefroy,
1120	<http://lists.gnu.org/archive/html/bug-bison/2012-10/msg00005.html>.
1121
1122	* tests/calc.at (AT_CHECK_SPACES): Use Perl.
1123
11242012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1125
1126	tests: diff -u is not portable
1127	Reported by Didier Godefroy
1128	<http://lists.gnu.org/archive/html/bug-bison/2012-10/msg00006.html>.
1129
1130	* tests/existing.at (AT_LALR1_DIFF_CHECK): Skip if diff -u does not
1131	work.
1132
11332012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1134
1135	maint: word changes
1136	* README-hacking (Typical errors): Improve wording.
1137
11382012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1139
1140	lalr1.cc: fix test suite portability
1141	Reported by Rob Vermaas' Hydra build farm on x86_64-darwin 10.2.0 with
1142	G++ 4.6.3.
1143
1144	* tests/headers.at (Several parsers): Include AT_DATA_SOURCE_PROLOGUE
1145	in the files to compile.
1146	* data/location.cc: Do not include twice string and iostream (once
1147	by position.hh, and then by location.hh).
1148	* README-hacking (Typical errors): Some hints for other maintainers.
1149
11502012-10-22  Theophile Ranquet  <theophile.ranquet@gmail.com>
1151
1152	maint: fix an erroneous include
1153	This fixes test 130 (Several parsers).
1154
1155	* data/location.cc: Include <iostream> rather than <iosfwd> since
1156	we really need << on strings for instance.
1157	* NEWS: Document this.
1158
11592012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1160
1161	tests: check that headers are self contained
1162	Reported by Alexandre Duret-Lutz.
1163
1164	* tests/headers.at (Several parsers): here.
1165
11662012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1167
1168	doc: add missing documentation for --report
1169	* doc/bison.texi (Bison Options): Document --report's "solved", "all",
1170	and "none".
1171
11722012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1173
1174	headers: move CPP guards into YY_*_INCLUDED to avoid collisions
1175	See <http://lists.gnu.org/archive/html/bug-bison/2012-09/msg00016.html>.
1176
1177	* data/c.m4 (b4_cpp_guard): Prepend YY_ and append _INCLUDED.
1178	* tests/headers.at: Adjust.
1179	* NEWS, doc/bison.texi: Document.
1180
11812012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1182
1183	minor changes.
1184	* NEWS: Word changes.
1185	* doc/bison.texi: Spell check.
1186	Fix minor issues.
1187	* tests/headers.at: Comment and formatting changes.
1188
11892012-10-22  Akim Demaille  <akim@lrde.epita.fr>
1190
1191	gnulib: update
1192
11932012-10-19  Akim Demaille  <akim@lrde.epita.fr>
1194
1195	gnulib: update
1196
11972012-10-19  Akim Demaille  <akim@lrde.epita.fr>
1198
1199	xml: slight improvement of the DOT output
1200	This was completely forgotten...  Nothing about XML is actually
1201	documented...
1202
1203	* data/xslt/xml2dot.xsl: Use boxes, and Courier font.
1204
12052012-10-19  Akim Demaille  <akim@lrde.epita.fr>
1206
1207	maint: check for dot before using it
1208	* configure.ac: here.
1209	* doc/Makefile.am: Use $(DOT).
1210	Ship the generated files, to spare the user the need for Graphviz.
1211
12122012-10-18  Theophile Ranquet  <theophile.ranquet@gmail.com>
1213
1214	graphs: documentation
1215	Note that 'make web-manual' fails.
1216
1217	* NEWS: Document these changes.
1218	* doc/Makefile.am: Adjust to generate example files.
1219	* doc/bison.texi: Add a Graphviz section after "Understanding::", the section
1220	describing the .output file, because these are similar.
1221	* doc/figs/example-reduce.dot, doc/figs/example-reduce.txt,
1222	doc/figs/example-shift.dot, doc/figs/example-shift.txt: New, minimal
1223	examples to illustrate the documentation.
1224
12252012-10-18  Theophile Ranquet  <theophile.ranquet@gmail.com>
1226
1227	graphs: add tests, introducing -k graph
1228	* tests/output.at (AT_TEST): New.
1229	Use it to add 6 --graph tests.
1230
12312012-10-18  Theophile Ranquet  <theophile.ranquet@gmail.com>
1232
1233	graphs: change the output format of the rules
1234	Use something similar to the report file.
1235
1236	* src/print_graph.c (print_lhs): New, obstack equivalent of rule_lhs_print.
1237	(print_core): Use here.
1238
12392012-10-18  Theophile Ranquet  <theophile.ranquet@gmail.com>
1240
1241	graphs: style changes
1242	* src/graphviz.c (start_graph): Use courier font.
1243	(conclude_red): Use commas to separate attributes. Show the acceptation
1244	as a special reduction, with a blue color and an "Acc" label. Show the
1245	lookahead tokens between square brackets.
1246	(output_red): No longer label default reductions.
1247	* src/print_graph.c (print_core): Refactor spacing, and print an
1248	additional space between a rule's rhs and its lookahead tokens. Also,
1249	capitalize "State".
1250	(print_actions): Style, move a declaration.
1251
12522012-10-18  Theophile Ranquet  <theophile.ranquet@gmail.com>
1253
1254	graphs: address an issue with R/R conflicts
1255	All disabled reductions should now be shown as such.
1256
1257	* src/graphviz.c (output_red): Here.
1258	(conclude_red): New.
1259
12602012-10-16  Akim Demaille  <akim@lrde.epita.fr>
1261
1262	java: fixes
1263	* data/java.m4: Remove stray M4 characters.
1264
12652012-10-12  Akim Demaille  <akim@lrde.epita.fr>
1266
1267	java: use api.location.type and api.position.type
1268	* data/java.m4: here.
1269	* NEWS, doc/bison.texi, tests/java.at: Adjust.
1270
12712012-10-12  Akim Demaille  <akim@lrde.epita.fr>
1272
1273	tests: check %no-lines
1274	* tests/synclines.at: here.
1275
12762012-10-12  Akim Demaille  <akim@lrde.epita.fr>
1277
1278	tests: minor simplification
1279	* tests/headers.at (Several parsers): Use *.y even for C++.
1280
12812012-10-11  Akim Demaille  <akim@lrde.epita.fr>
1282
1283	graphs: stylistic changes.
1284	* src/graphviz.c (output_red): Comment and formatting changes.
1285
12862012-10-11  Theophile Ranquet  <ranquet@lrde.epita.fr>
1287
1288	graphs: minor style changes
1289	* src/graphviz.c (output_red): Fix C90 issues.
1290	Reduce variable scopes.
1291
12922012-10-11  Theophile Ranquet  <ranquet@lrde.epita.fr>
1293
1294	graphs: show reductions
1295	* src/graphviz.c (output_red): New, show reductions on the graph.
1296	(no_reduce_bitset_init): New, initialize a bitset.
1297	(print_token): New, print a lookahead token.
1298	(escape): New, print "foo" as \"foo\" because Dot doesn't like quotes within
1299	a label.
1300
1301	* src/graphviz.h : Adjust.
1302	* src/print_graph.c (print_actions): Call output_red here.
1303
13042012-10-11  Theophile Ranquet  <theophile.ranquet@gmail.com>
1305
1306	graphs: style: prefix state number with "state"
1307	* src/print_graph.c (print_core): Here.
1308
13092012-10-11  Theophile Ranquet  <ranquet@lrde.epita.fr>
1310
1311	graphs: style: use left justification for states
1312	The label text of nodes is centered "by default" (by the use of '\n' as
1313	a line feed). This gives bad readability to the grammar rules shown in
1314	state nodes, a left justification is much nicer. This is done by using '\l'
1315	as the line feed.
1316
1317	In order to allow \l in the DOT file, changes to the quoting system seem
1318	necessary.
1319
1320	* src/print_graph.c (print_core): Escape tokens here, instead of...
1321	* src/graphviz.c (output_node): Here...
1322	(escape): Using this, new.
1323
13242012-10-11  Theophile Ranquet  <theophile.ranquet@gmail.com>
1325
1326	graphs: style: prefix rules and change shapes
1327	* src/graphviz.c (start_graph): Use box rather than ellipsis.
1328	* src/print_graph.c (print_core): Prefix rules with their number.
1329
13302012-10-11  Theophile Ranquet  <theophile.ranquet@gmail.com>
1331
1332	obstack: import obstack_finish0 from master
1333	* src/system.h (obstack_finish0): New.
1334
13352012-10-09  Akim Demaille  <akim@lrde.epita.fr>
1336
1337	c++: api.location.type
1338	This feature was introduced in 95a2de5695670ae0df98cb3c42141cad549f0204
1339	(which is part of 2.5), but not documented.  Give it a proper name, and
1340	make it public.
1341
1342	* data/c++.m4, data/lalr1.cc, data/glr.cc, data/java.m4: Use
1343	api.location.type instead of location_type.
1344	* src/muscle-tab.c (muscle_percent_variable_update): Map the latter to
1345	the former.
1346	* tests/local.at: Adjust.
1347	* tests/calc.at: Use api.location.type.
1348	Leave tests/java.at with location_type, at least for the time being,
1349	to cover both names.
1350	* doc/bison.texi: Document api.location.type.
1351	(User Defined Location Type): New.
1352	* NEWS: Update.
1353
13542012-10-09  Akim Demaille  <akim@lrde.epita.fr>
1355
1356	muscles: a function for backward compatibility
1357	Based on commit 171ad99d6421935a278656be6dc7161591835d00 from master.
1358
1359	* src/muscle-tab.c (muscle_percent_variable_update): New.
1360	(muscle_percent_define_insert): Use it.
1361	Define the variables with their initial value.
1362
13632012-10-09  Akim Demaille  <akim@lrde.epita.fr>
1364
1365	maint: more macros
1366	* src/output.c (ARRAY_CARDINALITY): Move to...
1367	* src/system.h: here.
1368	(STREQ, STRNEQ): new.
1369
13702012-10-08  Akim Demaille  <akim@lrde.epita.fr>
1371
1372	NEWS: warnings with clang
1373	* NEWS: here.
1374
13752012-10-08  Akim Demaille  <akim@lrde.epita.fr>
1376
1377	warnings: avoid warnings from clang
1378	Fix the following warning
1379
1380	  parse-gram.c:2078:14: error: equality comparison with extraneous parentheses
1381	                        [-Werror,-Wparentheses-equality]
1382	    if (((yyn) == (-91)))
1383	         ~~~~~~^~~~~~~~
1384	  parse-gram.c:2078:14: note: remove extraneous parentheses around the
1385	                        comparison to silence this warning
1386	    if (((yyn) == (-91)))
1387	        ~      ^       ~
1388	  parse-gram.c:2078:14: note: use '=' to turn this equality comparison into
1389	                        an assignment
1390	    if (((yyn) == (-91)))
1391	               ^~
1392	               =
1393	  1 error generated.
1394
1395	and the following one:
1396
1397	  input.cc:740:1: error: function declared 'noreturn' should not return
1398	                         [-Werror,-Winvalid-noreturn]
1399	  static void yyMemoryExhausted (yyGLRStack* yystackp)
1400	    __attribute__ ((__noreturn__));
1401	  static void
1402	  yyMemoryExhausted (yyGLRStack* yystackp)
1403	  {
1404	    YYLONGJMP (yystackp->yyexception_buffer, 2);
1405	  }
1406	  ^
1407	  1 warning and 1 error generated.
1408
1409	This is Apple clang version 3.1 (tags/Apple/clang-318.0.61).
1410
1411	* data/c.m4 (b4_table_value_equals): Use (!!(A == B)) instead of (A == B)
1412	to avoid this warning.
1413	Any reasonable compiler should generate the same code.
1414	* src/uniqstr.h (UNIQSTR_EQ): Likewise.
1415	* data/glr.c (LONGJMP): abort after longjmp to pacify clang.
1416
14172012-10-08  Akim Demaille  <akim@lrde.epita.fr>
1418
1419	tests: no longer disable -O compiler options
1420	Tests are running without -O since
1421	f377f69fec28013c79db4efe12bbb9d48987fb2c because some warnings (about
1422	yylval not being initialized) show only when GCC is given -O2.  The
1423	previous patch fixes the warnings. Run the test suite with compiler
1424	options unmodified.
1425
1426	* tests/atlocal.in (O0CFLAGS, O0CXXFLAGS): Remove, use CFLAGS and
1427	CXXFLAGS.
1428
14292012-10-08  Paul Eggert  <eggert@cs.ucla.edu>
1430
1431	yacc.c: initialize yylval in pure-parser mode
1432	See http://lists.gnu.org/archive/html/bison-patches/2012-08/msg00024.html
1433	(spreading over September and October).
1434
1435	* data/yacc.c (YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN)
1436	(YY_IGNORE_MAYBE_UNINITIALIZED_END, YYLVAL_INITIALIZE):
1437	New macros.  Use them to suppress an unwanted GCC diagnostic.
1438
14392012-10-08  Akim Demaille  <akim@lrde.epita.fr>
1440
1441	skeletons: style changes
1442	* data/yacc.c, data/glr.c: Prefer Title case for (CPP) macro arguments.
1443
14442012-10-06  Akim Demaille  <akim@lrde.epita.fr>
1445
1446	lalr1.cc: document exception safety
1447	* NEWS: here.
1448	* doc/bison.texi (Destructor Decl, C++ Parser Interface): and there.
1449
14502012-10-06  Akim Demaille  <akim@lrde.epita.fr>
1451
1452	lalr1.cc: check exception safety of error handling
1453	* tests/c++.at (Exception safety): Don't use swap here, it
1454	is useless.
1455	Cover more test cases: yyerror, YYERROR, YYABORT, and
1456	error recovery.
1457	(Object): Instead of just keeping a counter of instances, keep
1458	a list of them.
1459
14602012-10-06  Akim Demaille  <akim@lrde.epita.fr>
1461
1462	lalr1.cc: check (and fix) %printer exception safety
1463	* tests/c++.at (Exception safety): Let the parser support the --debug
1464	option.
1465	On 'p', throw an exception from the %printer.
1466	* data/lalr1.cc (yyparse): Do not display the values we discard, as it
1467	uses %printer, which might have thrown the exception.
1468
14692012-10-06  Akim Demaille  <akim@lrde.epita.fr>
1470
1471	lalr1.cc: check (and fix) %initial-action exception safety
1472	* data/lalr1.cc: Check size > 1, rather than size != 1, when cleaning
1473	the stack, as at the beginning, size is 0.
1474	* tests/c++.at (Exception safety): Check exception safety in
1475	%initial-action.
1476
14772012-10-06  Akim Demaille  <akim@lrde.epita.fr>
1478
1479	lalr1.cc: fix exception safety
1480	lalr1.cc does not reclaim its memory when ended by an exception.
1481
1482	Reported by Oleksii Taran:
1483	http://lists.gnu.org/archive/html/help-bison/2012-09/msg00000.html
1484
1485	* data/lalr1.cc (yyparse): Protect the whole yyparse by a try-catch
1486	block that cleans the stack and the lookahead.
1487
14882012-10-06  Akim Demaille  <akim@lrde.epita.fr>
1489
1490	lalr1.cc: check exception safety.
1491	* tests/c++.at (Exception safety): New.
1492
14932012-10-06  Akim Demaille  <akim@lrde.epita.fr>
1494
1495	lalr1.cc: indentation fixes.
1496	* data/lalr1.cc (yyparse): here.
1497	Untabify a block of code.
1498
14992012-10-06  Akim Demaille  <akim@lrde.epita.fr>
1500
1501	lalr1.cc: don't leave macros define to nothing
1502	* data/lalr1.cc (YY_SYMBOL_PRINT, YY_REDUCE_PRINT, YY_STACK_PRINT):
1503	Define to something so that, for instance, "if (foo) YY_SYMBOL_PRINT"
1504	is valid even when !YYDEBUG.
1505
15062012-10-06  Akim Demaille  <akim@lrde.epita.fr>
1507
1508	tests: minor improvements
1509	* tests/c++.at: Space changes.
1510	Use AT_YYERROR_DEFINE.
1511	* tests/local.at (AT_YYERROR_DEFINE): Issue errors on unknown languages.
1512
15132012-10-05  Akim Demaille  <akim@lrde.epita.fr>
1514
1515	tests: use $PERL instead of perl
1516	* tests/atlocal.in (PERL): New.
1517	Sort.
1518	* tests/calc.at, tests/input.at, tests/local.at, tests/regression.at,
1519	* tests/skeletons.at, tests/synclines.at, tests/torture.at: here.
1520
15212012-10-05  Akim Demaille  <akim@lrde.epita.fr>
1522
1523	build: look for Perl in configure.
1524	Bison uses "/usr/bin/perl" or "perl" in several places, and it does
1525	not appear to be a problem.  But, at least to make it simpler to
1526	change PERL on the make command line, check for perl in configure.
1527
1528	* configure.ac (PERL): New.
1529	* doc/Doxyfile.in, doc/Makefile.am, tests/bison.in: Use it.
1530
15312012-10-05  Akim Demaille  <akim@lrde.epita.fr>
1532
1533	tests: fix sed portability issues
1534	Reported by Didier Godefroy,
1535	<http://lists.gnu.org/archive/html/bug-bison/2012-10/msg00005.html>.
1536
1537	* tests/calc.at (AT_CHECK_SPACES): Use Perl.
1538
15392012-10-05  Akim Demaille  <akim@lrde.epita.fr>
1540
1541	tests: diff -u is not portable
1542	Reported by Didier Godefroy
1543	<http://lists.gnu.org/archive/html/bug-bison/2012-10/msg00006.html>.
1544
1545	* tests/existing.at (AT_LALR1_DIFF_CHECK): Skip if diff -u does not
1546	work.
1547
15482012-10-04  Akim Demaille  <akim@lrde.epita.fr>
1549
1550	maint: word changes
1551	* README-hacking (Typical errors): Improve wording.
1552
15532012-10-04  Akim Demaille  <akim@lrde.epita.fr>
1554
1555	lalr1.cc: fix test suite portability
1556	Reported by Rob Vermaas' Hydra build farm on x86_64-darwin 10.2.0 with
1557	G++ 4.6.3.
1558
1559	* tests/headers.at (Several parsers): Include AT_DATA_SOURCE_PROLOGUE
1560	in the files to compile.
1561	* data/location.cc: Do not include twice string and iostream (once
1562	by position.hh, and then by location.hh).
1563	* README-hacking (Typical errors): Some hints for other maintainers.
1564
15652012-10-03  Theophile Ranquet  <theophile.ranquet@gmail.com>
1566
1567	maint: fix an erroneous include
1568	This fixes test 130 (Several parsers).
1569
1570	* data/location.cc: Include <iostream> rather than <iosfwd> since
1571	we really need << on strings for instance.
1572	* NEWS: Document this.
1573
15742012-10-03  Akim Demaille  <akim@lrde.epita.fr>
1575
1576	tests: check that headers are self contained
1577	Reported by Alexandre Duret-Lutz.
1578
1579	* tests/headers.at (Several parsers): here.
1580
15812012-10-03  Akim Demaille  <akim@lrde.epita.fr>
1582
1583	doc: add missing documentation for --report
1584	* doc/bison.texi (Bison Options): Document --report's "solved", "all",
1585	and "none".
1586
15872012-10-01  Akim Demaille  <akim@lrde.epita.fr>
1588
1589	headers: move CPP guards into YY_*_INCLUDED to avoid collisions
1590	See <http://lists.gnu.org/archive/html/bug-bison/2012-09/msg00016.html>.
1591
1592	* data/c.m4 (b4_cpp_guard): Prepend YY_ and append _INCLUDED.
1593	* tests/headers.at: Adjust.
1594	* NEWS, doc/bison.texi: Document.
1595
15962012-10-01  Akim Demaille  <akim@lrde.epita.fr>
1597
1598	minor changes.
1599	* NEWS: Word changes.
1600	* doc/bison.texi: Spell check.
1601	Fix minor issues.
1602	* tests/headers.at: Comment and formatting changes.
1603
16042012-09-28  Akim Demaille  <akim@lrde.epita.fr>
1605
1606	gnulib: update
1607
16082012-09-28  Theophile Ranquet  <theophile.ranquet@gmail.com>
1609
1610	errors: indent "user token number redeclaration" context
1611	This is the continuation of the work on the readability of errors
1612	context.
1613
1614	* src/symtab.c (user_token_number_redeclaration): Use
1615	complain_at_indent to output with increased indentation level.
1616	* tests/input:at: Apply this change.
1617
16182012-09-26  Theophile Ranquet  <ranquet@lrde.epita.fr>
1619
1620	warnings: introduce -Wdeprecated in the usage info
1621	The deprecated warning, introduced some time ago, was not displayed in
1622	the usage message. This patch addresses the issue.
1623
1624	* src/getargs.c (usage): Insert here.
1625
16262012-09-26  Theophile Ranquet  <ranquet@lrde.epita.fr>
1627
1628	errors: prefix the output with "error: "
1629	This improves readability. This is also what gcc does.
1630
1631	* NEWS: Document this change.
1632	* src/complain.c (complain_at): Prefix all errors with "error: ".
1633	(complain_at_indent, warn_at_indent): Do not prefix the context
1634	information of errors, which are basically just indented errors.
1635	* tests/conflicts.at, tests/glr-regression.at, tests/input.at,
1636	tests/named-refs.at, tests/output.at, tests/push.at,
1637	tests/regression.at, tests/skeletons.at: Apply this change.
1638
16392012-09-26  Theophile Ranquet  <ranquet@lrde.epita.fr>
1640
1641	errors: indent "invalid value for %define" context
1642	This is the continuation of the work on the readability of errors
1643	    context.
1644
1645	For example, what used to be:
1646	  input.y:1.9-29: invalid value for %define variable 'foo' : 'bar'
1647	  input.y:1.9-29: accepted value: 'most'
1648
1649	is now:
1650	  input.y:1.9-29: invalid value for %define variable 'foo' : 'bar'
1651	  input.y:1.9-29:     accepted value: 'most'
1652
1653	* src/muscle-tab.c (muscle_percent_define_check_values): Use
1654	complain_at_indent to output with increased indentation level.
1655	* tests/input:at: Apply this change.
1656
16572012-09-26  Theophile Ranquet  <ranquet@lrde.epita.fr>
1658
1659	errors: indent "%define var" redefinition context
1660	This is the continuation of the work on the readability of errors
1661	context.
1662
1663	For example, what used to be:
1664	  input.y:2.9-11: %define variable 'var' redefined
1665	  input.y:1.9-11: previous definition
1666
1667	is now:
1668	  input.y:2.9-11: %define variable 'var' redefined
1669	  input.y:1.9-11:     previous definition
1670
1671	* src/muscle-tab.c (muscle_percent_define_insert): Use
1672	complain_at_indent to output with increased indentation level.
1673	* tests/input.at: Apply this change.
1674
16752012-09-26  Theophile Ranquet  <ranquet@lrde.epita.fr>
1676
1677	errors: indent "symbol redeclaration" context
1678	This is the continuation of the work on the readability of errors
1679	context.
1680
1681	For example, what used to be:
1682	  input.y:5.10-24: %printer redeclaration for <field2>
1683	  input.y:3.11-25: previous declaration
1684
1685	is now:
1686	  input.y:5.10-24: %printer redeclaration for <field2>
1687	  input.y:3.11-25:     previous declaration
1688
1689	* NEWS: Document this change.
1690	* src/symtab.c (symbol_redeclaration, semantic_type_redeclaration,
1691	user_token_number_redeclaration, default_tagged_destructor_set,
1692	default_tagless_destructor_set, default_tagged_printer_set,
1693	default_tagless_printer_set): Use complain_at_indent to
1694	output with increased indentation level.
1695	* tests/input.at: Apply this change.
1696
16972012-09-26  Theophile Ranquet  <ranquet@lrde.epita.fr>
1698
1699	errors: indent "result type clash" error context
1700	This used to be the format of the error report:
1701
1702	  input.y:6.5-10: result type clash on merge function 'merge': [...]
1703	  input.y:2.4-9: previous declaration
1704
1705	In order to distinguish the actual error from the context provided, we
1706	rather this new output:
1707
1708	  input.y:6.5-10: result type clash on merge function 'merge': [...]
1709	  input.y:2.4-9:     previous declaration
1710
1711	Another patch will introduce an "error: " prefix to all non-indented
1712	lines, giving yet better readability to the reports.
1713
1714	* src/complain.h (SUB_INDENT): Move to here.
1715	* src/reader.c (record_merge_function_type): Use complain_at_indent to
1716	output with increased indentation level.
1717	* src/scan-code.l (SUB_INDENT): Remove from here.
1718	* tests/glr-regression.at: Apply this change.
1719
17202012-09-25  Akim Demaille  <akim@lrde.epita.fr>
1721
1722	regen
1723
17242012-09-25  Akim Demaille  <akim@lrde.epita.fr>
1725
1726	yacc: fix handling of CPP guards when no header is generated
1727	When no header was to be generated, Bison would issue:
1728
1729	  /* In a future release of Bison, this section will be replaced
1730	     by #include "".  */
1731	  #ifndef YY_
1732	  # define YY_
1733
1734	It now properly generates nothing.
1735
1736	* data/c.m4 (b4_cpp_guard_open, b4_cpp_guard_close): Issue nothing when
1737	the file name is empty.
1738	* data/yacc.c: Do not generate the above comment when there is no header
1739	to generate.
1740	* NEWS: Update.
1741
17422012-09-25  Akim Demaille  <akim@lrde.epita.fr>
1743
1744	gnulib: update
1745
17462012-09-04  Akim Demaille  <akim@lrde.epita.fr>
1747
1748	maint: remove useless file
1749	* externals/bootstrap.cfg: Remove.
1750	This file was used by a specific build system.
1751	It was added to the master repository by accident.
1752
17532012-09-04  Akim Demaille  <akim@lrde.epita.fr>
1754
1755	update files to ignore
1756	* doc/.gitignore: Don't ignore split info files as we don't split our
1757	info file.
1758	See <http://lists.gnu.org/archive/html/bug-bison/2012-08/msg00006.html>.
1759
17602012-09-04  Akim Demaille  <akim@lrde.epita.fr>
1761
1762	remove useless include
1763	* src/system.h: Don't include sys/types.h.
1764	Reported by Eric Blake,
1765	<http://lists.gnu.org/archive/html/bug-bison/2012-09/msg00002.html>.
1766	(FUNCTION_PRINT): Remove, unused.
1767
17682012-09-03  Jim Meyering  <meyering@redhat.com>
1769
1770	use locale-indep. c_is* functions for parsing, not isspace, isprint etc
1771	* src/parse-gram.y: Include "c-ctype.h".
1772	(add_param): Parse with c_isspace, not isspace.
1773	* src/parse-gram.c: Likewise.
1774	* src/scan-gram.l: Include c-ctype.h, not ctype.h.
1775	(SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER): Use c_isspace and c_isprint,
1776	not ctype.h's locale-dependent functions.
1777
17782012-09-03  Akim Demaille  <akim@lrde.epita.fr>
1779
1780	gnulib: update
1781
17822012-09-03  Akim Demaille  <akim@lrde.epita.fr>
1783
1784	--help: include a place to report translation issues
1785	http://lists.gnu.org/archive/html/bug-bison/2012-08/msg00007.html
1786	shows that it is useful to help users report translation issues.
1787	While at it, include other informative bits that the coreutils shows.
1788
1789	* src/getargs.c (usage): Report more URLs where the user can
1790	refer to.
1791	Mostly copied/pasted from coreutils' emit_ancillary_info function.
1792
17932012-08-31  Akim Demaille  <akim@lrde.epita.fr>
1794
1795	tests: style changes
1796	* tests/torture.at (AT_DATA_STACK_TORTURE): M4 style changes to
1797	improve readability.
1798	Fix an assertion which, because of a <= instead of ==, did not check
1799	new_status as visibly meant.
1800	(get_args): New.
1801
18022012-08-31  Akim Demaille  <akim@lrde.epita.fr>
1803
1804	tests: fix push-pull test
1805	* tests/torture.at: %push-pull-parser is no longer supported.
1806
18072012-08-31  Akim Demaille  <akim@lrde.epita.fr>
1808
1809	yacc.c: style changes
1810	* data/yacc.c: (yytoken): Define with initial value.
1811
18122012-08-03  Akim Demaille  <akim@lrde.epita.fr>
1813
1814	maint: post-release administrivia
1815	* NEWS: Add header line for next release.
1816	* .prev-version: Record previous version.
1817	* cfg.mk (old_NEWS_hash): Auto-update.
1818
18192012-08-03  Akim Demaille  <akim@lrde.epita.fr>
1820
1821	version 2.6.2
1822	* NEWS: Record release date.
1823
18242012-08-02  Akim Demaille  <akim@lrde.epita.fr>
1825
1826	NEWS: update.
1827	* NEWS: Catch up with the other changes from 2.6.1.
1828
18292012-08-02  Akim Demaille  <akim@lrde.epita.fr>
1830
1831	yacc: remove trailing end of line at end of file
1832	There are still spurious spaces at the end of some lines.  But this is
1833	addressed in the master branch, and I am reluctant to try to backport
1834	this.
1835
1836	* data/yacc.c, data/glr.c, data/lalr1.cc, data/glr.cc: here.
1837	* tests/calc.at (AT_CHECK_SPACES): New.
1838	Use it.
1839	Be sure not to introduce trailing empty lines in the *.y files.
1840	* NEWS: Doc it.
1841	* cfg.mk (syntax-check): Remove the exception.
1842
18432012-08-02  Akim Demaille  <akim@lrde.epita.fr>
1844
1845	thanks: fix a contributor name
1846	* THANKS: On his request.
1847
18482012-08-01  Akim Demaille  <akim@lrde.epita.fr>
1849
1850	gnulib: update
1851
18522012-08-01  Akim Demaille  <akim@lrde.epita.fr>
1853
1854	tests: synch line -> syncline, for consistency
1855	* tests/synclines.at: Do it, as "syncline" is used consistently
1856	everywhere else in Bison.
1857
18582012-08-01  Akim Demaille  <akim@lrde.epita.fr>
1859
1860	tests: synclines: style changes
1861	* tests/synclines.at (AT_TEST_SYNCLINE): Rename as...
1862	(AT_TEST): this.
1863	Use pushdef/popdef.
1864	Formatting changes.
1865	Use '+' instead of '*' where appropriate.
1866
18672012-08-01  Akim Demaille  <akim@lrde.epita.fr>
1868
1869	tests: synclines: fix perl invocation
1870	Reported by Summum Bonum.
1871
1872	* tests/synclines.at: Fix Perl invocation: its -f is not like sed's.
1873
18742012-08-01  Akim Demaille  <akim@lrde.epita.fr>
1875
1876	regen
1877
18782012-08-01  Akim Demaille  <akim@lrde.epita.fr>
1879
1880	c++: trailing end-of-lines in %parse-param
1881	* src/parse-gram.y (add_param): No only skip ' ' and '\t', skip all
1882	leading and trailing spaces.
1883	* tests/regression.at (Lex and parse params): Check it.
1884	* NEWS: Document it.
1885
18862012-08-01  Akim Demaille  <akim@lrde.epita.fr>
1887
1888	tests: simplify
1889	* tests/regression.at: Remove useless compilations: AT_FULL_COMPILE
1890	includes the compilation by bison.
1891
18922012-07-31  Akim Demaille  <akim@lrde.epita.fr>
1893
1894	use obstack_printf
1895	This is not just nicer, it is also much safer, since we were
1896	using sprintf...
1897
1898	* bootstrap.conf: Require it.
1899	* src/system.h (obstack_fgrow1, obstack_fgrow2, obstack_fgrow3)
1900	(obstack_fgrow4): Remove.
1901	Adjust dependencies.
1902
19032012-07-30  Akim Demaille  <akim@lrde.epita.fr>
1904
1905	scanner: restore a missing start condition
1906	$ flex src/scan-skel.l
1907	src/scan-skel.l:145: multiple <<EOF>> rules for start condition SC_AT_DIRECTIVE_ARGS
1908	src/scan-skel.l:145: multiple <<EOF>> rules for start condition SC_AT_DIRECTIVE_SKIP_WS
1909	This is warning, and it seems there are no means to make it an error.
1910
1911	* src/scan-skel.l: Restore the start-condition INITIAL for an <<EOF>>
1912	clause.
1913
19142012-07-30  Akim Demaille  <akim@lrde.epita.fr>
1915
1916	gnulib: update
1917
19182012-07-30  Akim Demaille  <akim@lrde.epita.fr>
1919
1920	maint: post-release administrivia
1921	* NEWS: Add header line for next release.
1922	* .prev-version: Record previous version.
1923	* cfg.mk (old_NEWS_hash): Auto-update.
1924
19252012-07-30  Akim Demaille  <akim@lrde.epita.fr>
1926
1927	version 2.6.1
1928	* NEWS: Record release date.
1929
19302012-07-30  Akim Demaille  <akim@lrde.epita.fr>
1931
1932	gnulib: update
1933
19342012-07-27  Akim Demaille  <akim@lrde.epita.fr>
1935
1936	maint: fix some syntax-check issues
1937	* cfg.mk: Nuke the following warnings which are confused by our
1938	text reports (that state that the error token is number 256).
1939	  prohibit_magic_number_exit
1940	  ../../doc/bison.texi:8170:error (256)
1941	  ../../tests/conflicts.at:570:error (256)
1942	  ../../tests/conflicts.at:673:error (256)
1943	  ../../tests/conflicts.at:811:error (256)
1944	  ../../tests/conflicts.at:1154:error (256)
1945	  ../../tests/regression.at:281:error (256)
1946	  ../../tests/regression.at:582:error (256)
1947	  maint.mk: use EXIT_* values rather than magic number
1948
19492012-07-27  Akim Demaille  <akim@lrde.epita.fr>
1950
1951	tests: do not depend on __cplusplus to decide for C++ or C output
1952	Since we do support compiling C code with a C++ compiler.
1953
1954	* tests/actions.at (Qualified $$ in actions): Use AT_SKEL_CC_IF.
1955
19562012-07-27  Akim Demaille  <akim@lrde.epita.fr>
1957
1958	regen
1959
19602012-07-27  Akim Demaille  <akim@lrde.epita.fr>
1961
1962	synclines: remove spurious empty line
1963	* data/bison.m4 (b4_syncline): Do not start with an empty line.
1964
19652012-07-27  Akim Demaille  <akim@lrde.epita.fr>
1966
1967	also support $<foo>$ in the %initial-action
1968	scan-code.l is already passing argument to b4_dollar_dollar for the
1969	initial acton, but its definition (of b4_dollar_dollar) does not use
1970	this argument.
1971
1972	Generalize this definition, and use it for the %initial-action too.
1973
1974	* data/c.m4 (b4_dollar_dollar_, b4_dollar_pushdef, b4_dollar_popdef):
1975	Instead of expecting a pointer, require a value, and use ".".
1976	Since they are now generic enough, move to...
1977	* data/c-like.m4: this new file.
1978	* data/c.m4, data/java.m4: Load it.
1979	* data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: Use
1980	b4_dollar_pushdef for the %initial-action.
1981	* tests/actions.at: Check that.
1982	* data/Makefile.am: Adjust.
1983	* NEWS, doc/bison.texi: Document.
1984
19852012-07-27  Akim Demaille  <akim@lrde.epita.fr>
1986
1987	skeletons: b4_dollar_pushdef and popdef to simpify complex definitions
1988	M4 is really making it uselessly hard to define macros that define
1989	macros.
1990	* data/c.m4 (b4_dollar_pushdef, b4_dollar_popdef): New.
1991	Use it.
1992
19932012-07-27  Akim Demaille  <akim@lrde.epita.fr>
1994
1995	regen
1996
19972012-07-27  Akim Demaille  <akim@lrde.epita.fr>
1998
1999	printer/destructor: translate only once
2000	Currently "%printer {...} a b c d e f" translates the {...} six times.
2001	Not only is this bad for time and space, it also issues six times the
2002	same warnings.
2003
2004	* src/symlist.h, src/symlist.c (symbol_list_destructor_set)
2005	(symbol_list_printer_set): Take the action as code_props instead of
2006	const char *.
2007	* src/parse-gram.y: Translate these actions here.
2008	* src/scan-code.h: Comment change.
2009	* tests/input.at: Check that warnings are issued only once.
2010
20112012-07-27  Akim Demaille  <akim@lrde.epita.fr>
2012
2013	factor the handling of m4 escaping
2014	The conversion from @ to @@ and so forth is coded is too many
2015	different places.  Factor, a bit.
2016
2017	* src/scan-code.l: Instead of duplicating the logic of obstack_escape,
2018	use it.
2019	It sure is less efficient, but the cost is negligible.
2020	This allows to factor rules that are alike.
2021	And to factor some start-condition clauses.
2022	* tests/input.at (Stray $ or @): New.
2023	* NEWS: Document it.
2024
20252012-07-27  Akim Demaille  <akim@lrde.epita.fr>
2026
2027	news: schedule the removal of the ";" hack
2028	scan-code.l is significantly more complex because of this.
2029
2030	* NEWS: Doc it.
2031
20322012-07-27  Akim Demaille  <akim@lrde.epita.fr>
2033
2034	style changes in the scanners
2035	* src/scan-code.l, src/scan-skel.l: Use a more traditional indentation
2036	style for start-conditions.
2037	Prefer "continue" to a comment, for empty actions.
2038	Strip useless {}.
2039	Remove useless start-condition clauses.
2040
20412012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2042
2043	regen
2044
20452012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2046
2047	support $<tag>$ in printers and destructors
2048	* src/scan-code.l (SC_SYMBOL_ACTION): Accept $<tag>$, not just $$.
2049	* data/c.m4 (b4_dollar_dollar_): New.
2050	(b4_symbol_actions): Let b4_dollar_dollar use b4_dollar_dollar_.
2051	* NEWS, doc/bison.texi: Document it.
2052	* tests/actions.at: Check this for C and C++.
2053
20542012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2055
2056	scan-code: factor the handling of the type in $<TYPE>$
2057	* src/scan-code.l (fetch_type_name): New.
2058	(handle_action_dollar): Use it.
2059	(gt_ptr): Remove, useless.
2060
20612012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2062
2063	muscles: fix another occurrence of unescaped type name
2064	* src/output.c (quoted_output): Split into...
2065	(quoted_output, string_output): these.
2066	Use the former when outputting a type_name.
2067	* tests/input.at: Check this case.
2068	* src/symtab.h: Comment changes.
2069
20702012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2071
2072	glr.cc: fix the handling of yydebug
2073	* data/glr.cc (yydebug_): Remove, unused.
2074	(set_debug_level, debug_level): Work on yydebug instead.
2075	* doc/bison.texi, NEWS: Document this.
2076
20772012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2078
2079	gnulib: update
2080
20812012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2082
2083	formatting changes
2084	* src/symtab.h: here.
2085
20862012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2087
2088	tests: fix an assertion
2089	* tests/local.at (AT_YYLEX_DEFINE): Be sure to check the array
2090	against its length, not its size in bytes.
2091
20922012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2093
2094	tests: adjust to GCC 4.8, which displays caret errors
2095	With GCC 4.8, the tests on synclines are skipped.  Transform
2096
2097	  input.y:1:2: error: #error "1"
2098	   #error "1"
2099	    ^
2100
2101	into
2102
2103	  input.y:1: #error "1"
2104
2105	* tests/synclines.at (AT_SYNCLINES_COMPILE): Do it, using Perl instead of
2106	sed.
2107
21082012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2109
2110	be sure to properly escape type names
2111	* src/scan-code.l: Use obstack_quote when passing type_name to m4.
2112	* tests/input.at (Code injection): New.
2113	* NEWS: Document it.
2114	Thanks to Paul Eggert for the wording.
2115
21162012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2117
2118	obstack_quote: escape and quote for M4
2119	* src/system.h (obstack_quote): New.
2120	* src/muscle-tab.c: Use it instead of obstack_escape where applicable.
2121	* src/scan-code.l: Since obstack_quote supports NULL, leave type_name
2122	as NULL instead of defaulting to "".
2123
21242012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2125
2126	muscles: shuffle responsabilities
2127	* src/muscle-tab.c (muscle_boundary_grow): Be in charge of quotation,
2128	instead of leaving this to the caller.
2129
21302012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2131
2132	muscles: make private functions static
2133	* src/muscle-tab.h, src/muscle-tab.c (muscle_boundary_grow)
2134	(muscle_location_grow): Now static.
2135
21362012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2137
2138	muscles: rename private functions/macros
2139	* src/muscle-tab.c (MUSCLE_COMMON_DECODE, muscle_string_decode)
2140	(muscle_location_decode): Not related to muscles, rename as...
2141	(COMMON_DECODE, string_decode, location_decode): these.
2142
21432012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2144
2145	obstack_escape: escape M4 characters
2146	* src/muscle-tab.h (MUSCLE_OBSTACK_SGROW): This is not related to
2147	muscles, so move to, and rename as...
2148	* src/system.h (obstack_escape): this.
2149	Adjust dependencies.
2150
21512012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2152
2153	remove dead macro
2154	* src/system.h (DEFAULT_TMPDIR): Remove, unused.
2155
21562012-07-26  Akim Demaille  <akim@lrde.epita.fr>
2157
2158	maint: style changes
2159	* src/scan-code.l: Remove useless braces.
2160	Formatting changes.
2161	Prefer NULL to 0.
2162	* src/muscle-tab.c, src/system.h: Formatting changes.
2163
21642012-07-24  Akim Demaille  <akim@lrde.epita.fr>
2165
2166	doc: avoid problems with case insensitive file systems
2167	makeinfo --html generates index.html, and the node "Index" will result
2168	in Index.html.  On case insensitive file systems, such as on Mac OS X
2169	by default, this results in a single, invalid, file (Texinfo 4.13).
2170	See http://lists.gnu.org/archive/html/bug-texinfo/2012-07/msg00032.html
2171
2172	* doc/bison.texi (Index): Rename as...
2173	(Index of Terms): this.
2174
21752012-07-24  Stefano Lattarini  <stefano.lattarini@gmail.com>  (tiny change)
2176
2177	configure: fix botched quoting
2178	* configure.ac: In the AC_SUBST call on 'VALGRIND_PREBISON'.  Without
2179	this change, when running ./configure, I see:
2180
2181	    ...
2182	    checking for valgrind... valgrind
2183	    ./configure: line 35221: -q: command not found
2184	    checking for Java compiler... gcj -C -fsource=1.3 -ftarget=1.4
2185	    ...
2186
21872012-07-20  Akim Demaille  <akim@lrde.epita.fr>
2188
2189	news: fix typo.
2190	* NEWS: here.
2191	Reported by Ben Pfaff.
2192
21932012-07-19  Akim Demaille  <akim@lrde.epita.fr>
2194
2195	maint: update gnu-web-doc-update.
2196	* gnulib: here.
2197
21982012-07-19  Akim Demaille  <akim@lrde.epita.fr>
2199
2200	maint: post-release administrivia
2201	* NEWS: Add header line for next release.
2202	* .prev-version: Record previous version.
2203	* cfg.mk (old_NEWS_hash): Auto-update.
2204
22052012-07-19  Akim Demaille  <akim@lrde.epita.fr>
2206
2207	version 2.6
2208	* NEWS: Record release date.
2209
22102012-07-19  Akim Demaille  <akim@lrde.epita.fr>
2211
2212	maint: prepare for release 2.6
2213	* NEWS: here.
2214
22152012-07-18  Akim Demaille  <akim@lrde.epita.fr>
2216
2217	maint: post-release administrivia
2218	* NEWS: Add header line for next release.
2219	* .prev-version: Record previous version.
2220	* cfg.mk (old_NEWS_hash): Auto-update.
2221
22222012-07-18  Akim Demaille  <akim@lrde.epita.fr>
2223
2224	version 2.5.91
2225	* NEWS: Record release date.
2226
22272012-07-18  Akim Demaille  <akim@lrde.epita.fr>
2228
2229	maint: prepare NEWS.
2230
22312012-07-18  Akim Demaille  <akim@lrde.epita.fr>
2232
2233	maint: fix spaces.
2234	* build-aux/Makefile.am: here.
2235
22362012-07-18  Akim Demaille  <akim@lrde.epita.fr>
2237
2238	tests: adjust to case where the C compiler is actually a C++ compiler
2239	* tests/atlocal.in (CC_IS_CXX): New.
2240	* tests/headers.at (Several parsers): Use it.
2241
22422012-07-18  Akim Demaille  <akim@lrde.epita.fr>
2243
2244	tests: fix dependencies
2245	* tests/Makefile.am: we need atconfig and atlocal to be up to date
2246	when calling testsuite.
2247
22482012-07-18  Akim Demaille  <akim@lrde.epita.fr>
2249
2250	doc: fix Texinfo command
2251	* doc/bison.texi: In parens, use @pxref.
2252
22532012-07-18  Akim Demaille  <akim@lrde.epita.fr>
2254
2255	maint: Valgrind on OS X.
2256	* configure.ac (VALGRIND_PREBISON): New.
2257	* tests/Makefile.am (maintainer-check-valgrind): Use it.
2258	* etc/darwin11.4.0.supp: New.
2259	* configure.ac, etc/Makefile.am: Use it.
2260	* configure.ac: Disable Valgrind on Mac OS X.
2261	* README-hacking: Explain why.
2262
22632012-07-17  Akim Demaille  <akim@lrde.epita.fr>
2264
2265	tests: be sure that backups are safe.
2266	* tests/local.at (at_save_special_files): here.
2267
22682012-07-17  Akim Demaille  <akim@lrde.epita.fr>
2269
2270	maint: dead comment.
2271	* etc/README: here.
2272
22732012-07-17  Akim Demaille  <akim@lrde.epita.fr>
2274
2275	tests: refactor for legibility.
2276	* tests/local.at (AT_BISON_CHECK_WARNINGS, AT_BISON_CHECK_WARNINGS_):
2277	New.
2278
22792012-07-17  Akim Demaille  <akim@lrde.epita.fr>
2280
2281	tests: refactor the bison invocations.
2282	* tests/local.at (m4_null_if, AT_BISON_CHECK_): New.
2283
22842012-07-17  Akim Demaille  <akim@lrde.epita.fr>
2285
2286	maint: fix syntax-check ignore patterns.
2287	* cfg.mk: here.
2288
22892012-07-17  Akim Demaille  <akim@lrde.epita.fr>
2290
2291	gnulib: update
2292
22932012-07-16  Akim Demaille  <akim@lrde.epita.fr>
2294
2295	gnulib: update.
2296	* gnulib: Update so that gitlog-to-changelog support --srcdir.
2297	* Makefile.am: Use it.
2298
22992012-07-10  Akim Demaille  <akim@lrde.epita.fr>
2300
2301	gnulib: update
2302	* bootstrap, build-aux/.gitignore, gnulib, m4/.gitignore: update.
2303
23042012-07-06  Akim Demaille  <akim@lrde.epita.fr>
2305
2306	maint: update release instructions
2307	* README-hacking: here.
2308
23092012-07-05  Akim Demaille  <akim@lrde.epita.fr>
2310
2311	maint: post-release administrivia
2312	* NEWS: Add header line for next release.
2313	* .prev-version: Record previous version.
2314	* cfg.mk (old_NEWS_hash): Auto-update.
2315
23162012-07-05  Akim Demaille  <akim@lrde.epita.fr>
2317
2318	version 2.5.90
2319	* NEWS: Record release date.
2320
23212012-07-05  Akim Demaille  <akim@lrde.epita.fr>
2322
2323	build: fix gen-ChangeLog call.
2324	* Makefile.am: Be sure to catch errors, and fix option name
2325
23262012-07-05  Akim Demaille  <akim@lrde.epita.fr>
2327
2328	gnulib: update.
2329	* gnulib/build-aux/do-release-commit-and-tag: Fix.
2330
23312012-07-05  Akim Demaille  <akim@lrde.epita.fr>
2332
2333	tests: fix SKIP_IF for Java.
2334	* tests/local.at (AT_JAVA_COMPILE): here.
2335
23362012-07-05  Akim Demaille  <akim@lrde.epita.fr>
2337
2338	api.prefix: incompatible with %name-prefix.
2339	* data/bison.m4: Make it incompatible.
2340	* tests/input.at: Check that it is.
2341
23422012-07-05  Akim Demaille  <akim@lrde.epita.fr>
2343
2344	api.prefix: strengthen the tests and fix push-parsers.
2345	* tests/calc.at: Check api.prefix in addition to %name-prefix.
2346	* tests/headers.at: Check push parsers and pure interface.
2347	* tests/local.at: Use YYLTYPE renamed.
2348	* data/yacc.c (b4_declare_yyparse_push_): Handle api.prefix.
2349	* doc/bison.texi: Style changes.
2350
23512012-07-05  Akim Demaille  <akim@lrde.epita.fr>
2352
2353	skeletons: style changes.
2354	* data/bison.m4: Define default values after having defined
2355	the support macros.
2356	Kill a dead comment.
2357
23582012-07-05  Akim Demaille  <akim@lrde.epita.fr>
2359
2360	NEWS: minor changes.
2361	* NEWS: style changes.
2362
23632012-07-05  Akim Demaille  <akim@lrde.epita.fr>
2364
2365	api.prefix: improve the documentation for YYDEBUG.
2366	* doc/bison.texi: Explain how api.prefix is applied to YYDEBUG.
2367
23682012-07-05  Akim Demaille  <akim@lrde.epita.fr>
2369
2370	gnulib: update.
2371	* bootstrap, gnulib: Update.
2372	* cfg.mk (syntax-check): Don't check "error" usage in bison.texi.
2373
23742012-07-04  Akim Demaille  <akim@lrde.epita.fr>
2375
2376	tests: headers.at: strengthen.
2377	* tests/headers.at (Several headers): Be stricter when checking
2378	the exported macros.
2379
23802012-07-04  Akim Demaille  <akim@lrde.epita.fr>
2381
2382	glr.cc: do not override C++ definitions by C macros.
2383	* data/glr.c: here.
2384	* data/glr.cc: Fix overquotation.
2385	* tests/headers.at: Comment changes.
2386
23872012-07-04  Akim Demaille  <akim@lrde.epita.fr>
2388
2389	YYLLOC_DEFAULT: factor, and don't export it in headers.
2390	* data/c++.m4, data/c.m4 (b4_yylloc_default_define): New.
2391	* data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c: Use it.
2392	* data/glr.cc: Do not define YYLLOC_DEFAULT in the header file,
2393	but in the implementation one.
2394
23952012-07-04  Akim Demaille  <akim@lrde.epita.fr>
2396
2397	api.prefix: do not use #define to handle YYSTYPE_IS_TRIVIAL etc.
2398	The following mixture is insane:
2399
2400	  #define YYSTYPE_IS_TRIVIAL PREFIX_STYPE_IS_TRIVIAL
2401	  #if (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)
2402
2403	since, of course YYSTYPE_IS_TRIVIAL is defined.  Instead we could
2404	define YYSTYPE_IS_TRIVIAL as PREFIX_STYPE_IS_TRIVIAL only when the
2405	later is defined, but let's avoid stacking CPP on top of M4: rather, use
2406
2407	  #if (defined PREFIX_STYPE_IS_TRIVIAL && PREFIX_STYPE_IS_TRIVIAL)
2408
2409	* data/glr.c, data/yacc.c: Use YYSTYPE_IS_TRIVIAL, YYSTYPE_IS_DECLARED,
2410	YYLTYPE_IS_TRIVIAL and YYLTYPE_IS_DECLARED under their api.prefix-renamed
2411	name.
2412
24132012-07-04  Akim Demaille  <akim@lrde.epita.fr>
2414
2415	tests: portability fixes.
2416	Reported by Hydra.
2417
2418	* tests/headers.at (Several headers): Be sure to include config.h
2419	in the files to compile.
2420
24212012-07-04  Akim Demaille  <akim@lrde.epita.fr>
2422
2423	c++: fewer #includes in the headers.
2424	* data/lalr1.cc: Define YY_NULL in the *.cc file, it is not needed
2425	in the header.
2426	* data/location.cc: iosfwd suffices.
2427
24282012-07-04  Akim Demaille  <akim@lrde.epita.fr>
2429
2430	glr.cc: formatting changes.
2431	* data/glr.cc: here.
2432
24332012-07-04  Akim Demaille  <akim@lrde.epita.fr>
2434
2435	tests: more logs.
2436	* tests/headers.at (Several parsers): Here.
2437
24382012-07-04  Akim Demaille  <akim@lrde.epita.fr>
2439
2440	api.prefix: also rename YYDEBUG.
2441	The testsuite in master has shown weird errors for the "Mulitple
2442	Parsers" tests: the caller of p5.parse() received some apparently
2443	random value, while tracing p5.parse() showed that the function was
2444	consistently returning 0.
2445
2446	It happens when mixing several parser headers, some generated without
2447	%debug, others with.  In particular the C++ parser was generated with
2448	%debug, i.e., with:
2449
2450	  #ifndef YYDEBUG
2451	  # define YYDEBUG 1
2452	  #endif
2453
2454	and compiled separatedly.  Yet, its header was included after the one
2455	of another parser, this time without %debug, i.e., with
2456
2457	  #ifndef YYDEBUG
2458	  # define YYDEBUG 0
2459	  #endif
2460
2461	in its header.  As a result, the parser was compiled with YYDEBUG set,
2462	but its header was used without.  Since the layout of the objects are
2463	then completely different, boom.
2464
2465	Therefore, do not change the value of YYDEBUG.  Rather, use it as a
2466	default value for <API.PREFIX>DEBUG.
2467
2468	* data/c.m4 (b4_YYDEBUG_define): New.
2469	(b4_declare_yydebug): Rename as...
2470	(b4_yydebug_declare): this, for consistency.
2471	* data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c: Use it.
2472	* NEWS: Document it.
2473
24742012-07-02  Akim Demaille  <akim@lrde.epita.fr>
2475
2476	NEWS: spell check.
2477	* NEWS: here.
2478
24792012-06-29  Akim Demaille  <akim@lrde.epita.fr>
2480
2481	api.prefix.
2482	* data/c.m4 (b4_api_prefix, b4_api_PREFIX): New.
2483	(b4_prefix, b4_union_name, b4_token_enums, b4_declare_yylstype): Use them.
2484	* data/glr.c, data/yacc.c, data/glr.cc, data/lalr1.cc: Use them to change
2485	the prefix of exported preprocessor symbols.
2486	* src/getargs.c (usage): Ditto.
2487	* tests/headers.at (Several parsers): New.
2488	* tests/local.at (AT_API_PREFIX): New.
2489	AT_YYSTYPE, AT_YYLTYPE): Adjust.
2490	* doc/bison.texi (Multiple Parsers): Move documentation of %name-prefix to...
2491	(Table of Symbols): here.
2492	(Multiple Parsers): Document api.prefix.
2493	(%define Summary): Point to it.
2494	Use @code for variable names.
2495	(Bison Options): -p/--name-prefix are obsoleted.
2496	* NEWS: Announce api.prefix.
2497
24982012-06-28  Akim Demaille  <akim@lrde.epita.fr>
2499
2500	tests: use the generalized default yylex.
2501	* tests/actions.at, tests/glr-regression.at, tests/regression.at: here.
2502
25032012-06-28  Akim Demaille  <akim@lrde.epita.fr>
2504
2505	tests: AT_YYERROR_DEFINE: prepare for list of ints.
2506	* tests/local.at (AT_YYERROR_DEFINE): Don't add quotes, check their
2507	presence to detect char/int types.
2508	* tests/actions.at, tests/conflicts.at, tests/glr-regression.at,
2509	* tests/push.at, tests/regression.at: Adjust.
2510
25112012-06-27  Akim Demaille  <akim@lrde.epita.fr>
2512
2513	skeletons: no longer define YYLSP_NEEDED.
2514	* data/c.m4, data/glr.cc: here.
2515	* NEWS, TODO: Adjust.
2516
25172012-06-27  Akim Demaille  <akim@lrde.epita.fr>
2518
2519	c++: do not export YYTOKEN_TABLE and YYERROR_VERBOSE.
2520	* src/output.c (prepare_symbols): Do not define b4_token_table.
2521	(prepare): Define b4_token_table_flag.
2522	* data/bison.m4 (b4_token_table_if): New.
2523	Arm it when error-verbose.
2524	* data/glr.c, data/yacc.c (YYTOKEN_TABLE): Remove.
2525	Use m4.
2526	* data/lalr1.cc: Likewise.
2527	(YYERROR_VERBOSE): Remove.
2528	* NEWS, doc/bison.texi: Document this.
2529
25302012-06-26  Akim Demaille  <akim@lrde.epita.fr>
2531
2532	maint: use *.texi.
2533	This is more consistent with the other packages, and Automake-NG
2534	supports only *.texi.
2535
2536	* doc/bison.texinfo: Rename as...
2537	* doc/bison.texi: this.
2538	* doc/Makefile.am, examples/calc++/Makefile.am: Adjust.
2539
25402012-06-26  Akim Demaille  <akim@lrde.epita.fr>
2541
2542	tests: do not output m4 set up.
2543	* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
2544	Use a diversion to avoid outputting comments etc.
2545	Removes 17k lines from testsuite (10% of the number of lines).
2546
25472012-06-26  Akim Demaille  <akim@lrde.epita.fr>
2548
2549	tests: use the generic yyerror function.
2550	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Factor.
2551	Use AT_YYERROR_DEFINE.
2552	Therefore, instead of using stdout, use and check stderr.
2553	* tests/glr-regression.at (Uninitialized location when reporting ambiguity):
2554	Use AT_YYERROR_DEFINE.
2555
25562012-06-26  Akim Demaille  <akim@lrde.epita.fr>
2557
2558	tests: use assert instead of plain abort.
2559	* tests/actions.at, tests/calc.at, tests/conflicts.at,
2560	* tests/cxx-type.at, tests/glr-regression.at, tests/input.at,
2561	* tests/named-refs.at, tests/regression.at, tests/torture.at,
2562	* tests/local.at:
2563	Prefer assert to abort.
2564
25652012-06-26  Akim Demaille  <akim@lrde.epita.fr>
2566
2567	tests: improve the generic yylex implementation.
2568	* tests/local.at (AT_YYSTYPE, AT_YYLTYPE): New.
2569	(AT_YYLEX_FORMALS): Use them.
2570	(AT_YYLEX_DEFINE): Be independent of the location implementation.
2571
25722012-06-26  Akim Demaille  <akim@lrde.epita.fr>
2573
2574	tests: generalize the compilation macros.
2575	* tests/local.at (AT_COMPILE, AT_COMPILE_CXX): If OUTPUT ends with ".o",
2576	then append the "natural" extension for the input file (.c or .cc).
2577	If there is no source, pass -c.
2578	* tests/headers.at, tests/input.at, tests/regression.at: Adjust.
2579
25802012-06-26  Akim Demaille  <akim@lrde.epita.fr>
2581
2582	tests: fix confusion between api.prefix and name-prefix.
2583	* tests/local.at (AT_NAME_PREFIX): Take api.prefix into account.
2584	(AT_API_PREFIX): Rename as...
2585	(AT_API_prefix): this.
2586	Do not take %name-prefix into account.
2587	Fix misuses.
2588
25892012-06-26  Akim Demaille  <akim@lrde.epita.fr>
2590
2591	maint: gitignores.
2592
25932012-06-25  Akim Demaille  <akim@lrde.epita.fr>
2594
2595	yacc: work around the ylwrap limitation.
2596	* data/yacc.c (b4_shared_declarations): Include the header guards.
2597	Do not include the header in the *.c file, duplicate it.
2598	* NEWS (Future Changes): Extend, and announce the forthcoming change
2599	about the use of the parser header.
2600
26012012-06-22  Akim Demaille  <akim@lrde.epita.fr>
2602
2603	tests: more uniformity.
2604	* tests/local.at (AT_LEX_FORMALS, AT_LEX_ARGS, AT_LEX_PRE_FORMALS)
2605	(AT_LEX_PRE_ARGS): Rename as...
2606	(AT_YYLEX_FORMALS, AT_YYLEX_ARGS, AT_YYLEX_PRE_FORMALS)
2607	(AT_YYLEX_PRE_ARGS): these, for consistency.
2608	(AT_API_PREFIX): Take %name-prefix into account.
2609	(AT_YYLEX_PROTOTYPE): New.
2610	Use it.
2611	* tests/actions.at, tests/calc.at, tests/cxx-type.at: Adjust to
2612	use them.
2613
26142012-06-22  Akim Demaille  <akim@lrde.epita.fr>
2615
2616	tests: handle locations in a more generic way.
2617	* tests/local.at (AT_YYERROR_PROTOTYPE): New.
2618	Use it.
2619	* tests/cxx-type.at: Extensive revamp to use a more traditional
2620	quotation scheme, and to use the generic yyerror implementation.
2621	Prefer Autotest macros to CPP macros.
2622	* tests/java.at: .
2623
26242012-06-22  Akim Demaille  <akim@lrde.epita.fr>
2625
2626	tests: handle locations in the generic yyerror functions.
2627	* tests/local.at (AT_YYERROR_DECLARE_EXTERN, AT_YYERROR_DECLARE)
2628	(AT_YYERROR_DEFINE): Handle locations for C and C++.
2629	* tests/calc.at: Use it for C++ (as C has extra arguments which
2630	are not yet handled by AT_BISON_OPTION_PUSHDEFS).
2631	* tests/actions.at: Adjust.
2632
26332012-06-22  Akim Demaille  <akim@lrde.epita.fr>
2634
2635	tests: fix AT_CHECK_CALC.
2636	* tests/calc.at (AT_CHECK_CALC): Contrary to its documentation,
2637	the test was skipped if given a second argument.
2638	Unused feature, remove it.
2639
26402012-06-22  Akim Demaille  <akim@lrde.epita.fr>
2641
2642	tests: improve infrastructure
2643	* tests/local.at (AT_LANG): Use c++ instead of cxx for C++.
2644	Adjust dependencies.
2645	(AT_YYERROR_DECLARE_EXTERN, AT_YYERROR_DECLARE): Issue nothing
2646	for C++/Java.
2647	(AT_YYERROR_DEFINE): Use m4_case.
2648	(AT_JAVA_COMPILE): Use AT_SKIP_IF.
2649
26502012-06-21  Akim Demaille  <akim@lrde.epita.fr>
2651
2652	tests: factor.
2653	* tests/glr-regression.at, tests/output.at, tests/push.at,
2654	* tests/regression.at, tests/torture.at, tests/actions.at:
2655	Use AT_YYLEX_* and AT_YYERROR_*.
2656
26572012-06-21  Akim Demaille  <akim@lrde.epita.fr>
2658
2659	skeletons: minor style changes
2660	* data/glr.c, data/yacc.c: here.
2661
26622012-06-21  Akim Demaille  <akim@lrde.epita.fr>
2663
2664	tests: AT_LANG.
2665	* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
2666	Define/undefine AT_LANGE
2667	(AT_LANG_COMPILE): New.
2668	(AT_FULL_COMPILE): Use AT_LANG.
2669
26702012-06-21  Akim Demaille  <akim@lrde.epita.fr>
2671
2672	c skeletons: factor the declaration of yylloc and yylval.
2673	There is one difference: now, even without --defines, we generate
2674	extern declarations for these variables.  The factoring is worth it.
2675	* data/c.m4 (b4_declare_yylstype): Declare them.
2676	* data/glr.c, data/yacc.c: Adjust.
2677
26782012-06-21  Akim Demaille  <akim@lrde.epita.fr>
2679
2680	news: condemn YYPARSE_PARAM and YYLEX_PARAM.
2681	* NEWS: here.
2682	(Bison 1.875): Add %parse-param and %lex-param.
2683	* doc/bison.texinfo: Spello.
2684
26852012-06-20  Akim Demaille  <akim@lrde.epita.fr>
2686
2687	maint: regen.
2688	* Makefile.am (regen): New target.
2689
26902012-06-19  Akim Demaille  <akim@lrde.epita.fr>
2691
2692	maint: formatting changes.
2693	* NEWS: Fix indentation of code snippets.
2694	Untabify.
2695
26962012-06-17  Akim Demaille  <akim@lrde.epita.fr>
2697
2698	tests: support api.prefix.
2699	* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
2700	Define AT_API_PREFIX.
2701	(AT_YYERROR_DEFINE, AT_YYERROR_DECLARE_EXTERN, AT_YYLEX_DECLARE_EXTERN)
2702	(AT_YYLEX_DEFINE): Use it.
2703	* tests/input.at, tests/regression.at, tests/torture.at: Add
2704	AT_BISON_OPTION_PUSHDEFS/POPDEFS.
2705
27062012-06-17  Akim Demaille  <akim@lrde.epita.fr>
2707
2708	tests: pacify font-lock-mode.
2709	* tests/local.at: here.
2710
27112012-06-17  Akim Demaille  <akim@lrde.epita.fr>
2712
2713	tests: remove test covered elsewhere.
2714	* tests/headers.at (%union and --defines): Remove, pretty useless and
2715	insignificant.
2716
27172012-06-17  Akim Demaille  <akim@lrde.epita.fr>
2718
2719	tests: factor the declaration/definition of yyerror and yylex.
2720	* tests/local.at (AT_YYERROR_DECLARE, AT_YYERROR_DECLARE_EXTERN)
2721	(AT_YYERROR_DEFINE, AT_YYLEX_DECLARE, AT_YYLEX_DECLARE_EXTERN)
2722	(AT_YYLEX_DEFINE): New.
2723	Must be used inside AT_BISON_OPTION_PUSHDEFS/POPDEFS pair.
2724	* tests/actions.at, tests/conflicts.at, tests/glr-regression.at,
2725	* tests/headers.at, tests/input.at, tests/named-refs.at,
2726	* tests/regression.at, tests/skeletons.at, tests/synclines.at,
2727	* tests/torture.at: Use them.
2728
27292012-06-17  Akim Demaille  <akim@lrde.epita.fr>
2730
2731	regen.
2732
27332012-06-17  Akim Demaille  <akim@lrde.epita.fr>
2734
2735	tests: portability issues.
2736	* tests/calc.at (AT_CALC_MAIN): Missing include reported by Hydra.
2737
27382012-06-15  Akim Demaille  <akim@lrde.epita.fr>
2739
2740	tests: call the parser from another compilation unit.
2741	In order to improve the testing of %defines, which exports the
2742	interface of the generated parser, change the calc.at tests so that
2743	when %defines is passed, main will be in another compilation unit.  It
2744	loads the generated header.
2745
2746	* tests/calc.at (AT_CALC_MAIN): New.
2747	Includes the definition of the global variables.
2748	Therefore, now declare them from the %requires section of the parser.
2749	Adjust to yydebug and yyparse being renamed by %name-prefix.
2750
27512012-06-15  Akim Demaille  <akim@lrde.epita.fr>
2752
2753	glr.c, yacc.c: declare yydebug in the header.
2754	* data/c.m4 (b4_declare_yydebug): New.
2755	* data/glr.c, data/yacc.c (b4_shared_declarations): Use it.
2756	Remove the corresponding code from the parser body.
2757	* NEWS: Doc this.
2758
27592012-06-15  Akim Demaille  <akim@lrde.epita.fr>
2760
2761	skeletons: use header guards.
2762	* data/glr.c, data/glr.cc, data/yacc.c: here.
2763	* NEWS: Document it.
2764
27652012-06-15  Akim Demaille  <akim@lrde.epita.fr>
2766
2767	tests: improve AT_FULL_COMPILE.
2768	* tests/local.at: Accept a third argument.
2769	Simplify quotation pattern.
2770	Calls for better refactoring, but will suffice for a while.
2771
27722012-06-15  Akim Demaille  <akim@lrde.epita.fr>
2773
2774	tests: reorder.
2775	* tests/calc.at (power): Move its definition, as a preparation for
2776	forthcoming changes.
2777	And space changes.
2778
27792012-06-15  Akim Demaille  <akim@lrde.epita.fr>
2780
2781	tests: strengthen the test on generated headers inclusion
2782	* tests/headers.at (AT_TEST_CPP_GUARD_H): Accept Bison directives.
2783	(Invalid CPP headers): Check glr.
2784
27852012-06-15  Akim Demaille  <akim@lrde.epita.fr>
2786
2787	yacc.c: instead of duplicating y.tab.h inside y.tac.c, include it.
2788	This is already what glr.c and lalr1.cc do.
2789
2790	* data/yacc.c: here.
2791
27922012-06-13  Akim Demaille  <akim@lrde.epita.fr>
2793
2794	yacc.c: factor.
2795	yacc.c used to include two almost identical sections: one for the *.h
2796	file, and another for the *.c file.  The main difference is that in
2797	the *.c file we used the yy* names (as %name-prefix is handled by
2798	"#define yy* <prefix>*" before), while the *.hh used <prefix>* names.
2799	Keep only the later.  If this is troublesome, b4_shared_declarations
2800	can easily take the desired prefix as argument.
2801
2802	* data/yacc.c (b4_shared_declarations): New.
2803	Use it to factor duplicated declarations.
2804
28052012-06-12  Akim Demaille  <akim@lrde.epita.fr>
2806
2807	skeletons: factor yacc.c and glr.c.
2808	yacc.c and glr.c share common declarations.  Their YYLTYPE are exactly
2809	equal, and their YYSTYPE are sufficiently alike to be fused (its
2810	declaration was protected by YYSTYPE_IS_DECLARED in yacc.c, but not in
2811	glr.c).  Besides, yacc.c duplicated the definitions of YYLTYPE and
2812	YYSTYPE (*.h/*.c).
2813
2814	* data/c.m4 (b4_declare_yylstype): New.
2815	* data/yacc.c, data/glr.c: Use it.
2816
28172012-06-12  Akim Demaille  <akim@lrde.epita.fr>
2818
2819	glr.c: minor refactoring.
2820	* data/glr.c (b4_shared_declarations): Move from the generated file
2821	section, to the M4 prologue.
2822
28232012-06-12  Akim Demaille  <akim@lrde.epita.fr>
2824
2825	tests: remove all the -On flags.
2826	* tests/atlocal.in: Here.
2827	Reported by Gilles Espinasse.
2828
28292012-06-12  Akim Demaille  <akim@lrde.epita.fr>
2830
2831	maint: fix spello.
2832	* README-hacking: Here.
2833	* THANKS: Reported by Gilles Espinasse.
2834
28352012-06-12  Akim Demaille  <akim@lrde.epita.fr>
2836
2837	maint: improve release procedure instructions.
2838	* gnulib: Update, in particular (README-release).
2839	* bootstrap.conf: don't require gendocs, provided by gnu-web-doc-update,
2840	provided by readme-release.
2841	* README-hacking: Update accordingly.
2842
28432012-06-07  Akim Demaille  <akim@lrde.epita.fr>
2844
2845	gnulib: update readme-release.
2846	* gnulib (readme-release): Now includes the modules it promotes.
2847	* bootstrap.conf: Simplify accordingly.
2848
28492012-06-07  Akim Demaille  <akim@lrde.epita.fr>
2850
2851	maint: cfg.mk: manual title.
2852	* cfg.mk (manuel_title): New.
2853
28542012-06-07  Akim Demaille  <akim@lrde.epita.fr>
2855
2856	maint: cfg.mk: simplify
2857	* cfg.mk: Remove bits provided by maint.mk.
2858
28592012-06-07  Akim Demaille  <akim@lrde.epita.fr>
2860
2861	maint: post-release administrivia
2862	* NEWS: Add header line for next release.
2863	* .prev-version: Record previous version.
2864	* cfg.mk (old_NEWS_hash): Auto-update.
2865
28662012-06-05  Akim Demaille  <akim@lrde.epita.fr>
2867
2868	version 2.5.1
2869	* NEWS: Record release date.
2870
28712012-06-05  Akim Demaille  <akim@lrde.epita.fr>
2872
2873	NEWS: prepare for 2.5.1.
2874	* NEWS: Be compliant with do-release-commit-and-tag.
2875
28762012-06-05  Akim Demaille  <akim@lrde.epita.fr>
2877
2878	maint: update release procedure
2879	* bootstrap.conf: Request do-release-commit-and-tag and readme-release.
2880	* README-hacking: Adjust.
2881
28822012-06-05  Jim Meyering  <meyering@redhat.com>
2883
2884	maint: fix comment typos
2885	Using http://github.com/lyda/misspell-check, massage its
2886	output into sed commands to perform the suggested changes.
2887	Initially, I filtered out the THRU->Through changes, because
2888	that failed to retain capitalization in the grammar token.
2889	Instead, do this manually, beforehand:
2890
2891	sed -i s/THRU/THROUGH/ tests/existing.at
2892	git ls-files|misspellings -f -|perl -nl \
2893	  -e '/^(.*?)\[(\d+)\]: (\w+) -> "(.*?)"$/ or next;' \
2894	  -e '($file,$n,$l,$r)=($1,$2,$3,$4); $q="'\''"; $r=~s/$q/$q\\$q$q/g;'\
2895	  -e 'print "sed -i $q${n}s!$l!$r!$q $file"'|bash
2896
28972012-05-23  Akim Demaille  <akim@lrde.epita.fr>
2898
2899	maint: post-release administrivia
2900	* NEWS: Add header line for next release.
2901	* .prev-version: Record previous version.
2902	* cfg.mk (old_NEWS_hash): Auto-update.
2903
29042012-05-23  Akim Demaille  <akim@lrde.epita.fr>
2905
2906	Bison 2.5.1_rc2.
2907	* NEWS: Update.
2908
29092012-05-23  Akim Demaille  <akim@lrde.epita.fr>
2910
2911	doc: fixes.
2912	* doc/bison.texinfo: Fix errors spotted by syntax-check.
2913
29142012-05-23  Akim Demaille  <akim@lrde.epita.fr>
2915
2916	build: fix ChangeLog generation.
2917	* gnulib: Update to get newest gitlog-to-changelog.
2918	* bootstrap: Update.
2919	* Makefile.am (gen-ChangeLog): Fix for Bison's git log style.
2920
29212012-05-21  Akim Demaille  <akim@lrde.epita.fr>
2922
2923	c++: compute the header guards.
2924	This is a frequent request.  Recently pointed out by Wei Song,
2925	<http://lists.gnu.org/archive/html/help-bison/2012-05/msg00002.html>.
2926
2927	* data/c.m4 (b4_tocpp, b4_cpp_guard, b4_cpp_guard_open)
2928	(b4_cpp_guard_close): New.
2929	* data/lalr1.cc, data/location.cc, data/stack.hh: Use them.
2930	* TODO (Header Guards): Move to...
2931	* NEWS: here.
2932	Formatting changes.
2933
29342012-05-21  Akim Demaille  <akim@lrde.epita.fr>
2935
2936	skeletons: remove support for unused directive.
2937	* src/scan-skel.l (@dir_prefix@): Remove support, has never been
2938	used, not even in the commit that introduced it,
2939	2b81e969ea04c1a6502928ba7e847ec8ff7dcb2f.
2940
29412012-05-21  Akim Demaille  <akim@lrde.epita.fr>
2942
2943	lalr1.cc: improve Doxygen documentation.
2944	* data/location.cc: Qualify file names with directory name.
2945
29462012-05-21  Akim Demaille  <akim@lrde.epita.fr>
2947
2948	lalr1.cc: extract stack.hh.
2949	See commit 51bacae6b58fd5c6cce861f00440dc917384625e.
2950	* data/stack.hh: New, extracted from...
2951	* data/lalr1.cc: here.
2952	* data/Makefile.am: Adjust.
2953
29542012-05-21  Akim Demaille  <akim@lrde.epita.fr>
2955
2956	news: convert to double quotes.
2957	* NEWS: Convert from `quoted' to "quoted".
2958	Reported by Stefano Lattarini.
2959	http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00039.html
2960
29612012-05-21  Akim Demaille  <akim@lrde.epita.fr>
2962
2963	space changes.
2964	* src/flex-scanner.h: Indent nested cpp directives.
2965
29662012-05-21  Akim Demaille  <akim@lrde.epita.fr>
2967
2968	build: do not prototype flex-generated functions.
2969	Some versions of Flex, possibly modified by the distribution package
2970	maintainers, have incompatible signatures.  Since newer versions of
2971	Flex prototype their functions, avoid the conflicts in that case.
2972	Reported by Stefano Lattarini.
2973	<http://lists.gnu.org/archive/html/bug-bison/2012-05/msg00012.html>.
2974
2975	* src/flex-scanner.h (FLEX_VERSION_GT): New.
2976	Use it to issue prototypes for flex-generated functions only for
2977	versions up to 2.5.31, in accordance with the comment.
2978	See commit dc9701e848f27ae64b6ddcf809580998667d60f2.
2979	Use it to define yylex_destroy when needed.
2980
29812012-05-16  Akim Demaille  <akim@lrde.epita.fr>
2982
2983	build: fix ChangeLog generation.
2984	* Makefile.am (gen-ChangeLog): Fix for VPATH builds.
2985
29862012-05-14  Akim Demaille  <akim@lrde.epita.fr>
2987
2988	Bison 2.5.1_rc1.
2989	* NEWS: Update.
2990	* src/parse-gram.c, src/parse-gram.h: Regen.
2991
29922012-05-11  Akim Demaille  <akim@lrde.epita.fr>
2993
2994	tests: save/restore Autotest special files when checking XML support.
2995	Currently the test 248, "parse-gram.y: LALR = IELR", fails
2996	BISON_TEST_XML is set.
2997
2998	* tests/local.at (AT_BISON_CHECK_XML): Belt: Save/restore files.
2999	* tests/regression.at (parse-gram.y: LALR = IELR): Suspenders: Don't
3000	rely on expout.
3001	Each one of these changes suffices.
3002
30032012-05-11  Akim Demaille  <akim@lrde.epita.fr>
3004
3005	tests: AT_SAVE_SPECIAL_FILES / AT_RESTORE_SPECIAL_FILES.
3006	Some of our macros play with expout and other Autotest special files,
3007	which may break their callers (e.g., currently TESTSUITEFLAGS='248
3008	BISON_TEST_XML=1' fails).
3009
3010	There is already some support for this.  Expand it to be ready to use
3011	it elsewhere.
3012
3013	* tests/local.at (AT_RESTORE_SPECIAL_FILES, AT_SAVE_SPECIAL_FILES)
3014	(at_save_special_files, at_restore_special_files): New.
3015	(AT_BISON_CHECK_NO_XML): Use them.
3016
30172012-05-11  Akim Demaille  <akim@lrde.epita.fr>
3018
3019	tests: honor TESTSUITEFLAGS in all the check targets.
3020	* tests/Makefile.am (installcheck-local): Simplify.
3021	(maintainer-check-posix, maintainer-check-valgrind): Honor
3022	$(TESTSUITEFLAGS).
3023
30242012-05-11  Akim Demaille  <akim@lrde.epita.fr>
3025
3026	build: do not enable c++ warnings on 0 when nullptr is not supported.
3027	* configure.ac (WARN_CXXFLAGS): Enable -Wzero-as-null-pointer-constant
3028	only when nullptr is supported..
3029
30302012-05-11  Akim Demaille  <akim@lrde.epita.fr>
3031
3032	maint: update gnulib.
3033	* bootstrap, gnulib: Update.
3034
30352012-05-09  Akim Demaille  <akim@lrde.epita.fr>
3036
3037	build: config.in.h.
3038	Historically we used config.hin (where everybody else used
3039	config.h.in) to please DOS.  Now that we use gnulib, there are already
3040	tons of files with several dots, especially *.in.h.
3041
3042	* configure.ac: Rename config.hin as config.in.h.
3043
30442012-05-09  Akim Demaille  <akim@lrde.epita.fr>
3045
3046	build: move silent rules.
3047	* tests/Makefile.am: In the generation of the test suite.
3048
30492012-05-09  Akim Demaille  <demaille@gostai.com>
3050
3051	glr.c: reduce variable scopes.
3052	* data/glr.c: Where appropriate, fuse variable declarations followed
3053	by assignments by variable declarations with a value.
3054	Where appropriate, introduce new scopes to limit variable spans.
3055
30562012-05-08  Akim Demaille  <akim@lrde.epita.fr>
3057
3058	maint: maintainer-release-check.
3059	* tests/Makefile.am (maintainer-release-check): New.
3060	* Makefile.am (MAINTAINER_CHECKS): New.
3061	Support maintainer-release-check.
3062	* README-hacking: Document it, and syntax-check too.
3063
30642012-05-08  Akim Demaille  <akim@lrde.epita.fr>
3065
3066	maint: shush a syntax-check.
3067	* cfg.mk: lib/timevar is not planned to be gnulib'ed, as it comes
3068	from GCC.
3069
30702012-05-08  Akim Demaille  <akim@lrde.epita.fr>
3071
3072	maint: prefer "commit message" to "log entry".
3073	* README-hacking: here.
3074	Suggested by Stefano Lattarini.
3075
30762012-05-08  Akim Demaille  <akim@lrde.epita.fr>
3077
3078	command line: fix minor leaks.
3079	* src/getargs.c (getargs): Free pointers before allocating them new
3080	content.
3081
30822012-05-08  Akim Demaille  <akim@lrde.epita.fr>
3083
3084	maint: we no longer maintain the ChangeLog.
3085	* .gitattributes: No need to merge it.
3086	* README-hacking: Update release instructions.
3087
30882012-05-06  Akim Demaille  <akim@lrde.epita.fr>
3089
3090	maint: fix the generation of the synclines for bison's parser.
3091	* tests/bison.in: Import from master the changes that make
3092	this script generate synclines that are independant of the
3093	builddir/srcdir user's set up.
3094
30952012-05-06  Akim Demaille  <akim@lrde.epita.fr>
3096
3097	maint: regen.
3098	* src/parse-gram.c, src/parse-gram.h: Regen.
3099
31002012-05-06  Akim Demaille  <akim@lrde.epita.fr>
3101
3102	maint: import the xmemdup0 gnulib module.
3103	* bootstrap.conf: Require this module.
3104	* src/parse-gram.y: Include xmemdup0.h.
3105
31062012-05-06  Akim Demaille  <akim@lrde.epita.fr>
3107
3108	maint: remove left-over gnulib modules.
3109	* bootstrap.conf (gnulib_modules): Remove pipe-posix.
3110	* lib/.gitignore, m4/.gitignore: Remove files that we no longer use.
3111
31122012-05-06  Akim Demaille  <akim@lrde.epita.fr>
3113
3114	maint: ignore files imported by autopoint.
3115	* m4/.gitignore: here.
3116
31172012-05-06  Akim Demaille  <akim@lrde.epita.fr>
3118
3119	build: AC_PROG_LEX: use more readable variable names.
3120	* m4/flex.m4 (AC_PROG_LEX): Prefer LEX_IS_FLEX to FLEX.
3121	Prefer true/false to yes/no for such variables.
3122	* configure.ac: Adjust.
3123
31242012-05-06  Jim Meyering  <meyering@redhat.com>
3125
3126	maint: regen src/parse-gram.[ch]
3127
31282012-05-06  Jim Meyering  <meyering@redhat.com>
3129	    Akim Demaille  <akim@lrde.epita.fr>
3130
3131	maint: simplify parse-gram.y
3132	* src/parse-gram.y (add_param): Use xmemdup0 in place of
3133	xmalloc+memcpy, and strspn in place of an open-coded loop.
3134
31352012-05-06  Jim Meyering  <meyering@redhat.com>
3136
3137	maint: s/strncpy/memcpy/, when equivalent
3138	* src/output.c (output_skeleton): Use memcpy, not strncpy,
3139	since the source is known to fit in the destination buffer.
3140	* src/parse-gram.y (%skeleton): Likewise.
3141
31422012-05-04  Akim Demaille  <akim@lrde.epita.fr>
3143
3144	glr.c: untabify.
3145	* data/glr.c: here.
3146
31472012-05-04  Akim Demaille  <akim@lrde.epita.fr>
3148
3149	glr.cc: untabify.
3150	* data/glr.cc: here.
3151
31522012-05-04  Akim Demaille  <akim@lrde.epita.fr>
3153
3154	glr.cc: formatting changes.
3155	* data/glr.cc: Fit in 80 columns.
3156
31572012-05-04  Akim Demaille  <akim@lrde.epita.fr>
3158
3159	glr.cc: remove unused signature.
3160	* data/glr.cc (yydestruct_): Not used, remove.
3161	It is yydestruct which is used.
3162
31632012-05-04  Akim Demaille  <akim@lrde.epita.fr>
3164
3165	glr.cc: properly declare locations are const where appropriate.
3166	* data/glr.cc (yyerror): The location is const.
3167
31682012-05-04  Akim Demaille  <akim@lrde.epita.fr>
3169
3170	doc: fix @xref.
3171	* doc/bison.texinfo: here.
3172
31732012-05-02  Akim Demaille  <akim@lrde.epita.fr>
3174
3175	tests: ignore code coverage/profiling failure messages
3176	The Hydra buildfarm provides code coverage analysis.  For some reason,
3177	in some test cases, code coverage data seem to be incompatible, and
3178	generate error messages at parser run-time.  Ignore these messages so
3179	that (i) these tests do pass, (ii) coverage results be provided by
3180	Hydra.
3181
3182	* tests/local.at (AT_PARSER_CHECK): Ignore messages for failed merges
3183	of code coverage/profiling results.
3184
31852012-04-16  Akim Demaille  <akim@lrde.epita.fr>
3186
3187	doc: fix some invalid @ref.
3188	* doc/bison.texinfo: Fix incorrect @ref uses.
3189
31902012-04-16  Akim Demaille  <akim@lrde.epita.fr>
3191
3192	build: fix previous commit.
3193	* bootstrap: Update from gnulib.
3194
31952012-04-16  Akim Demaille  <akim@lrde.epita.fr>
3196
3197	install-pdf: fix.
3198	* gnulib: Fix install-pdf in po/ and runtime-po/.
3199	Reported by Hans Aberg.
3200	Fixed by Joel E. Denny.
3201	http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html
3202
32032012-04-16  Akim Demaille  <akim@lrde.epita.fr>
3204
3205	NEWS: Update.
3206	* NEWS: Spell check.
3207	(%printer): is now documented.
3208
32092012-04-16  Akim Demaille  <akim@lrde.epita.fr>
3210
3211	%printer: support both yyo and yyoutput.
3212	lalr1.cc used to support yyo, but not yyoutput.  Support both,
3213	but document only yyoutput (at least until there is some consensus
3214	on this).
3215
3216	* data/c.m4 (yy_symbol_value_print): Also support yyo.
3217	* data/glr.cc  (yy_symbol_value_print_): Support both yyo and yyoutput.
3218	* data/lalr1.cc: Also support yyoutput.
3219	* doc/bison.texinfo: Explicitly use yyoutput in the examples.
3220	* examples/mfcalc/mfcalc.test: Test the -p option.
3221
32222012-04-16  Akim Demaille  <akim@lrde.epita.fr>
3223
3224	doc: mfcalc: demonstrate %printer.
3225	* doc/bison.texinfo (Printer Decl): New.
3226	Number mfcalc.y snippets so that they are output in
3227	the proper order.
3228	(The mfcalc Main): Use yydebug.
3229	(Debugging): Simplify the text.
3230	(Enabling Traces, Mfcalc Traces, The YYPRINT Macro): New.
3231	(Table of Symbols): Document YYPRINT and YYFPRINTF.
3232
32332012-04-16  Akim Demaille  <akim@lrde.epita.fr>
3234
3235	tests: style changes.
3236	* tests/input.at: Use "print" in %printer instead of "destroy".
3237	It is unused, so we don't care, yet it is less surprising.
3238	* tests/actions.at: Comment changes.
3239
32402012-04-10  Akim Demaille  <akim@lrde.epita.fr>
3241
3242	build: require Flex.
3243	* configure.ac: Require Flex.
3244
32452012-04-10  Akim Demaille  <akim@lrde.epita.fr>
3246
3247	build: flex.m4: check for Flex.
3248	* m4/flex.m4 (_AC_PROG_LEX_YYTEXT_DECL): Check that $LEX
3249	supports some of the Flex options, and exclusive start conditions.
3250	Define FLEX to 'yes'/'', as AC_PROG_CC does for GCC.
3251
32522012-04-10  Akim Demaille  <akim@lrde.epita.fr>
3253
3254	build: flex.m4: quote properly.
3255	* m4/flex.m4: Use quotes more systematically.
3256
32572012-04-10  Akim Demaille  <akim@lrde.epita.fr>
3258
3259	build: flex.m4.
3260	* m4/flex.m4: New.
3261	An exact copy of what is in Autoconf currently.
3262
32632012-04-10  Akim Demaille  <akim@lrde.epita.fr>
3264
3265	build: autoconf: update.
3266	* submodules/autoconf: Update.
3267	There are no changes in data/m4sugar/foreach.m4, and the
3268	changes in data/m4sugar/m4sugar.m4 are minor.
3269
32702012-04-10  Akim Demaille  <akim@lrde.epita.fr>
3271
3272	glr: eliminate last bits of unwanted locations.
3273	* data/glr.c (YYLTYPE): Do not define when locations are
3274	not demanded.
3275	Adjust all dependencies.
3276
32772012-04-10  Akim Demaille  <akim@lrde.epita.fr>
3278
3279	NEWS: 2.6 will drop K&R.
3280	* NEWS: here.
3281	(glr.c): Fix a spello.
3282
32832012-04-09  Akim Demaille  <akim@lrde.epita.fr>
3284
3285	TODO: remove dead items.
3286	* TODO (Documentation, %printer, Java): Remove, already done (or just
3287	waiting for approval).
3288	(Fortran, BTYacc): Remove, there does not seem to be demand.
3289
32902012-04-09  Akim Demaille  <akim@lrde.epita.fr>
3291
3292	TODO: import from master.
3293	* TODO: Copy the current version.
3294
32952012-04-07  Akim Demaille  <akim@lrde.epita.fr>
3296
3297	gnulib: update.
3298	* bootstrap.conf (bootstrap_sync): True again.
3299	It was disabled while waiting for changes to be integrated
3300	in gnulib's bootstrap, which was done long ago.
3301	* bootstrap, gnulib: Update.
3302
33032012-04-04  Akim Demaille  <akim@lrde.epita.fr>
3304
3305	maint: update NEWS.
3306	* NEWS: Fix entry about __attribute__.
3307	Reorder by "decreasing" order of importance.
3308
33092012-04-04  Akim Demaille  <akim@lrde.epita.fr>
3310
3311	doc: fix index.
3312	http://lists.gnu.org/archive/html/bison-patches/2012-04/msg00006.html
3313
3314	* doc/bison.texinfo: Avoid using @def* variant with more
3315	than the defined entity as main entity, as it results in
3316	an incorrect index.  For instance, don't document
3317	{return YYERROR;}, which results in a single index entry
3318	"return YYERROR;", but rather as typed function whose
3319	return type is "type", and whose argument list is ";".
3320
33212012-04-04  Akim Demaille  <akim@lrde.epita.fr>
3322
3323	doc: fix documentation of YYERROR.
3324	* doc/bison.texinfo (Table of Symbols): Fix the documentation
3325	of YYERROR by copying that from "Action Features".
3326
33272012-04-01  Akim Demaille  <akim@lrde.epita.fr>
3328
3329	c++: more YY_NULL
3330	Caught by maintainer-check-g++.
3331	* data/glr.c, data/lalr1.cc, data/yacc.c, tests/cxx-type.at,
3332	* tests/glr-regression.at, tests/push.at:
3333	When simple to do, avoid expliciting the null ptr.
3334	Otherwise use YY_NULL.
3335
33362012-04-01  Akim Demaille  <akim@lrde.epita.fr>
3337
3338	bump to 2012 in skeletons.
3339	* data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java,
3340	* data/location.cc, data/yacc.c: Bump copyright year ranges.
3341
33422012-04-01  Akim Demaille  <akim@lrde.epita.fr>
3343
3344	build: remove ancient Autoconf tests.
3345	lib/subpipe.c was removed in 47fa574761319b0a422691223c9b8a9a72f36aa2.
3346
3347	* m4/subpipe.m4: Remove.
3348	* configure.ac (BISON_PREREQ_SUBPIPE): Remove.
3349
33502012-03-31  Akim Demaille  <akim@lrde.epita.fr>
3351
3352	doc: c++: complete the location documentation.
3353	* data/location.cc (position::initialize, location::initialize):
3354	Also accept line and column, with default values.
3355	* doc/bison.texinfo (C++ position, C++ location): New nodes.
3356	Describe more thoroughly these classes.
3357	Fix several Texinfo misuses.
3358
33592012-03-31  Akim Demaille  <demaille@gostai.com>
3360
3361	c++: locations: provide convenience constructors.
3362	* data/location.cc (position::position): Accept file, line and
3363	column as arguments with default values.
3364	Always qualify initial line and column literals as unsigned.
3365	(location::location): Provide convenience constructors.
3366
33672012-03-31  Akim Demaille  <akim@lrde.epita.fr>
3368
3369	c++: locations: remove useless "inline".
3370	* data/location.cc: "inline" is implicit when defining
3371	methods in the class definition.
3372
33732012-03-31  Akim Demaille  <akim@lrde.epita.fr>
3374
3375	glr: do not use locations when they are not requested
3376	When the test suite runs with -O2 and warnings enabled, G++
3377	complains of locations being used, but not initialized.
3378	The simplest is to not use locations.
3379
3380	* data/glr.c (b4_locuser_formals, b4_locuser_args): New.
3381	Use them when locations should not be used.
3382	Use b4_locations_if where appropriate.
3383	(yyuserAction): Modify the order to the arguments to make
3384	it more alike the other routines, and to make use of
3385	b4_locuser_args simpler.
3386
33872012-03-31  Akim Demaille  <akim@lrde.epita.fr>
3388
3389	c++: use nullptr for C++11.
3390	C++11 introduces "nullptr" which plays the role of C's NULL, in
3391	replacement of "0".  Fix the C++ skeletons to avoid warnings about
3392	uses of "0" in place of "nullptr", and improve C skeletons to also use
3393	this "nullptr" when compiled with a C++11 compiler.
3394
3395	* configure.ac: More C++ warnings.
3396	* NEWS (2.5.1): Document this.
3397	* data/c++.m4, data/c.m4 (b4_null_define): New.
3398	(b4_null): Use YY_NULL instead of 0.
3399	* data/glr.c, data/lalr1.cc, data/location.cc, data/yacc.c:
3400	Call b4_null_define/b4_null where appropriate.
3401	Use YY_NULL instead of NULL.
3402	* data/location.cc (initialize): Accept a default argument,
3403	YY_NULL.
3404	* tests/actions.at, tests/calc.at: Adjust.
3405
3406	* data/glr.c, lib/libiberty.h, src/system.h (__attribute__):
3407	Do not disable it when __STRICT_ANSI__ is defined, as, for
3408	instance, it disables the __attribute__((unused)) which
3409	protects us from some compiler warnings.
3410	This was already done elsewhere in Bison, in 2001, see
3411	4a0d89369599a2cea01f4fbdf791f426a02cb5a3.
3412	* tests/regression.at: Adjust output.
3413
34142012-03-30  Akim Demaille  <akim@lrde.epita.fr>
3415
3416	build: simplify and improve the compiler warnings for tests.
3417	* configure.ac (warn_common, warn_c, warn_cxx): New.
3418	Use them to compute independently the options supported
3419	by the C and C++ compilers.
3420	Don't AC_SUBST the variables passed to gl_WARN_ADD: it
3421	does it for us.
3422	(WARN_CFLAGS_TEST, WARN_CXXFLAGS_TEST): Don't aggregate
3423	$WARN_CFLAGS and $WARN_CXXFLAGS in them now, leave it
3424	to atlocal.in.
3425	(O0CFLAGS, O0CXXFLAGS): Move their definition to...
3426	* tests/atlocal.in: here.
3427	Be more systematic between C and C++.
3428	Reorder to factor between variables.
3429	Propagate all of the variables when --compile-c-with-cxx.
3430
34312012-03-30  Akim Demaille  <akim@lrde.epita.fr>
3432
3433	gnulib: update.
3434
34352012-03-30  Akim Demaille  <akim@lrde.epita.fr>
3436
3437	maint: formatting changes.
3438	* src/system.h: Indent CPP directives using cppi.
3439
34402012-03-27  Akim Demaille  <akim@lrde.epita.fr>
3441
3442	NEWS: update.
3443	* NEWS: Java fixes, more about the doc changes, liby issues.
3444
34452012-03-27  Tim Landscheidt  <tim@tim-landscheidt.de>
3446
3447	Java: Fix syntax error handling without error token.
3448	* data/lalr1.java (YYParser::parse): Here.
3449	* tests/java.at: Add test case.
3450
34512012-03-24  Akim Demaille  <akim@lrde.epita.fr>
3452
3453	tests: beware of -pedantic on large #line numbers.
3454	* tests/local.at (AT_TEST_TABLES_AND_PARSE): Don't pass -pedantic
3455	when compiling large canonical-LR parsers.
3456	Reported by Tys Lefering.
3457	http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00025.html
3458
34592012-03-24  Akim Demaille  <akim@lrde.epita.fr>
3460
3461	tests: when using the C++ compiler, use its flags too.
3462	* tests/local.at: Go for colors.
3463	(--compile-c-with-cxx): New option.
3464	We used to pass "CC=$CXX" as command line argument,
3465	but it was not possible to adjust CFLAGS accordingly
3466	in atlocal, since it is loaded before assignments on
3467	the command line are honored (so that the command line
3468	takes precedence).
3469	* tests/atlocal.in: Implement it.
3470	* tests/local.mk: Use it.
3471
34722012-03-19  Akim Demaille  <akim@lrde.epita.fr>
3473
3474	doc: update the --verbose report format.
3475	* doc/bison.texinfo (Understanding): Adjust to match the
3476	current format.
3477
34782012-03-19  Akim Demaille  <akim@lrde.epita.fr>
3479
3480	doc: spell check.
3481	* doc/bison.texinfo: here.
3482
34832012-03-19  Akim Demaille  <akim@lrde.epita.fr>
3484
3485	doc: stmt, not stmnt.
3486	* doc/bison.texinfo: s/stmnt/stmt/g.  This is a
3487	much more common abbreviation for "statement".
3488
34892012-03-19  Akim Demaille  <akim@lrde.epita.fr>
3490
3491	doc: save width.
3492	* doc/bison.texinfo (Language and Grammar): Use the same
3493	layout for an example in all the versions, i.e., keep
3494	as general case what used to be used only for Info.
3495
34962012-03-19  Akim Demaille  <akim@lrde.epita.fr>
3497
3498	doc: reformat grammar snippets.
3499	* doc/bison.texinfo: Convert the grammar examples to
3500	use a narrower style.  This helps fitting into the
3501	@smallbook constraints.
3502	http://lists.gnu.org/archive/html/bison-patches/2012-03/msg00011.html
3503
35042012-03-19  Akim Demaille  <akim@lrde.epita.fr>
3505
3506	doc: use only @example, not @smallexample.
3507	* doc/bison.texinfo: Convert all @smallexamples into @examples.
3508	Adjust layout where needed.
3509
35102012-03-19  Akim Demaille  <akim@lrde.epita.fr>
3511
3512	doc: style changes.
3513	* doc/bison.texinfo: Avoid line width issues with TeX.
3514	Upgrade ancient messages.
3515	Move some comments to better looking places.
3516	Add more @group.
3517	(Mfcalc Symbol Table): Reduce variable scopes.
3518	Prefer size_t for sizes.
3519	Prefer declarations with an initial value.
3520	Fix a @group environment.
3521
35222012-03-19  Paul Eggert  <eggert@cs.ucla.edu>
3523
3524	doc: minor fixes to "Understanding" section
3525	* doc/bison.texinfo (Understanding): Minor wording fixes and
3526	improvements.  Fixes problems reported in
3527	<https://savannah.gnu.org/patch/?4306>.
3528
35292012-03-13  Akim Demaille  <demaille@gostai.com>
3530
3531	tests: minor fixes/simplifications
3532	* tests/local.at (AT_BISON_CHECK_NO_XML): Simplify sed programs,
3533	quotation, and default value assignments.
3534	Ensure a proper value to the numeric variables.
3535	Reported by Lie Yan.
3536	http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html
3537
35382012-03-09  Akim Demaille  <demaille@gostai.com>
3539
3540	tests: be robust to quote style.
3541	See <http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00120.html>.
3542
3543	* src/main.c (main): Define the quoting style we use.
3544	* tests/atlocal.in: Use ASCII style quotes during the tests.
3545
35462012-03-09  Akim Demaille  <demaille@gostai.com>
3547
3548	maint: update gnulib.
3549	* gnulib: update.
3550	* src/scan-gram.l: Don't use the (former version of) STREQ.
3551
35522012-03-06  Akim Demaille  <demaille@gostai.com>
3553
3554	tests: be robust to POSIXLY_CORRECT being defined.
3555	* tests/local.at (AT_BISON_CHECK_NO_XML): Check if
3556	POSIXLY_CORRECT is defined, not if it is defined to 1.
3557	Reported by Lie Yan.
3558	http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html
3559
35602012-02-23  Akim Demaille  <demaille@gostai.com>
3561
3562	doc: fix environment issues.
3563	* doc/bison.texinfo: Do not use @verbatim, in particular when
3564	we use @group inside.
3565	Use @quotation instead of @display for frequently asked questions,
3566	it looks much nicer.
3567
35682012-02-23  Akim Demaille  <demaille@gostai.com>
3569
3570	regen.
3571	* src/parse-gram.h, src/parse-gram.c: regen.
3572
35732012-02-23  Akim Demaille  <demaille@gostai.com>
3574
3575	tests: fix regressions.
3576	Exit status 63 is documented for version-mismatch.
3577	* bootstrap.conf (gnulib_modules): Remove sysexits.
3578	* src/system.h (EX_MISMATCH): Define.
3579	* src/parse-gram.y (version_check): Use it instead of EX_CONFIG.
3580
3581	Missing includes.
3582	* tests/calc.at, tests/named-refs.at: Include assert.h.
3583
35842012-02-21  Akim Demaille  <demaille@gostai.com>
3585
3586	glr: fix ambiguity reports.
3587	* tests/glr-regression.at (Ambiguity reports): New.
3588
35892012-02-19  Akim Demaille  <demaille@gostai.com>
3590
3591	doc: stylistic improvements.
3592	* doc/bison.texinfo: Prefer "continue" to empty loop bodies.
3593	Add some @group/@end group to avoid poor page breaks.
3594
35952012-02-19  Akim Demaille  <demaille@gostai.com>
3596
3597	maint: address sc_prohibit_doubled_word.
3598	* data/yacc.c, doc/bison.texinfo: Reword to avoid having to
3599	disable that check.
3600	* cfg.mk: No longer skip this test.
3601
36022012-02-19  Akim Demaille  <demaille@gostai.com>
3603
3604	maint: address sc_prohibit_always-defined_macros.
3605	* cfg.mk: No longer skip it, except where EXIT_SUCCESS is used
3606	as a witness for stdlib.h.
3607	Skip this test when appropriate.
3608	* data/yacc.c: Drop a note about why EXIT_SUCCESS is defined here.
3609
36102012-02-19  Akim Demaille  <demaille@gostai.com>
3611
3612	maint: address sc_bindtextdomain, sc_program_name and sc_prohibit_HAVE_MBRTOWC.
3613	* bootstrap.conf (gnulib_modules): Require progname.
3614	* src/complain.c, src/getargs.c, src/getargs.h, src/main.c: Use it.
3615	* cfg.mk (exclude): New.
3616	Use it.
3617	Skip lib/main.c for bindtextdomain and set_program_name.
3618
36192012-02-19  Akim Demaille  <demaille@gostai.com>
3620
3621	maint: remove stray file.
3622	* config.hin: Remove.
3623
36242012-02-19  Akim Demaille  <demaille@gostai.com>
3625
3626	maint: address some syntax-issues remaining after cherry-picking from master.
3627	* cfg.mk: Skip bison generated files, 2.5 is generating trailing
3628	blanks.  This is already fixed in master.
3629	* tests/conflicts.at, tests/java.at: Fix white space issues.
3630
36312012-02-19  Akim Demaille  <demaille@gostai.com>
3632
3633	regen.
3634	* src/parse-gram.c, src/parse-gram.h: Regen.
3635
36362012-02-19  Akim Demaille  <demaille@gostai.com>
3637
3638	bitset: fix an incorrect error message.
3639	* lib/bitset_stats.c: here.
3640	Reported by Stefano Lattarini.
3641
36422012-02-19  Jim Meyering  <meyering@redhat.com>
3643
3644	maint: reenable sc_m4_quote_check
3645	* cfg.mk (local-checks-to-skip): Reenable sc_m4_quote_check.
3646	* m4/dmalloc.m4: Add quotes.
3647
36482012-02-19  Akim Demaille  <demaille@gostai.com>
3649
3650	maint: remove trailing empty lines.
3651	* cfg.mk: No longer skip sc_prohibit_empty_lines_at_EOF, except
3652	for parse-gram.h (generated).
3653	* examples/mfcalc/.gitignore, lib/.gitignore, m4/.gitignore,
3654	* po/.gitignore, runtime-po/.gitignore: Remove trailing/leading
3655	empty lines.
3656
36572012-02-19  Akim Demaille  <demaille@gostai.com>
3658
3659	maint: avoid "magic number exit".
3660	* cfg.mk (local-checks-to-skip): No longer skip it.
3661	* bootstrap.conf (gnulib_modules): Add sysexits.
3662	* doc/bison.texinfo, etc/bench.pl.in, src/parse-gram.y,
3663	* src/system.h, tests/calc.at, tests/named-refs.at: Use assert
3664	where appropriate instead of "if (...) exit".
3665	Use symbolic exit status elsewhere.
3666
36672012-02-19  Akim Demaille  <demaille@gostai.com>
3668
3669	maint: fix some syntax-check issues.
3670	* cfg.mk (local-checks-to-skip): Remove
3671	sc_prohibit_quotearg_without_use, sc_prohibit_strcmp,
3672	sc_unmarked_diagnostics, sc_useless_cpp_parens.
3673	(sc_unmarked_diagnostics): Skip DJGPP.
3674	* data/yacc.c, src/LR0.c, src/closure.c,
3675	* src/flex-scanner.h, src/gram.c, src/lalr.c,
3676	* src/print-xml.c, src/print.c, src/print_graph.c,
3677	* src/reader.c, src/reduce.c, src/tables.c:
3678	Don't use parens with cpp's defined.
3679	Remove useless includes.
3680
36812012-02-19  Akim Demaille  <demaille@gostai.com>
3682
3683	maint: address a couple of syntax-check errors.
3684	* cfg.mk (local-checks-to-skip): Remove sc_error_message_period
3685	and sc_error_message_uppercase.
3686	Address the uncovered issues.
3687	* po/POTFILES.in: Add missing files.
3688	* src/symtab.c: Remove useless includes.
3689	* lib/bitset_stats.c, src/files.c, tests/glr-regression.at: Use
3690	conformant error messages.
3691
36922012-02-19  Akim Demaille  <demaille@gostai.com>
3693
3694	maint: gnulib: upgrade.
3695
36962012-02-15  Akim Demaille  <demaille@gostai.com>
3697
3698	maint: rely on Automake for parsers.
3699	* Makefile.am (AM_YFLAGS): Automake looks for "-d" alone.
3700	Move other options in here.
3701	(BISON): New.
3702	(YACC): Use it.
3703	(bison_SOURCES): Now that automake can see `-d' in AM_YFLAGS,
3704	we can rely on it to compile and ship the parser header
3705	files.
3706
3707	Based on commit 737406a32c201471699bfa0843d1f432f3ec29ab and
3708	commit 3d6ca339083c278d907c9f030f4ba6bc5ecb07f2.
3709
37102012-02-14  Akim Demaille  <demaille@gostai.com>
3711
3712	maint: more authors.
3713	* AUTHORS: here.
3714	Suggested by Tys Lefering.
3715
37162012-02-14  Akim Demaille  <demaille@gostai.com>
3717
3718	maint: add license headers.
3719	* examples/calc++/test, examples/variant.yy, AUTHORS, THANKS,
3720	* tests/atlocal.in, tests/bison.in: Add license headers.
3721	Reported by Tys Lefering.
3722
37232012-02-14  Akim Demaille  <demaille@gostai.com>
3724
3725	maint: remove obsolete file.
3726	* etc/make-ChangeLogs: Remove (used for rcs to cvs migration!).
3727	Reported by Tys Lefering.
3728
37292012-02-08  Akim Demaille  <demaille@gostai.com>
3730
3731	use a more consistent quoting style.
3732	See <http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00120.html>.
3733	Use quotearg as often as possible instead of leaving the choice of
3734	the quotes to the translators.  Use shorter messages.  Factor similar
3735	messages to a single format, to make localization easier.
3736
3737	* src/files.c, src/getargs.c, src/muscle-tab.c, src/reader.c
3738	* src/scan-code.l, src/scan-gram.l, src/symtab.c:
3739	Use quote() or quotearg_colon() on printf arguments instead of
3740	quotes in the format string.
3741	* data/bison.m4: Keep sync with the changes in muscle-tab.c.
3742
3743	* tests/skeletons.at, tests/input.at, tests/regression.at: Adjust
3744	expected messages.
3745
37462012-01-31  Akim Demaille  <demaille@gostai.com>
3747
3748	maint: remove stray debug code.
3749	* src/Makefile.am (echo): Remove.
3750
37512012-01-31  Akim Demaille  <demaille@gostai.com>
3752
3753	maint: space changes.
3754	* src/Makefile.am: Use 2 leading spaces for variable definition
3755	spreading over several lines.
3756
37572012-01-31  Akim Demaille  <demaille@gostai.com>
3758
3759	maint: more silent-rules.
3760	* doc/local.mk, src/local.mk, examples/calc++/Makefile.am: Use
3761	$(AM_V_GEN) and $(AM_V_at) where appropriate.
3762
37632012-01-31  Jim Meyering  <meyering@redhat.com>
3764
3765	do not ignore errors like ENOSPC,EIO when writing to stdout
3766	Standard output was never explicitly closed, so we could not
3767	detect failure.  Thus, bison would ignore the errors of writing
3768	to a full file system and getting an I/O error on write, but only
3769	for standard output, e.g., for --print-localedir, --print-datadir,
3770	--help and some verbose output.
3771	Now, "bison --print-datadir > /dev/full" reports the write failure:
3772	bison: write error: No space left on device
3773	Before, it would exit 0 with no diagnostic, implying success.
3774	This is not an issue for "--output=-" or the other FILE-accepting
3775	command-line options, because unlike most other GNU programs,
3776	an output file argument of "-" is treated as the literal "./-",
3777	rather than standard output.
3778	* bootstrap.conf (gnulib_modules): Add closeout.
3779	* src/main.c: Include "closeout.h".
3780	Use atexit to ensure we close stdout.
3781	* .gitignore: Ignore new files pulled in via gnulib-tool.
3782
37832012-01-26  Akim Demaille  <demaille@gostai.com>
3784
3785	tests: fix expected output.
3786	* tests/actions.at (YYBACKUP): here.
3787
37882012-01-26  Akim Demaille  <demaille@gostai.com>
3789
3790	yacc: fix YYBACKUP.
3791	Reported by David Kastrup:
3792	https://lists.gnu.org/archive/html/bug-bison/2011-10/msg00002.html.
3793
3794	* data/yacc.c (YYBACKUP): Accept rhs size.
3795	Restore the proper state value.
3796	* TODO (YYBACKUP): Make it...
3797	* tests/actions.at: a new test case.
3798	* NEWS, THANKS: Update.
3799
38002012-01-26  Akim Demaille  <demaille@gostai.com>
3801
3802	maint: update TODO.
3803	* TODO (Labeling the symbols): Remove, it's done ("Name references").
3804
38052012-01-26  Akim Demaille  <demaille@gostai.com>
3806
3807	maint: update THANKS.
3808	* THANKS: Update Tys's address, on his request.
3809
38102012-01-26  Akim Demaille  <demaille@gostai.com>
3811
3812	maint: fix --gcc-warnings support.
3813	* configure.ac: Use enable_gcc_warnings instead of enableval,
3814	which is valid only with AC_ARG_ENABLE.
3815
38162012-01-26  Akim Demaille  <demaille@gostai.com>
3817
3818	maint: silent-rules.
3819	* configure.ac: Ask for silent-rules support.
3820	Enable it by default.
3821
38222012-01-26  Akim Demaille  <demaille@gostai.com>
3823
3824	maint: remove trailing blanks.
3825	* src/scan-code.l: Here.
3826
38272012-01-25  Paul Eggert  <eggert@cs.ucla.edu>
3828
3829	tests: port to Solaris 10 'diff -u'
3830	* tests/regression.at (parse-gram.y: LALR = IELR): Port to Solaris 10,
3831	where "diff -u X X" outputs "No differences encountered"
3832	instead of outputting nothing.  Reported by Tomohiro Suzuki in
3833	<http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00101.html>.
3834
38352012-01-25  Jim Meyering  <meyering@redhat.com>
3836
3837	build: avoid possibly-replaced fprintf in liby-source, yyerror.c
3838	* lib/yyerror.c (yyerror): Use fputs and fputc rather than fprintf
3839	with a mere "%s\n" format.  Always return 0 now, on the assumption
3840	that the return value was never used anyway.
3841	Don't include <config.h> after all.  This avoids a problem
3842	reported by Thiru Ramakrishnan in
3843	http://lists.gnu.org/archive/html/help-bison/2011-11/msg00000.html
3844	* cfg.mk: Exempt lib/yyerror.c from the sc_require_config_h_first test.
3845	* THANKS: Update.
3846
38472012-01-24  Jim Meyering  <meyering@redhat.com>
3848
3849	maint: generate ChangeLog from git log
3850	* Makefile.am (gen-ChangeLog): New rule.
3851	(dist-hook): Depend on it.
3852	(EXTRA_DIST): Distribute the two ChangeLog-* files.
3853	* bootstrap.conf (gnulib_modules): Add gitlog-to-changelog.
3854	(bootstrap_post_import_hook): Ensure that ChangeLog exists.
3855	* build-aux/git-log-fix: New file.
3856	* ChangeLog-2012: Renamed ...
3857	* ChangeLog: ... from this.
3858	* ChangeLog-1998: Renamed ...
3859	* OChangeLog: ...from this
3860	* .gitignore: Add ChangeLog.
3861
38622012-01-24  Jim Meyering  <meyering@redhat.com>
3863
3864	change more quotes in source, and adjust tests to match
3865	Run this command to change each `%s' to '%s' in source directories:
3866	  git grep -l '`%s'\' src djgpp data \
3867	    |xargs perl -pi -e '$q="'\''";s/`%s$q/$q%s$q/g'
3868	* data/bison.m4: Affected per the above.
3869	* djgpp/subpipe.c: Likewise.
3870	* src/files.c: Likewise.
3871	* src/getargs.c: Likewise.
3872	* src/muscle-tab.c: Likewise.
3873	* src/reader.c: Likewise.
3874	* tests/glr-regression.at: Adjust to match.
3875	* tests/input.at: Likewise.
3876	* tests/push.at: Likewise.
3877	* tests/skeletons.at: Likewise.
3878
38792012-01-23  Jim Meyering  <meyering@redhat.com>
3880
3881	quote consistently and make tests pass with new quoting from gnulib
3882	Updating to gnulib pulled in new quote and quotarg modules,
3883	by which quoting is now done like 'this' rather than `this'.
3884	That change induces many "make check" test failures.  This change
3885	adapts code and tests so that "make check" passes once again.
3886	* src/scan-code.l: Quote like 'this', not like `this'.
3887	* src/scan-gram.l: Likewise.
3888	* src/symtab.c: Likewise.
3889	* tests/actions.at: Adjust tests to match.
3890	* tests/input.at: Likewise.
3891	* tests/named-refs.at: Likewise.
3892	* tests/output.at: Likewise.
3893	* tests/regression.at: Likewise.
3894	* lib/.gitignore: Regenerate.
3895	* m4/.gitignore: Likewise.
3896
38972012-01-23  Jim Meyering  <meyering@redhat.com>
3898
3899	build: update gnulib and autoconf submodules to latest (cherry picked from commit 728415f885e5cb8e518c8576fa6e1f541e384130)
3900
39012012-01-23  Jim Meyering  <meyering@redhat.com>
3902
3903	build: manually update bootstrap from gnulib, and adapt
3904	Updating to the latest bootstrap from gnulib involves more of a
3905	change than usual, and updating to the latest gnulib would involve
3906	its own set of challenges with the upcoming quoting changes, so
3907	we update bootstrap manually and separately.
3908	* bootstrap: Update from gnulib.
3909	* lib/Makefile.am: Initialize more variables to empty, so that gnulib.mk
3910	can append to them with "+=".
3911	* bootstrap.conf (gnulib_mk_hook): Remove.  No longer honored.
3912	(gnulib_tool_option_extras): Generate gnulib.mk.
3913
39142012-01-23  Jim Meyering  <meyering@redhat.com>
3915
3916	maint: include <config.h> first
3917	* cfg.mk (exclude_file_name_regexp--sc_require_config_h_first):
3918	Exempt data/glr.c and data/yacc.c from the include-config.h-first
3919	requirement.
3920
39212012-01-23  Jim Meyering  <meyering@redhat.com>
3922
3923	build: include <config.h> from lib/yyerror.c
3924	* lib/yyerror.c: Include <config.h>.
3925
39262012-01-23  Jim Meyering  <meyering@redhat.com>
3927
3928	maint: list djgpp/subpipe.c in po/POTFILES.in
3929	* po/POTFILES.in: Add djgpp/subpipe.c.
3930
39312012-01-23  Jim Meyering  <meyering@redhat.com>
3932
3933	maint: placate the space-TAB syntax-check
3934	* cfg.mk (exclude_file_name_regexp--sc_space_tab): Exempt
3935	tests/input.at and tests/c++.at, since they appear to use
3936	SP-TAB sequences deliberately.
3937	* OChangeLog: Remove space-before-TAB.
3938
39392012-01-23  Jim Meyering  <meyering@redhat.com>
3940
3941	doc: correct typo: s/can not/cannot/
3942	* doc/bison.texinfo (Bug Reports): s/can not/cannot/
3943	And remove trailing blanks.
3944
39452012-01-22  Jim Meyering  <meyering@redhat.com>
3946
3947	maint: get gpl-3.0 from gnulib
3948	* bootstrap.conf (gnulib_modules): Add gpl-3.0.
3949	* doc/gpl-3.0.texi: Remove from version control, now that
3950	we get it via gnulib.
3951	* doc/.gitignore: Ignore it.
3952