From: Akim Demaille Date: Thu, 8 Nov 2012 08:20:48 +0000 (+0100) Subject: Merge branch 'branch-2.6' into maint X-Git-Tag: v2.6.90~48 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/3ada39389411fa8a7739b3c855c88516463de594?ds=inline;hp=-c Merge branch 'branch-2.6' into maint * origin/branch-2.6: maint: post-release administrivia version 2.6.5 regen tests: syntax-check tests: beware of compilers that do not support POSIXLY_CORRECT gnulib: update Conflicts: NEWS src/parse-gram.c src/parse-gram.h --- 3ada39389411fa8a7739b3c855c88516463de594 diff --combined NEWS index b7a1a727,59549b59..bb016bb3 --- a/NEWS +++ b/NEWS @@@ -2,56 -2,8 +2,56 @@@ GNU Bison NEW * Noteworthy changes in release ?.? (????-??-??) [?] +** Changes in the format of error messages + + This used to be the format of many error reports: + + foo.y:5.10-24: result type clash on merge function 'merge': != + foo.y:4.13-27: previous declaration + + It is now: + + foo.y:5.10-25: result type clash on merge function 'merge': != + foo.y:4.13-27: previous declaration + +** Exception safety (lalr1.cc) + + The parse function now catches exceptions, uses the %destructors to + release memory (the lookahead symbol and the symbols pushed on the stack) + before re-throwing the exception. + + This feature is somewhat experimental. User feedback would be + appreciated. + +** New %define variable: api.location.type (glr.cc, lalr1.cc, lalr1.java) + + The %define variable api.location.type defines the name of the type to use + for locations. When defined, Bison no longer generates the position.hh + and location.hh files, nor does the parser will include them: the user is + then responsible to define her type. + + This can be used in programs with several parsers to factor their location + and position files: let one of them generate them, and the others just use + them. + + This feature was actually introduced, but not documented, in Bison 2.5, + under the name "location_type" (which is maintained for backward + compatibility). + + For consistency, lalr1.java's %define variables location_type and + position_type are deprecated in favor of api.location.type and + api.position.type. + +** Graphviz improvements + + The graphical presentation of the states is more readable: their shape is + now rectangular, the state number is clearly displayed, and the items are + numbered and left-justified. + + The reductions are now explicitly represented as transitions to other + diamond shaped nodes. - * Noteworthy changes in release ?.? (????-??-??) [?] + * Noteworthy changes in release 2.6.5 (2012-11-07) [stable] We consider compiler warnings about Bison generated parsers to be bugs. Rather than working around them in your own project, please consider @@@ -136,7 -88,7 +136,7 @@@ * Noteworthy changes in release 2.6.1 (2012-07-30) [stable] - Bison no longer executes user-specified M4 code when processing a grammar. + Bison no longer executes user-specified M4 code when processing a grammar. ** Future Changes @@@ -1975,8 -1927,7 +1975,8 @@@ along with this program. If not, see < LocalWords: namespaces strerror const autoconfiguration Dconst Autoconf's FDL LocalWords: Automake TMPDIR LESSEQ ylwrap endif yydebug YYTOKEN YYLSP ival hh LocalWords: extern YYTOKENTYPE TOKENTYPE yytokentype tokentype STYPE lval pdf - LocalWords: lang yyoutput dvi html ps POSIX lvalp llocp calc yyo fval + LocalWords: lang yyoutput dvi html ps POSIX lvalp llocp calc yyo fval Wmaybe + LocalWords: yyvsp pragmas noreturn java's Local Variables: mode: outline diff --combined configure.ac index 955f56ef,86783d52..83e20acb --- a/configure.ac +++ b/configure.ac @@@ -114,6 -114,7 +114,7 @@@ f BISON_TEST_FOR_WORKING_C_COMPILER BISON_TEST_FOR_WORKING_CXX_COMPILER + BISON_C_COMPILER_POSIXLY_CORRECT AC_ARG_ENABLE([yacc], [AC_HELP_STRING([--disable-yacc], @@@ -131,7 -132,6 +132,7 @@@ AC_SUBST([YACC_SCRIPT] AC_SUBST([YACC_LIBRARY]) # Checks for programs. +AM_MISSING_PROG([DOT], [dot]) AC_PROG_LEX $LEX_IS_FLEX || AC_MSG_ERROR([Flex is required]) AC_PROG_YACC diff --combined tests/local.at index e2fd1beb,e803e57f..88e797f5 --- a/tests/local.at +++ b/tests/local.at @@@ -138,7 -138,7 +138,7 @@@ m4_pushdef([AT_LEXPARAM_IF] m4_pushdef([AT_LOCATION_IF], [m4_bmatch([$3], [%locations], [$1], [$2])]) m4_pushdef([AT_LOCATION_TYPE_IF], -[m4_bmatch([$3], [%define location_type], [$1], [$2])]) +[m4_bmatch([$3], [%define \(api\.location\.type\|location_type\)], [$1], [$2])]) m4_pushdef([AT_PARAM_IF], [m4_bmatch([$3], [%parse-param], [$1], [$2])]) # Comma-terminated list of formals parse-parameters. @@@ -468,11 -468,7 +468,7 @@@ m4_define([AT_BISON_CHECK_WARNINGS_] [[# Defining POSIXLY_CORRECT causes bison to complain if options are # added after the grammar file name, so skip these checks in that # case. - # - # Don't just check if $POSIXLY_CORRECT is set, as Bash, when launched - # as /bin/sh, sets the shell variable POSIXLY_CORRECT to y, but not - # the environment variable. - if env | grep '^POSIXLY_CORRECT=' >/dev/null; then :; else + if test "$POSIXLY_CORRECT_IS_EXPORTED" = false; then ]AT_SAVE_SPECIAL_FILES[ # To avoid expanding it repeatedly, store specified stdout. @@@ -597,7 -593,10 +593,10 @@@ m4_define([AT_QUELL_VALGRIND] # otherwise pass "-c"; this is a hack. The default SOURCES is OUTPUT # with trailing .o removed, and ".c" appended. m4_define([AT_COMPILE], - [AT_CHECK(m4_join([ ], + [AT_CHECK([case $POSIXLY_CORRECT_IS_EXPORTED:$C_COMPILER_POSIXLY_CORRECT in + true:false) echo 'cannot compile properly with POSIXLY_CORRECT' && exit 77;; + esac]) + AT_CHECK(m4_join([ ], [$CC $CFLAGS $CPPFLAGS], [m4_bmatch([$1], [[.]], [-c], [$LDFLAGS])], [-o $1],