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