2008-07-31 Paolo Bonzini <bonzini@gnu.org>
Support usage of git-merge-changelog.
* .gitattributes: New.
* HACKING: Document usage of git-merge-changelog.
* bootstrap: Install git-merge-changelog entries in .git/config
if appropriate.
* .cvsignore (.tarball-version, GNUmakefile, *~): Add.
* .gitignore (/.tarball-version, /GNUmakefile, /*~): Add.
* .prev-version: New.
* .version.in: Remove.
* ChangeLog: Remove the $Id$ previously used for capturing the CVS
revision.
* GNUmakefile: Remove, now copied from Gnulib.
* Makefile.am: Add code suggested by comments in
build-aux/git-version-gen.
(EXTRA_DIST): Remove GNUmakefile, handled by Gnulib. Add maint.mk,
.prev-version, and .version.
* NEWS (2.3b+): Rename to...
(?.?): ... this because we're dropping the "+" version naming scheme,
but, in general, we still can't be sure of our next release name.
* bootstrap: Add a quick hack to remove from .gitignore the
GNUmakefile entry that gnulib adds. We already have a /GNUmakefile
entry. This should really be fixed in gnulib instead.
* bootstrap.conf (gnulib_modules): Add gnumakefile.
* configure.ac (AC_INIT): Set version name by invoking
build-aux/git-version-gen.
(AC_CONFIG_FILES): Remove .version, now generated by
build-aux/git-version-gen.
* maint.mk: New, copied from coreutils.
* doc/.cvsignore (bison.1): Add.
* doc/.gitignore (/bison.1): Add.
* doc/bison.1: Remove, generated.
* src/.cvsignore (revision.c): Remove.
* src/.gitignore (/revision.c): Remove.
* src/Makefile.am (bison_SOURCES): Remove revision.c and revision.h.
(BUILT_SOURCES): Remove revision.c.
(revision.c): Remove.
* src/getargs.c (version): Don't print revision after the VERSION.
* src/revision.h: Remove.
* bootstrap (insert_sorted_if_absent): Replace all uses with...
(insert_vc_ignore): ... this new function, which prepends `/' to all
.gitignore entries before passing them to insert_sorted_if_absent.
* bootstrap.conf (vc_ignore): Set to '.cvsignore .gitignore' so that
.cvsignore files are maintained even though Bison developers run
bootstrap while using Git.
* .cvsignore (*.patch *.log log patches applied): Remove, apparently
unneeded by Bison.
(gnulib): Add.
* .gitignore (/*.patch *.log log patches applied): Remove, broken and
unneeded. Reported by Eric Blake.
* lib/.gitignore (/*~): Add.
* po/.cvsignore, runtime-po/.cvsignore: Sync with .gitignore.
* examples/calc++/.gitignore (/calc++.exe): Add. Reported by Eric
Blake.
* src/.gitignore (/bison.exe): Add. Reported by Eric Blake.
in Bison.
* bootstrap: Update gnulib CVS repository URL.
(symlink_to_dir): Encapsulate the code that guarantees the destination
directory exists into...
(check_dst_dir): ... this new function, and...
(cp_mark_as_generated): ... reuse it here so that bootstrap doesn't
fail when copying files into lib/uniwidth/.
* src/output.c (prepare_symbols): When writing yytname muscles, where
symbol names will be encoded in C-string literals, tell quotearg to
escape trigraphs. This used to be the default in gnulib.
* tests/regression.at (Token definitions): Because of the change in
gnulib's quotearg behavior, string_as_id in parse-gram.y no longer
escapes trigraphs in symbol names. Thus, yytname no longer has
trigraphs unnecessarily doubly escaped. Update test case output.
Extend test case to be sure Bison's own error messages will no longer
have trigraphs in symbol names unnecessarily escaped once.
* bootstrap: Likewise.
* Makefile.cfg: Adjust to new GNUmakefile.
* README-hacking: Likewise.
Import from gnulib:
2006-08-18 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
* m4/bison-i18n.m4 (BISON_I18N): Also handle the case where yacc exists
and is a script that invokes bison. Tighten the code. Add comments.
Discussed starting at
<http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00071.html>.
* doc/bison.texinfo (Decl Summary): Document in %skeleton entry.
(Bison Options): Document in --skeleton entry.
* src/output.c (output_skeleton): Use strncpy rather than strcpy since
full_skeleton can't necessarily hold all of pkgdatadir.
If the specified skeleton file name contains a `/', don't prepend
pkgdatadir.
* src/parse-gram.y (prologue_declaration): If the specified skeleton
file name contains a `/', prepend the grammar file directory.
* tests/Makefile.am (TESTSUITE_AT): Add skeletons.at.
* skeletons.at: New file.
(relative skeleton file names): New test case.
(installed skeleton file names): New test case.
* tests/testsuite.at: Include skeletons.at.
* bootstrap: Update copyright to 2007.
(gnulib_extra_files): Add build-aux/announce.gen.
(slurp): Adjust .gitignore files like .cvsignore files.
* build-aux/announce-gen: Remove from CVS, since bootstrap
now creates this.
instead of from the template, to simplify configuration a bit.
* bootstrap.conf (excluded_files): Don't exclude m4/codeset.m4
and m4/wint_t.m4, as they are needed with the latest gnulib.
Problem reported by Joel E. Denny.
2006-10-14 Jim Meyering <jim@meyering.net>
(Sync from coreutils.)
Work also when the working directory (with e.g. coreutils sources)
is version controlled with git, rather than CVS.
* bootstrap (CVS_only_file): Test for the existence of README-cvs,
rather than CVS.
In messages and comments, say e.g., "checked-out sources",
rather than "CVS sources".
(version_controlled_file): New function. Work for git as well as
for CVS. Don't use grep's -q option.
(slurp): Call it here, in place of CVS-specific code.
2006-10-11 Paul Eggert <eggert@cs.ucla.edu>
* bootstrap (symlink_to_gnulib): Fix bug: the dot_dots shell
variable was sometimes used without being initialized. This
messed up the installation of the INSTALL file in some cases.
2006-10-09 Paul Eggert <eggert@cs.ucla.edu>
* bootstrap (usage, main program, symlink_to_gnulib): Add option
--copy. Inspired by a suggestion from Bruno Haible.
2006-10-03 Jim Meyering <jim@meyering.net>
* bootstrap: Undo last change to this file, since now gnulib-tool
sticks with the automake default in generating dependencies.
* bootstrap: Fix bug introduced in recent bootstrap changes, with
respect to bison-runtime pot generation. The YY_ stuff
wasn't being captured.
* bootstrap.conf (XGETTEXT_OPTIONS_RUNTIME): New var.
* po/POTFILES.in: Add src/location.c, src/scan-code.l.
* runtime-po/POTFILES.in: Add data/push.c.
2006-09-28 Jim Meyering <jim@meyering.net>
Automatically generated dependencies are important even
when all of the sources in a directory come from gnulib.
* bootstrap (gnulib_tool): Remove the "no-dependencies" automake
option that gnulib-tool adds to what becomes our lib/gnulib.mk.
2006-09-23 Jim Meyering <jim@meyering.net>
* bootstrap (gnulib_tool_options): Add "--local-dir gl".
2006-09-20 Paul Eggert <eggert@cs.ucla.edu>
* bootstrap: Add support for --force.
(usage): New function. Describe usage less tersely.
(CVS_only_file): New var.
* bootstrap: Sync from coreutils, except add support for gnulib_files.
* bootstrap.conf: New file.
(gnulib_modules): Add configmake, inttypes, unistd.
(XGETTEXT_OPTIONS): Add complain, complain_at,
fatal, fatal_at, warn, warn_at, unexpected_end.
* configure.ac (AC_CONFIG_HEADERS): config.h is now in lib, not here.
(gl_USE_SYSTEM_EXTENSIONS): Remove; gl_EARLY now does this.
(gl_EARLY): Add.
(AM_STDBOOL_H): Remove; gl_INIT now dows this.
(gl_INIT): Add
(GNULIB_AUTOCONF_SNIPPET): Remove.
(AM_GNU_GETTEXT): Add; require formatstring macros since that's
the pickiest.
* lib/.cvsignore: Add inttypes_.h.
* lib/Makefile.am: Include gnulib.mk first so we can append to it.
(AM_CFLAGS): Add WERROR_CFLAGS, to be more like coreutils.
(BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES): Remove
no-longer-necessary initializations.
(lib_SOURCES): Remove, replacing by libbison_a_SOURCES.
* lib/subpipe.c: Include <unistd.h> unconditionally, now that we
use the unistd module.
* src/system.h: Likewise.
* m4/.cvsignore: Remove *_gl.m4, gnulib.m4, inttypes_h.m4, uintmax_t.m4,
ulonglong.m4. Add gettext.m4, gnulib-cache.m4, gnulib-comp.m4,
gnulib-tool.m4, inttypes-h.m4, inttypes-pri.m4, inttypes.m4.
* src/Makefile.am (DEFS): Remove, since configmake does this for us.
(AM_CPPFLAGS): Remove -I../lib, since Automake does that for us.
* src/system.h: Include inttypes.h unconditionally, now that we
use the inttypes module. Don't bother to include stdint.h, since
inttypes.h now does that for us.
(LOCALEDIR): Remove, now that we use the configmake module.
* src/getargs.c: Include configmake.h.
* src/main.c: Likewise.
* src/output.c: Likewise.
* tests/atlocal.in (CPPFLAGS): Include from $abs_top_builddir/lib,
not from $abs_top_builddir, since config.h moved.
to prevent failures when building on older platforms.
Check for autopoint failure.
Set XGETTEXT_OPTIONS to values that check for C format strings,
so that translators are warned about them (this also helps
prevent core dumps).
po.m4, stdint_h.m4, uintmax_t.m4, ulonglong.m4, warning.m4.
* bootstrap (gnulib_tool): Stop using --assume-autoconf;
the latest gnulib does this a different way.
(get_translations): Sharuzzaman Ahmat Raslan reported that the ms
translation was patched, so stop omitting it.
* bootstrap (gnulib-modules): Remove hard-locale, stdio-safer.
Add fopen-safer.
(gnulib_files): Add m4/warning.m4. Don't worry about files
overwritten by autopoint.
Replace gt_INTL_SUBDIR_CORE with an empty body in m4/gettext_gl.m4.
Suppress "id", "ms", "tr" translations for now, since gettext 0.15
rejects them.
Don't use autoreconf; instead, invoke autopoint etc. by hand,
so that we can remove the intl files at a better time.
(intl_files_to_remove): Remove aclocal.m4, since it gets
rebuilt anyway. Remove m4/inttypes_h.m4, m4/inttypes.m4,
m4/isc-posix.m4, m4/lib-ld.m4, m4/lib-prefix.m4, m4/po.m4,
m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4.
Add m4/inttypes-h.m4, m4/lock.m4, m4/visibility.m4.
Remove datarootdir hack; no longer needed.
* configure.ac: Use gl_WARNING_CFLAGS rather than BISON_WARNING.
(AM_GNU_GETTEXT_VERSION): Bump from 0.12 to 0.15.
* lib/.cvsignore: Remove hard-locale.c, hard-locale.h, strdup.c,
strdup.h.
* m4/.cvsignore: Remove hard-locale.m4, strdup.m4.
* m4/warning.m4: Remove from CVS, since we now use gnulib's version.
* bootstrap (gnulib_modules): Add stdint.
Remove special case for m4/onceonly_2_57.m4, since gnulib-tool
no longer copies it.
(intl_files_to_remove): Remove m4/longlong.m4 and m4/wchar_t.m4,
since stdint needs the former and wcwidth (which is now required
by mbswidth) needs the latter.
Append 'datarootdir = @datarootdir@' to po/Makefile.in.in, to
work around a compatibility glitch between gettext 0.14.6 and
Autoconf 2.60.
* configure.ac (AC_PREREQ): Require Autoconf 2.60.
Do not check for uintptr_t, since new stdint module does the right
thing.
* lib/.cvsignore: Remove alloca.c, alloca.h, alloca_.h.
Add stdint.h, stdint_.h, wcwidth.h.
* m4/.cvsignore: Remove alloca.m4, onceonly.m4.
Add absolute-header.m4, double-slash-root.m4, longlong.m4,
stdint.m4, wchar_t.m4, wcwidth.m4.
* src/files.c: Include <dirname.h> and <stdio-safer.h> in the
usual order for ../lib/*.h files.
(file_name_split): Use last_component, not base_name, to adjust
to gnulib changes.
* src/parse-gram.h: Include <strverscmp.h> in the usual order
for ../lib/*.h files.
(YYTYPE_INT16, YYTYPE_INT8, YYTYPE_UINT16, YYTYPE_UINT8):
Define unconditionally, since we now assume the stdint module.
* src/scan-skel.l: Include <dirname.h>.
(BASE_QPUTS): Use last_component, not base_name.
* src/system.h: Include <unlocked-io.h> in the usual order
for ../lib/*.h files. Include <stdint.h> unconditionally,
since we now use the stdint module.
(uintptr_t): Declare if UINTPTR_MAX is not defined, not
HAVE_UINTPTR_T, since we now use the stdint module.
(base_name): Remove decl, since files now include <dirname.h>
to get the decl.
(get_translations): New function, which uses HTML scraping to
deduce locations of latest translations.
Use this function to grab both bison and bison-runtime .po files.
Don't bother priming the pump for the runtime-po domain any more,
as it's now translated better than bison is.
GNU/Linux and Solaris that support unlocked I/O. The basic idea
is to use the gnlib unlocked-io module, and to prefer putc and
puts to printf when either will work (since the latter doesn't
come in an unlocked flavor).
* bootstrap (gnulib_modules): Add unlocked-io.
* data/c.m4 (yysymprint): Prefer puts and putc to printf.
* data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): New macros.
Prefer them to YYFPRINTF and YYDPRINTF if either will do,
and similarly for puts and putc and printf.
* data/yacc.c: Likewise.
* lib/bitset.c (bitset_print): Likewise.
* lib/bitset.h [USE_UNLOCKED_IO]: Include unlocked-io.h.
* lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer putc and puts
to printf.
* lib/lbitset.c (debug_lbitset): Likewise.
* src/closure.c (print_firsts, print_fderives): Likewise.
* src/gram.c (grammar_dump): Likewise.
* src/lalr.c (look_ahead_tokens_print): Likewise.
* src/output.c (escaped_output): Likewise.
(user_actions_output): Coalesce two printfs.
* src/parse-gram.h (%printer): Prefer putc and puts to printf.
* src/reduce.c (reduce_print): Likewise.
* src/state.c (state_rule_look_ahead_tokens_print): Likewise.
* src/system.h: Include unlocked-io.h rathe than stdio.h.
* lib/.cvsignore: Add verify.h.
* src/getargs.c: Use ARGMATCH_VERIFY rather than verify.
* src/system.h (verify): Remove.
Include verify.h instead.
* src/tables.c (tables_generate): Use new API for 'verify'.
* bootstrap (gnulib_modules): Remove alloca. Bison doesn't need
it itself.
* src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
don't use alloca any more.
* data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
__BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
(defined alloca || defined _ALLOCA_H)]: Don't include <stdlib.h>;
not needed in this case.
* tests/torture.at (Exploding the Stack Size with Alloca): Adjust
to match yacc.c, to test more hosts.
the new runtime-po domain, prime the pump by extracting the
relevant strings from the obsolete translations. This code can be
removed once the bison-runtime domain has been translated by each
team.
skeleton; a C++ expert needs to finish this. Remove debugging
msgids; there's little point to having them translated, since they
can be understood only by someone who can read the
(English-language) source code.
Generate runtime-po/bison-runtime.pot automatically, so that we
don't have to worry about garbage getting in that file. We'll
make sure after the next official release that old msgids don't
get lost. See
<http://lists.gnu.org/archive/html/bison-patches/2005-07/msg00119.html>.
* runtime-po/Makefile.in.in, runtime-po/bison-runtime.pot: Remove.
Now auto-generated.
* PACKAGING: Don't claim that Gawk, GCC, Perl use this method yet.
Fix typos in explanations of the runtime file.
* bootstrap: Change gettext keyword from YYI18N to YY_.
Use standard Makefile.in.in in runtime-po, since we'll arrange
for backward-compatible bison-runtime.po files in a different way.
* data/glr.c (YY_): New macro, from yacc.c.
(yyuserAction, yyreportAmbiguity, yyreportSyntaxError, yyparse):
Translate messages intended for users.
(yyreportSyntaxError): Change "virtual memory" to "memory" to match
the wording in the other skeletons. We don't know that the memory
is virtual.
* data/lalr1.cc (YY_): Renamed from _. All uses changed.
Use same method that yacc.c uses.
Don't translate debugging messages.
(yy::yyreport_syntax_error): Put in a FIXME for the i18n stuff;
it doesn't work (yet), and requires C++ expertise to fix.
* data/yacc.c (YY_): Renamed from YY18N. All uses changed.
Move defn to a more logical place, to be consistent with other
skeletons.
Don't translate debugging messages.
Don't assume line numbers fit in unsigned int; use unsigned long fmts.
* doc/bison.texinfo: Mention <libintl.h>. Change glibc cross reference
to gettext cross reference. Add indexing terms. Mention YYENABLE_NLS.
* runtime-po/POTFILES.in: Add data/glr.c, data/lalr1.cc.
Create runtime-po files automatically, if possible.
* configure.ac: Invoke BISON_I18N, so that we eat our own dog food.
* data/yacc.c: Rewrite inclusion of <libintl.h> so that ENABLE_NLS
does not infringe on the user's name space.
(YYENABLE_NLS): Renamed from ENABLE_BISON_NLS.
* doc/bison.texinfo (Internationalization): Revamp the English
and Texinfo syntax a bit, to try to make it clearer.
(Bison Options, Option Cross Key): Mention --print-localedir.
* m4/bison-i18n.m4 (BISON_I18N): Rename ENABLE_BISON_NLS to
YYENABLE_NLS. Quote a bit more.
* runtime-po/.cvsignore: New file.
* runtime-po/Makefile.in.in (mostlyclean): Remove *.old.pot.
* runtime-po/Rules-quot: Remove; now created by bootstrap.
* runtime-po/quot.sed: Likewise.
* runtime-po/boldquot.sed: Likewise.
* runtime-po/en@quot.header: Likewise.
* runtime-po/en@boldquot.header: Likewise.
* runtime-po/insert-header.sin: Likewise.
* runtime-po/remove-potcdate.sin: Likewise.
* runtime-po/Makevars: Likewise.
* runtime-po/LINGUAS: Likewise.
* runtime-po/de.po: Likewise; we will rely on the translation project
to maintain this, so "bootstrap" should get it.
* src/getarg.s (PRINT_LOCALEDIR_OPTION): Let the C compiler determine
its value.
* src/main.c (main): Bind the bison-runtime domain, too.
* data/yacc.c: Include <libintl.h> when NLS is enabled.
(YYI18N): Renamed from _. Use dgettext when NLS is enabled.
* po/POTFILES.in: Remove autogenerated file src/parse-gram.c.
* runtime-po: New directory.
* runtime-po/Makefile.in.in: New file, copied from po/, with modified
$(DOMAIN).pot-update rule, so that old messages are never dropped.
* runtime-po/Rules-quot: New file, copied from po/.
* runtime-po/quot.sed: Likewise.
* runtime-po/boldquot.sed: Likewise.
* runtime-po/en@quot.header: Likewise.
* runtime-po/en@boldquot.header: Likewise.
* runtime-po/insert-header.sin: Likewise.
* runtime-po/remove-potcdate.sin: Likewise.
* runtime-po/Makevars: New file.
* runtime-po/POTFILES.in: New file.
* runtime-po/LINGUAS: New file.
* runtime-po/bison-runtime.pot: New file.
* runtime-po/de.po: New file.
* m4/bison.m4: New file.
* Makefile.am (SUBDIRS): Add runtime-po.
(aclocaldir, aclocal_DATA): New variables.
* configure.ac: Add AC_CONFIG_FILES of runtime-po/Makefile.in.
Define aclocaldir.
* src/getargs.c (usage): Document --print-localedir option.
(PRINT_LOCALEDIR_OPTION): New enum item.
(long_options): Add --print-localedir option.
(getargs): Handle --print-localedir option.
* doc/bison.texinfo (Bison Parser): Remove paragraph about _().
(Internationalization): New section.
Remove m4/glibc2.m4 (introduced by latest gnulib, but
we don't need it).
* lib/.cvsignore: Add dup-safer.c, fd-safer.c,
fopen-safer.c, stdio-safer.h, unistd-safer.h.
* lib/subpipe.c: Include "unistd-safer.h".
(create_subpipe): Make sure all the newly-created
file descriptors are > 2, so that diagnostics don't
get sent down them (which might cause Bison to hang, in theory).
* m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4.
* src/files.c (xfopen): Use fopen_safer, not fopen.
(gnulib_modules): Add xalloc-die.
Set LC_ALL=C so that file names sort consistently.
Prefer the gnulib copies of gettext.m4, glibc21.m4,
inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
uintmax_t.m4, ulonglong.m4.
(intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
po.m4 since we are now using _gl.m4 instead.