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.
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
*** 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
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
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.
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
# 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
/warn-on-use.h
/ylwrap
/do-release-commit-and-tag
+/gnu-web-doc-update
+/gnupload
# Customize maint.mk -*- makefile -*-
-
# Copyright (C) 2008-2012 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# 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*
_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
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]])
+])
[(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. ##
#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. */
[(yylsp@{b4_subtract([$2], [$1])@})])
-## ------------------ ##
-## Parser variables. ##
-## ------------------ ##
+## -------------- ##
+## Declarations. ##
+## -------------- ##
# b4_declare_scanner_communication_variables
# ------------------------------------------
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()
# 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;
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
-Subproject commit 338dd5d4362fdf5fb29b843d4d8a8f845bc750de
+Subproject commit b42157dd01e3243646f5a8270c09ee125a8aca21
# 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.