From d61e59ea0eeefc5eb310337251c1acf0fcf25836 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 31 Jul 2012 14:29:39 +0200 Subject: [PATCH 01/12] tests: simplify * tests/regression.at: Remove useless compilations: AT_FULL_COMPILE includes the compilation by bison. --- tests/regression.at | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/regression.at b/tests/regression.at index c2795f66..71c3bbf0 100644 --- a/tests/regression.at +++ b/tests/regression.at @@ -917,7 +917,6 @@ m4_define([AT_CHECK_DANCER], [AT_SETUP([Dancer $1]) AT_BISON_OPTION_PUSHDEFS([$1]) _AT_DATA_DANCER_Y([$1]) -AT_BISON_CHECK([-o dancer.c dancer.y]) AT_FULL_COMPILE([dancer]) AT_PARSER_CHECK([./dancer], 1, [], [syntax error, unexpected ':' @@ -1002,7 +1001,6 @@ m4_define([AT_CHECK_EXPECT2], [AT_SETUP([Expecting two tokens $1]) AT_BISON_OPTION_PUSHDEFS([$1]) _AT_DATA_EXPECT2_Y([$1]) -AT_BISON_CHECK([-o expect2.c expect2.y]) AT_FULL_COMPILE([expect2]) AT_PARSER_CHECK([./expect2], 1, [], [syntax error, unexpected '+', expecting A or B From c9d546b2a8ec076b1bad7c65f74d04533a448da5 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 31 Jul 2012 14:18:39 +0200 Subject: [PATCH 02/12] c++: trailing end-of-lines in %parse-param * src/parse-gram.y (add_param): No only skip ' ' and '\t', skip all leading and trailing spaces. * tests/regression.at (Lex and parse params): Check it. * NEWS: Document it. --- NEWS | 4 +++ src/parse-gram.y | 10 +++--- tests/regression.at | 84 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index f940d8ed..316abb04 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,10 @@ GNU Bison NEWS * Noteworthy changes in release ?.? (????-??-??) [?] +** Spaces in %lex- and %parse-param (lalr1.cc, glr.cc) + + Trailing end-of-lines in %parse-param or %lex-param would result in + invalid C++. This is fixed. * Noteworthy changes in release 2.6.1 (2012-07-30) [stable] diff --git a/src/parse-gram.y b/src/parse-gram.y index e6a27c50..02af75e2 100644 --- a/src/parse-gram.y +++ b/src/parse-gram.y @@ -734,11 +734,13 @@ add_param (char const *type, char *decl, location loc) /* Strip the surrounding '{' and '}', and any blanks just inside the braces. */ - while (*--p == ' ' || *p == '\t') - continue; + --p; + while (isspace ((unsigned char) *p)) + --p; p[1] = '\0'; - while (*++decl == ' ' || *decl == '\t') - continue; + ++decl; + while (isspace ((unsigned char) *decl)) + ++decl; if (! name_start) complain_at (loc, _("missing identifier in parameter declaration")); diff --git a/tests/regression.at b/tests/regression.at index 71c3bbf0..2f029939 100644 --- a/tests/regression.at +++ b/tests/regression.at @@ -1583,3 +1583,87 @@ Stack now 0 m4_popdef([AT_LAC_CHECK]) AT_CLEANUP + + +## ---------------------- ## +## Lex and parse params. ## +## ---------------------- ## + +# AT_TEST(SKELETON) +# ----------------- +# Check that the identifier of the params is properly fetched +# even when there are trailing blanks. + +m4_pushdef([AT_TEST], +[AT_SETUP([[Lex and parse params: $1]]) + +AT_BISON_OPTION_PUSHDEFS([%locations %skeleton $1]) + +## FIXME: Improve parsing of parse-param and use the generated +## yyerror. +AT_DATA_GRAMMAR([input.y], +[[%defines +%locations +%skeleton $1 +%union { int ival; } +%parse-param { int x } +// Spaces, tabs, and new lines. +%parse-param { @&t@ + int y @&t@ + @&t@ + @&t@ +} + +%{ +#include +#include + +]AT_SKEL_CC_IF([], [[ +static +void +yyerror (int x, int y, const char *msg) +{ + fprintf (stderr, "x: %d, y: %d, %s\n", x, y, msg); +}]])[ + + ]AT_YYLEX_DECLARE[ +%} + +%% +exp: 'a' { fprintf (stdout, "x: %d, y: %d\n", x, y); }; +%% +]AT_YYLEX_DEFINE(["a"])[ + +]AT_SKEL_CC_IF( +[AT_YYERROR_DEFINE + +int +yyparse (int x, int y) +{ + yy::parser parser(x, y); + return parser.parse (); +} +])[ + +int +main (void) +{ + return !!yyparse(1, 2); +} +]]) + +AT_FULL_COMPILE([input]) +AT_CHECK([./input], 0, [[x: 1, y: 2 +]]) +AT_BISON_OPTION_POPDEFS + +AT_CLEANUP +]) + +## FIXME: test Java, and iterate over skeletons. +AT_TEST("yacc.c") +AT_TEST("glr.c") +AT_TEST("lalr1.cc") +AT_TEST("glr.cc") + +m4_popdef([AT_TEST]) From a0c45dd5d2697b726add2bbc81947e9cb98c2799 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 31 Jul 2012 14:18:43 +0200 Subject: [PATCH 03/12] regen --- src/parse-gram.c | 14 ++++++++------ src/parse-gram.h | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/parse-gram.c b/src/parse-gram.c index 3d0e0b8a..207938dc 100644 --- a/src/parse-gram.c +++ b/src/parse-gram.c @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 2.6.29-cd73-dirty. */ +/* A Bison parser, made by GNU Bison 2.6.1.6-b045. */ /* Bison implementation for Yacc-like parsers in C @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.6.29-cd73-dirty" +#define YYBISON_VERSION "2.6.1.6-b045" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -3169,11 +3169,13 @@ add_param (char const *type, char *decl, location loc) /* Strip the surrounding '{' and '}', and any blanks just inside the braces. */ - while (*--p == ' ' || *p == '\t') - continue; + --p; + while (isspace ((unsigned char) *p)) + --p; p[1] = '\0'; - while (*++decl == ' ' || *decl == '\t') - continue; + ++decl; + while (isspace ((unsigned char) *decl)) + ++decl; if (! name_start) complain_at (loc, _("missing identifier in parameter declaration")); diff --git a/src/parse-gram.h b/src/parse-gram.h index 10de0a64..50cfe23e 100644 --- a/src/parse-gram.h +++ b/src/parse-gram.h @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 2.6.29-cd73-dirty. */ +/* A Bison parser, made by GNU Bison 2.6.1.6-b045. */ /* Bison interface for Yacc-like parsers in C From d6e2a5796465d961aa25bbd64ef474ba4cfb0fd5 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 1 Aug 2012 09:30:23 +0200 Subject: [PATCH 04/12] tests: synclines: fix perl invocation Reported by Summum Bonum. * tests/synclines.at: Fix Perl invocation: its -f is not like sed's. --- tests/synclines.at | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/synclines.at b/tests/synclines.at index 7e7122f9..1bda1c42 100644 --- a/tests/synclines.at +++ b/tests/synclines.at @@ -64,7 +64,7 @@ m4_define([AT_SYNCLINES_COMPILE], # distcc[35882] (dcc_connect_by_name) ERROR: failed to look up host "chrisimac": Unknown host # distcc[35882] Warning: failed to distribute input.c to chrisimac/4, running locally instead -AT_CHECK([[perl -p -0777 -f - stderr <<\EOF +AT_CHECK([[perl -p -0777 - stderr <<\EOF s/^distcc\[\d+\] .*\n//gm; s/^([^:]*:\d+)[.:][^:]*:(.*)$/$][1:$][2/gm; s/^([^:]*:\d+:)[^#]*( #error)/$][1$][2/gm; From 1914a7811505f31ab5a7936b9aa530caf71189df Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 1 Aug 2012 09:30:27 +0200 Subject: [PATCH 05/12] tests: synclines: style changes * tests/synclines.at (AT_TEST_SYNCLINE): Rename as... (AT_TEST): this. Use pushdef/popdef. Formatting changes. Use '+' instead of '*' where appropriate. --- tests/synclines.at | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/tests/synclines.at b/tests/synclines.at index 1bda1c42..61f274a6 100644 --- a/tests/synclines.at +++ b/tests/synclines.at @@ -65,21 +65,21 @@ m4_define([AT_SYNCLINES_COMPILE], # distcc[35882] Warning: failed to distribute input.c to chrisimac/4, running locally instead AT_CHECK([[perl -p -0777 - stderr <<\EOF - s/^distcc\[\d+\] .*\n//gm; - s/^([^:]*:\d+)[.:][^:]*:(.*)$/$][1:$][2/gm; - s/^([^:]*:\d+:)[^#]*( #error)/$][1$][2/gm; - s/^[^:]*: In function '[^']*':\n//gm; - s/^\ +#error.*\n\ *\^\n//gm; + s/^distcc\[\d+\] .*\n//gm; + s/^([^:]+:\d+)[.:][^:]+:(.+)$/$][1:$][2/gm; + s/^([^:]+:\d+):[^#]*( #error)/$][1:$][2/gm; + s/^[^:]*: In function '[^']+':\n//gm; + s/^\ +#error.*\n\ *\^\n//gm; EOF ]], - 0, [stdout]) + 0, [stdout]) ]) -# AT_TEST_SYNCLINE(TITLE, INPUT, ERROR-MSG) -# ----------------------------------------- +# AT_TEST(TITLE, INPUT, ERROR-MSG) +# -------------------------------- # Check that compiling the parser produced from INPUT cause GCC # to issue ERROR-MSG. -m4_define([AT_TEST_SYNCLINE], +m4_pushdef([AT_TEST], [AT_SETUP([$1]) AT_BISON_OPTION_PUSHDEFS # It seems impossible to find a generic scheme to check the location @@ -121,7 +121,7 @@ AT_CLEANUP ## --------------------- ## -AT_TEST_SYNCLINE([Prologue synch line], +AT_TEST([Prologue synch line], [[%{ #error "2" ]AT_YYERROR_DECLARE_EXTERN[ @@ -139,7 +139,7 @@ exp: '0'; ## %union synch line. ## ## ------------------- ## -AT_TEST_SYNCLINE([%union synch line], +AT_TEST([%union synch line], [[%union { #error "2" char dummy; @@ -160,7 +160,7 @@ exp: '0'; ## Postprologue synch line. ## ## ------------------------- ## -AT_TEST_SYNCLINE([Postprologue synch line], +AT_TEST([Postprologue synch line], [[%{ ]AT_YYERROR_DECLARE_EXTERN[ ]AT_YYLEX_DECLARE_EXTERN[ @@ -184,7 +184,7 @@ exp: '0'; ## Action synch line. ## ## ------------------- ## -AT_TEST_SYNCLINE([Action synch line], +AT_TEST([Action synch line], [[%{ ]AT_YYERROR_DECLARE_EXTERN[ ]AT_YYLEX_DECLARE_EXTERN[ @@ -203,7 +203,7 @@ exp: ## Epilogue synch line. ## ## --------------------- ## -AT_TEST_SYNCLINE([Epilogue synch line], +AT_TEST([Epilogue synch line], [[%{ ]AT_YYERROR_DECLARE_EXTERN[ ]AT_YYLEX_DECLARE_EXTERN[ @@ -215,3 +215,5 @@ exp: '0'; ]], [input.y:8: #error "8" ]) + +m4_popdef([AT_TEST]) From 06f2ac78d75a22b1f00de0ffd3ae751c9f53dc30 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 1 Aug 2012 08:27:28 +0200 Subject: [PATCH 06/12] tests: synch line -> syncline, for consistency * tests/synclines.at: Do it, as "syncline" is used consistently everywhere else in Bison. --- tests/synclines.at | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/synclines.at b/tests/synclines.at index 61f274a6..e2b7005d 100644 --- a/tests/synclines.at +++ b/tests/synclines.at @@ -116,12 +116,12 @@ AT_CLEANUP ]) -## --------------------- ## -## Prologue synch line. ## -## --------------------- ## +## ------------------- ## +## Prologue syncline. ## +## ------------------- ## -AT_TEST([Prologue synch line], +AT_TEST([Prologue syncline], [[%{ #error "2" ]AT_YYERROR_DECLARE_EXTERN[ @@ -135,11 +135,11 @@ exp: '0'; ]) -## ------------------- ## -## %union synch line. ## -## ------------------- ## +## ----------------- ## +## %union syncline. ## +## ----------------- ## -AT_TEST([%union synch line], +AT_TEST([%union syncline], [[%union { #error "2" char dummy; @@ -156,11 +156,11 @@ exp: '0'; ]) -## ------------------------- ## -## Postprologue synch line. ## -## ------------------------- ## +## ----------------------- ## +## Postprologue syncline. ## +## ----------------------- ## -AT_TEST([Postprologue synch line], +AT_TEST([Postprologue syncline], [[%{ ]AT_YYERROR_DECLARE_EXTERN[ ]AT_YYLEX_DECLARE_EXTERN[ @@ -180,11 +180,11 @@ exp: '0'; ]) -## ------------------- ## -## Action synch line. ## -## ------------------- ## +## ----------------- ## +## Action syncline. ## +## ----------------- ## -AT_TEST([Action synch line], +AT_TEST([Action syncline], [[%{ ]AT_YYERROR_DECLARE_EXTERN[ ]AT_YYLEX_DECLARE_EXTERN[ @@ -199,11 +199,11 @@ exp: ]) -## --------------------- ## -## Epilogue synch line. ## -## --------------------- ## +## ------------------- ## +## Epilogue syncline. ## +## ------------------- ## -AT_TEST([Epilogue synch line], +AT_TEST([Epilogue syncline], [[%{ ]AT_YYERROR_DECLARE_EXTERN[ ]AT_YYLEX_DECLARE_EXTERN[ From e39eff37e20ccd253176e1db11131cc2b29fd4a4 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 1 Aug 2012 09:59:49 +0200 Subject: [PATCH 07/12] gnulib: update --- gnulib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnulib b/gnulib index 678815ea..bd54a45e 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 678815ea7c4d95e04a0fa6d3b491b3c872c677a7 +Subproject commit bd54a45e6e4bcb3ee7359c9b4f1d831a6291148f From 62a58c14bdd489d86621227ec2ed6038da7772cd Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Thu, 2 Aug 2012 08:29:18 +0200 Subject: [PATCH 08/12] thanks: fix a contributor name * THANKS: On his request. --- THANKS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/THANKS b/THANKS index 75037b1f..95acb1e2 100644 --- a/THANKS +++ b/THANKS @@ -101,7 +101,7 @@ Sergei Steshenko sergstesh@yahoo.com Shura debil_urod@ngs.ru Stefano Lattarini stefano.lattarini@gmail.com Steve Murphy murf@parsetree.com -Summum Bonum sum@geekhouse.org +Sum Wu sum@geekhouse.org Thiru Ramakrishnan thiru.ramakrishnan@gmail.com Tim Josling tej@melbpc.org.au Tim Landscheidt tim@tim-landscheidt.de From dcd5344dcde3ddc4761867134e6f8cc7b945ce1c Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Thu, 2 Aug 2012 12:01:54 +0200 Subject: [PATCH 09/12] yacc: remove trailing end of line at end of file There are still spurious spaces at the end of some lines. But this is addressed in the master branch, and I am reluctant to try to backport this. * data/yacc.c, data/glr.c, data/lalr1.cc, data/glr.cc: here. * tests/calc.at (AT_CHECK_SPACES): New. Use it. Be sure not to introduce trailing empty lines in the *.y files. * NEWS: Doc it. * cfg.mk (syntax-check): Remove the exception. --- NEWS | 4 ++++ cfg.mk | 1 - data/glr.c | 6 ++---- data/glr.cc | 4 +--- data/lalr1.cc | 2 +- data/yacc.c | 2 +- src/parse-gram.c | 5 ++--- src/parse-gram.h | 2 +- tests/calc.at | 20 +++++++++++++++++--- 9 files changed, 29 insertions(+), 17 deletions(-) diff --git a/NEWS b/NEWS index 316abb04..0ce9dd43 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,10 @@ GNU Bison NEWS Trailing end-of-lines in %parse-param or %lex-param would result in invalid C++. This is fixed. +** Spurious spaces and end-of-lines + + The generated files no longer end (nor start) with empty lines. + * Noteworthy changes in release 2.6.1 (2012-07-30) [stable] Bison no longer executes user-specified M4 code when processing a grammar. diff --git a/cfg.mk b/cfg.mk index 53855aef..3a70379c 100644 --- a/cfg.mk +++ b/cfg.mk @@ -70,7 +70,6 @@ $(call exclude, \ prohibit_always-defined_macros+=?|^src/(parse-gram.c|system.h)$$ \ prohibit_always-defined_macros+=?|^tests/regression.at$$ \ prohibit_defined_have_decl_tests=?|^lib/timevar.c$$ \ - prohibit_empty_lines_at_EOF=^src/parse-gram.[ch]$$ \ prohibit_magic_number_exit=^doc/bison.texi$$ \ prohibit_magic_number_exit+=?|^tests/(conflicts|regression).at$$ \ require_config_h_first=^(lib/yyerror|data/(glr|yacc))\.c$$ \ diff --git a/data/glr.c b/data/glr.c index 08f6cd8d..97efe894 100644 --- a/data/glr.c +++ b/data/glr.c @@ -2599,9 +2599,7 @@ yypdumpstack (yyGLRStack* yystackp) YYFPRINTF (stderr, "\n"); } #endif -] - -b4_epilogue +]b4_epilogue[]dnl dnl dnl glr.cc produces its own header. dnl @@ -2614,5 +2612,5 @@ b4_copyright([Skeleton interface for Bison GLR parsers in C], ]b4_cpp_guard_open([b4_spec_defines_file])[ ]b4_shared_declarations[ ]b4_cpp_guard_close([b4_spec_defines_file])[ -]])]) +]])])dnl m4_divert_pop(0) diff --git a/data/glr.cc b/data/glr.cc index 78a7ae51..826bc80e 100644 --- a/data/glr.cc +++ b/data/glr.cc @@ -211,9 +211,7 @@ m4_pushdef([b4_parse_param], m4_defn([b4_parse_param_orig]))dnl #endif ]m4_popdef([b4_parse_param])dnl -b4_namespace_close[ - -]]) +b4_namespace_close]) # Let glr.c believe that the user arguments include the parser itself. diff --git a/data/lalr1.cc b/data/lalr1.cc index c1639033..82e68244 100644 --- a/data/lalr1.cc +++ b/data/lalr1.cc @@ -1104,5 +1104,5 @@ b4_error_verbose_if([int yystate, int yytoken], const ]b4_parser_class_name[::token_number_type ]b4_parser_class_name[::yyundef_token_ = ]b4_undef_token_number[; ]b4_namespace_close[ -]b4_epilogue +]b4_epilogue[]dnl m4_divert_pop(0) diff --git a/data/yacc.c b/data/yacc.c index 1cd9ffbb..01756884 100644 --- a/data/yacc.c +++ b/data/yacc.c @@ -2045,7 +2045,7 @@ yypushreturn:]])[ } -]b4_epilogue +]b4_epilogue[]dnl b4_defines_if( [@output(b4_spec_defines_file@)@ b4_copyright([Bison interface for Yacc-like parsers in C], diff --git a/src/parse-gram.c b/src/parse-gram.c index 207938dc..a04f2f23 100644 --- a/src/parse-gram.c +++ b/src/parse-gram.c @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 2.6.1.6-b045. */ +/* A Bison parser, made by GNU Bison 2.6.1.12-3153-dirty. */ /* Bison implementation for Yacc-like parsers in C @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.6.1.6-b045" +#define YYBISON_VERSION "2.6.1.12-3153-dirty" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -3225,4 +3225,3 @@ char_name (char c) return quotearg_style (escape_quoting_style, buf); } } - diff --git a/src/parse-gram.h b/src/parse-gram.h index 50cfe23e..0cc4d547 100644 --- a/src/parse-gram.h +++ b/src/parse-gram.h @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 2.6.1.6-b045. */ +/* A Bison parser, made by GNU Bison 2.6.1.12-3153-dirty. */ /* Bison interface for Yacc-like parsers in C diff --git a/tests/calc.at b/tests/calc.at index 31ee44e2..3aab8681 100644 --- a/tests/calc.at +++ b/tests/calc.at @@ -386,11 +386,9 @@ AT_YYERROR_SEES_LOC_IF([ fprintf (stderr, ": ");]) fprintf (stderr, "%s\n", s); }])[ - ]AT_DEFINES_IF([], [AT_CALC_LEX -AT_CALC_MAIN])[ -]]) +AT_CALC_MAIN])]) AT_DEFINES_IF([AT_DATA_SOURCE([[calc-lex.c]AT_SKEL_CC_IF([[c]])], [[#include "calc.h]AT_SKEL_CC_IF([[h]])[" @@ -500,6 +498,20 @@ AT_CHECK([cat stderr], 0, [expout]) ]) +# AT_CHECK_SPACES([FILE]) +# ----------------------- +# Make sure we did not introduce bad spaces. Checked here because all +# the skeletons are (or should be) exercized here. +m4_define([AT_CHECK_SPACES], +[# No initial empty lines. +AT_CHECK([sed -ne '/./q;=;p;' $1]) +# No trailing spaces. +# FIXME: For 2.7: AT_CHECK([sed -ne '/[ ]$/{=;p;}' $1]) +# No final empty lines. +AT_CHECK([sed -ne '${/^$/{=;p;};}' $1]) +]) + + # AT_CHECK_CALC([BISON-OPTIONS]) # ------------------------------ # Start a testing chunk which compiles `calc' grammar with @@ -514,6 +526,8 @@ AT_BISON_OPTION_PUSHDEFS([$1]) AT_DATA_CALC_Y([$1]) AT_FULL_COMPILE([calc], AT_DEFINES_IF([[lex], [main]])) +AT_CHECK_SPACES([calc.AT_SKEL_CC_IF([cc], [c])]) +AT_DEFINES_IF([AT_CHECK_SPACES([calc.AT_SKEL_CC_IF([hh], [h])])]) # Test the priorities. _AT_CHECK_CALC([$1], From 43ca804096bad13b12d0933d14499c142f451af9 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Thu, 2 Aug 2012 13:51:17 +0200 Subject: [PATCH 10/12] NEWS: update. * NEWS: Catch up with the other changes from 2.6.1. --- NEWS | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/NEWS b/NEWS index 0ce9dd43..567142e0 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,11 @@ GNU Bison NEWS * Noteworthy changes in release ?.? (????-??-??) [?] +** Bug fixes + + Buffer overruns, complaints from Flex, and portability issues in the test + suite have been fixed. + ** Spaces in %lex- and %parse-param (lalr1.cc, glr.cc) Trailing end-of-lines in %parse-param or %lex-param would result in From e1eeecd3844f9cd73c7b7efe54af6d440a5fb9ce Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Fri, 3 Aug 2012 09:43:02 +0200 Subject: [PATCH 11/12] version 2.6.2 * NEWS: Record release date. --- NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 567142e0..97425707 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ GNU Bison NEWS -* Noteworthy changes in release ?.? (????-??-??) [?] +* Noteworthy changes in release 2.6.2 (2012-08-03) [stable] ** Bug fixes From 933ec5449fc9b8a831d6afe67535d2c2bdc528d2 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Fri, 3 Aug 2012 09:52:05 +0200 Subject: [PATCH 12/12] maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. --- .prev-version | 2 +- NEWS | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.prev-version b/.prev-version index 6a6a3d8e..097a15a2 100644 --- a/.prev-version +++ b/.prev-version @@ -1 +1 @@ -2.6.1 +2.6.2 diff --git a/NEWS b/NEWS index 97425707..7fdbc037 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,8 @@ GNU Bison NEWS +* Noteworthy changes in release ?.? (????-??-??) [?] + + * Noteworthy changes in release 2.6.2 (2012-08-03) [stable] ** Bug fixes