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