From: Akim Demaille Date: Wed, 13 Jun 2012 19:03:29 +0000 (+0200) Subject: Merge remote-tracking branch 'origin/maint' X-Git-Tag: v2.7.90~441 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/9ce27ab013185d1c17c78e0d57ff637319cb1e29?hp=4896ede89ca060e3673e90fcd4a36f76517905c7 Merge remote-tracking branch 'origin/maint' * origin/maint: skeletons: factor yacc.c and glr.c. glr.c: minor refactoring. tests: remove all the -On flags. maint: fix spello. maint: improve release procedure instructions. gnulib: update readme-release. maint: cfg.mk: manual title. maint: cfg.mk: simplify maint: post-release administrivia Conflicts: NEWS bootstrap.conf --- diff --git a/NEWS b/NEWS index 8c79bb7a..79fdb8ef 100644 --- a/NEWS +++ b/NEWS @@ -160,7 +160,7 @@ GNU Bison NEWS This includes warnings with some compilers, unexpected behavior of tools such as diff, warning messages from the test suite itself, etc. -*** The install-pdf target work properly: +*** The install-pdf target works properly: Running "make install-pdf" (or -dvi, -html, -info, and -ps) no longer halts in the middle of its course. diff --git a/README-hacking b/README-hacking index 5d9314b7..3ba1d4f9 100644 --- a/README-hacking +++ b/README-hacking @@ -258,25 +258,10 @@ copyright statement for each Bison file, check the copyright statements that the skeletons insert into generated parsers, and check all occurrences of PACKAGE_COPYRIGHT_YEAR in configure.ac. -** Update NEWS -The version number, *and* the date of the release (including for -betas). +** Update NEWS, commit and tag. +See do-release-commit-and-tag in README-release. -** Mention the release name in a commit message -Should have an entry similar to "Version 2.3b.". - -** Tag the release -Before Bison will build with the right version number, you must tag -the release in git. Do this after all other changes. The command is -similar to: - - git tag -a v2.3b -m "Bison 2.3b." - -** Push -Once "make distcheck" passes, push your changes and the tag. -"git push" without arguments will not push the tag. - -** make alpha, beta, or release +** make alpha, beta, or stable See README-release. ** Upload @@ -297,8 +282,8 @@ where F125BDF3 should be replaced with your key ID. *** Using gnupload You need "ncftp". -At the end "make release" (or alpha/beta) will display the prodecure -to run. Just copy and paste it in your shell. +At the end "make stable" (or alpha/beta) will display the procedure to +run. Just copy and paste it in your shell. *** By hand @@ -369,7 +354,8 @@ function 'index', once for the table of contents); you can ignore this issue. ** Announce -To generate a template announcement file: +The "make stable" (or alpha/beta) command just created a template, +$HOME/announce-bison-X.Y. Otherwise, to generate it, run: make RELEASE_TYPE=alpha gpg_key_ID=F125BDF3 announcement @@ -389,11 +375,12 @@ newsgroup by sending email to compilers@iecc.com. Do not make any Cc as the moderator will throw away anything cross-posted or Cc'ed. It really needs to be a separate message. -** Bump the version number -In configure.ac. Run "make". So that developers don't accidentally add new -items to the old NEWS entry, create a new empty NEWS entry something like: +** Prepare NEWS +So that developers don't accidentally add new items to the old NEWS +entry, create a new empty entry in line 3 (without the two leading +spaces): - Changes in version ?.? (????-??-??): + * Noteworthy changes in release ?.? (????-??-??) [?] Push these changes. diff --git a/THANKS b/THANKS index 9d0af4be..c0c274cb 100644 --- a/THANKS +++ b/THANKS @@ -43,6 +43,7 @@ Frank Heckenbach frank@g-n-u.de Frans Englich frans.englich@telia.com Georg Sauthoff gsauthof@TechFak.Uni-Bielefeld.DE George Neuner gneuner2@comcast.net +Gilles Espinasse g.esp@free.fr Goran Uddeborg goeran@uddeborg.se Guido Trentalancia trentalg@aston.ac.uk H. Merijn Brand h.m.brand@hccnet.nl diff --git a/bootstrap.conf b/bootstrap.conf index 6cdb017c..cff387f9 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -17,14 +17,13 @@ # gnulib modules used by this package. gnulib_modules=' - announce-gen argmatch assert calloc-posix close closeout config-h c-strcase + argmatch assert calloc-posix close closeout config-h c-strcase configmake dirname - do-release-commit-and-tag - error extensions fdl fopen-safer gendocs getopt-gnu + error extensions fdl fopen-safer getopt-gnu gettext git-version-gen gitlog-to-changelog gpl-3.0 hash inttypes isnan javacomp-script - javaexec-script ldexpl maintainer-makefile malloc-gnu + javaexec-script ldexpl malloc-gnu mbswidth obstack perror progname quote quotearg readme-release diff --git a/build-aux/.gitignore b/build-aux/.gitignore index 69a6bdd7..2bd44f62 100644 --- a/build-aux/.gitignore +++ b/build-aux/.gitignore @@ -23,3 +23,5 @@ /warn-on-use.h /ylwrap /do-release-commit-and-tag +/gnu-web-doc-update +/gnupload diff --git a/cfg.mk b/cfg.mk index 6ccef9c9..e29b1ddf 100644 --- a/cfg.mk +++ b/cfg.mk @@ -1,5 +1,4 @@ # Customize maint.mk -*- makefile -*- - # Copyright (C) 2008-2012 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify @@ -15,6 +14,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +# Used in maint.mk's web-manual rule +manual_title = The Yacc-compatible Parser Generator + # It's useful to run maintainer-*check* targets during development, but we # don't want to wait on a recompile because of an update to $(VERSION). Thus, # override the _is-dist-target from GNUmakefile so that maintainer-*check* @@ -22,13 +24,6 @@ _is-dist-target = $(filter-out %clean maintainer-check% maintainer-%-check, \ $(filter maintainer-% dist% alpha beta major,$(MAKECMDGOALS))) -# Use alpha.gnu.org for alpha and beta releases. -# Use ftp.gnu.org for major releases. -gnu_ftp_host-alpha = alpha.gnu.org -gnu_ftp_host-beta = alpha.gnu.org -gnu_ftp_host-major = ftp.gnu.org -gnu_rel_host = $(gnu_ftp_host-$(RELEASE_TYPE)) - url_dir_list = \ ftp://$(gnu_rel_host)/gnu/bison diff --git a/data/c.m4 b/data/c.m4 index 0d30a496..2b7e9d63 100644 --- a/data/c.m4 +++ b/data/c.m4 @@ -567,3 +567,40 @@ b4_locations_if([, yylocationp])[]b4_user_args[); YYFPRINTF (yyoutput, ")"); }]dnl ]) + +## -------------- ## +## Declarations. ## +## -------------- ## + +# b4_declare_yylstype +# ------------------ +# Declaration that might either go into the header (if --defines) +# or open coded in the parser body. Declare YYSTYPE and YYLTYPE. +m4_define([b4_declare_yylstype], +[[#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +]m4_ifdef([b4_stype], +[[typedef union ]b4_union_name[ +{ +]b4_user_stype[ +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1]], +[m4_if(b4_tag_seen_flag, 0, +[[typedef int YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1]])])[ +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +#endif]b4_locations_if([[ + +#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED +typedef struct YYLTYPE +{ + int first_line; + int first_column; + int last_line; + int last_column; +} YYLTYPE; +# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ +# define YYLTYPE_IS_DECLARED 1 +# define YYLTYPE_IS_TRIVIAL 1 +#endif]]) +]) diff --git a/data/glr.c b/data/glr.c index 8f77aa61..1463a9a7 100644 --- a/data/glr.c +++ b/data/glr.c @@ -162,6 +162,21 @@ m4_define([b4_rhs_location], [(b4_rhs_data([$1], [$2]).yyloc)]) +## -------------- ## +## Declarations. ## +## -------------- ## + +# b4_shared_declarations +# ---------------------- +# Declaration that might either go into the header (if --defines) +# or open coded in the parser body. +m4_define([b4_shared_declarations], +[b4_percent_code_get([[requires]])[ +]b4_token_enums(b4_tokens)[ +]b4_declare_yylstype[ +]b4_percent_code_get([[provides]])[]dnl +]) + ## -------------- ## ## Output files. ## @@ -191,47 +206,11 @@ m4_if(b4_prefix, [yy], [], #define yylloc b4_prefix[]lloc])[ /* Copy the first part of user declarations. */ -]b4_user_pre_prologue - -b4_null_define - -dnl # b4_shared_declarations -dnl # ---------------------- -dnl # Declaration that might either go into the header (if --defines) -dnl # or open coded in the parser body. -m4_define([b4_shared_declarations], -[b4_percent_code_get([[requires]])[]dnl +]b4_user_pre_prologue[ -b4_token_enums(b4_tokens) - -[#ifndef YYSTYPE -]m4_ifdef([b4_stype], -[[typedef union ]b4_union_name[ -{ -]b4_user_stype[ -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1]], -[m4_if(b4_tag_seen_flag, 0, -[[typedef int YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1]])])[ -#endif -]b4_locations_if([[ -#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE -{ - int first_line; - int first_column; - int last_line; - int last_column; -} YYLTYPE; -# define YYLTYPE_IS_DECLARED 1 -# define YYLTYPE_IS_TRIVIAL 1 -#endif -]])[ -]b4_percent_code_get([[provides]])[]dnl -]) +]b4_null_define[ -b4_defines_if([[#include "@basename(]b4_spec_defines_file[@)"]], +]b4_defines_if([[#include "@basename(]b4_spec_defines_file[@)"]], [b4_shared_declarations])[ /* Enabling traces. */ diff --git a/data/yacc.c b/data/yacc.c index 0cc17f33..922a4ebe 100644 --- a/data/yacc.c +++ b/data/yacc.c @@ -160,9 +160,9 @@ m4_define([b4_rhs_location], [(yylsp@{b4_subtract([$2], [$1])@})]) -## ------------------ ## -## Parser variables. ## -## ------------------ ## +## -------------- ## +## Declarations. ## +## -------------- ## # b4_declare_scanner_communication_variables # ------------------------------------------ @@ -226,10 +226,9 @@ m4_define([b4_declare_parser_state_variables], [b4_pure_if([[ yytype_int16 *yyes; YYSIZE_T yyes_capacity;]])]) - -## --------------------------------------------------------- ## -## Defining symbol actions, e.g., printers and destructors. ## -## --------------------------------------------------------- ## +## -------------- ## +## Output files. ## +## -------------- ## # We do want M4 expansion after # for CPP macros. m4_changecom() @@ -288,37 +287,10 @@ m4_if(b4_prefix, [yy], [], # define YYTOKEN_TABLE ]b4_token_table[ #endif -]b4_percent_code_get([[requires]])[]dnl - -b4_token_enums_defines(b4_tokens)[ - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -]m4_ifdef([b4_stype], -[[typedef union ]b4_union_name[ -{ -]b4_user_stype[ -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1]], -[m4_if(b4_tag_seen_flag, 0, -[[typedef int YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1]])])[ -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif]b4_locations_if([[ - -#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE -{ - int first_line; - int first_column; - int last_line; - int last_column; -} YYLTYPE; -# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ -# define YYLTYPE_IS_DECLARED 1 -# define YYLTYPE_IS_TRIVIAL 1 -#endif]])b4_push_if([[ - +]b4_percent_code_get([[requires]])[ +]b4_token_enums_defines(b4_tokens)[ +]b4_declare_yylstype[ +]b4_push_if([[ #ifndef YYPUSH_DECLS # define YYPUSH_DECLS struct yypstate; @@ -2008,40 +1980,10 @@ b4_copyright([Bison interface for Yacc-like parsers in C])dnl b4_percent_code_get([[requires]])[]dnl -b4_token_enums_defines(b4_tokens) - -[#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -]m4_ifdef([b4_stype], -[[typedef union ]b4_union_name[ -{ -]b4_user_stype[ -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1]], -[m4_if(b4_tag_seen_flag, 0, -[[typedef int YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1]])])[ -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - -]b4_pure_if([], [[extern YYSTYPE ]b4_prefix[lval;]]) - -b4_locations_if( -[#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE -{ - int first_line; - int first_column; - int last_line; - int last_column; -} YYLTYPE; -# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ -# define YYLTYPE_IS_DECLARED 1 -# define YYLTYPE_IS_TRIVIAL 1 -#endif - -]b4_pure_if([], [[extern YYLTYPE ]b4_prefix[lloc;]]) -)dnl b4_locations_if +b4_token_enums_defines(b4_tokens)[ +]b4_declare_yylstype[ +]b4_pure_if([], [[extern YYSTYPE ]b4_prefix[lval; +]b4_locations_if([[extern YYLTYPE ]b4_prefix[lloc;]])])dnl b4_push_if([[ #ifndef YYPUSH_DECLS # define YYPUSH_DECLS diff --git a/gnulib b/gnulib index 338dd5d4..b42157dd 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 338dd5d4362fdf5fb29b843d4d8a8f845bc750de +Subproject commit b42157dd01e3243646f5a8270c09ee125a8aca21 diff --git a/tests/atlocal.in b/tests/atlocal.in index 7e4f2e28..ef31d9fc 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -29,9 +29,11 @@ CPPFLAGS="-I$abs_top_builddir/lib @CPPFLAGS@" # Is the compiler GCC? GCC='@GCC@' -# We want no optimization. - O0CFLAGS=`echo '@CFLAGS@' | sed 's/-O[0-9] *//'` -O0CXXFLAGS=`echo '@CXXFLAGS@' | sed 's/-O[0-9] *//'` +# We want no optimization, as they uncover warnings (therefore, +# failures) about uninitialized variables in the test suite. FIXME: +# fix the warnings, not the flags. + O0CFLAGS=`echo '@CFLAGS@' | sed 's/-O[0-9s] *//g'` +O0CXXFLAGS=`echo '@CXXFLAGS@' | sed 's/-O[0-9s] *//g'` # Sometimes a test group needs to ignore gcc warnings, so it locally # sets CFLAGS to this.