]> git.saurik.com Git - bison.git/blobdiff - HACKING
Partial m4sugar merge from autoconf: m4_map.
[bison.git] / HACKING
diff --git a/HACKING b/HACKING
index 0fffc9c2fa2fac5362d3d85455da966cfbcdd954..c2a790e070dc25f3a5bed1ee89a22e0ca7c9d12e 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -1,8 +1,12 @@
 -*- outline -*-
 
 This file attempts to describe the rules to use when hacking Bison.
 -*- outline -*-
 
 This file attempts to describe the rules to use when hacking Bison.
-Don't put this file into the distribution.  Don't mention it in the
-ChangeLog.
+Don't put this file into the distribution.
+
+Everything related to the development of Bison is on Savannah:
+
+       http://savannah.gnu.org/projects/bison/
+
 
 * Administrivia
 
 
 * Administrivia
 
@@ -21,9 +25,22 @@ The correct response to most actual bugs is to write a new test case
 which demonstrates the bug.  Then fix the bug, re-run the test suite,
 and check everything in.
 
 which demonstrates the bug.  Then fix the bug, re-run the test suite,
 and check everything in.
 
+** You may find it useful to install the git-merge-changelog merge driver.
+See http://www.mail-archive.com/bug-gnulib@gnu.org/msg09699.html for
+information on how to install it.
+
+
+* Hacking
+
 ** Visible changes
 Which include serious bug fixes, must be mentioned in NEWS.
 
 ** Visible changes
 Which include serious bug fixes, must be mentioned in NEWS.
 
+** Translations
+Only user visible strings are to be translated: error messages, bits
+of the .output file etc.  This excludes impossible error messages
+(comparable to assert/abort), and all the --trace output which is
+meant for the maintainers only.
+
 
 * Test suite
 
 
 * Test suite
 
@@ -38,11 +55,22 @@ release:
   that 1. Bison compiles cleanly, 2. the parsers it produces compile
   cleanly too.
 
   that 1. Bison compiles cleanly, 2. the parsers it produces compile
   cleanly too.
 
-- Change tests/bison to run `valgrind -q bison' to run Bison under
-  Valgrind.
+- run `make maintainer-check' which:
+  - runs `valgrind -q bison' to run Bison under Valgrind.
+  - runs the parsers under Valgrind.
+  - runs the test suite with G++ as C compiler...
+
+- run `make maintainer-push-check', which runs `make maintainer-check'
+  while activating the push implementation and its pull interface wrappers
+  in many test cases that were originally written to exercise only the
+  pull implementation.  This makes certain the push implementation can
+  perform every task the pull implementation can.
 
 
-- Run the test suite with `./testsuite PREPARSER='valgrind -q' to make
-  sure the parser behave properly.
+- run `make maintainer-xml-check', which runs `make maintainer-check'
+  while checking Bison's XML automaton report for every working grammar
+  passed to Bison in the test suite.  The check just diffs the output of
+  Bison's included XSLT style sheets with the output of --report=all and
+  --graph.
 
 - Change tests/atlocal/CFLAGS to add your preferred options.  For
   instance, `-traditional' to check that the parsers are K&R.  Note
 
 - Change tests/atlocal/CFLAGS to add your preferred options.  For
   instance, `-traditional' to check that the parsers are K&R.  Note
@@ -50,23 +78,20 @@ release:
   but currently is actually GNU C, nor for lalr1.cc, which anyway is
   not exercised yet in the test suite.
 
   but currently is actually GNU C, nor for lalr1.cc, which anyway is
   not exercised yet in the test suite.
 
-- Change tests/atlocal/CC to use a C++ compiler.
-
 
 * Release Procedure
 
 
 * Release Procedure
 
+** Try to get the *.pot files to the Translation Project at least one week
+before a stable release, to give them time to translate them.
+
 ** Tests
 See above.
 
 ** Update the foreign files
 ** Tests
 See above.
 
 ** Update the foreign files
-Running `make update' in the top level should make it all for you.
-This covers PO files too.  Beware that it happens that some PO files
-contain serious problems and are rejected by recent Gettext releases:
-fix them all, and complain to the Translation Project!
-
-Note that there might be *new* PO files.  Don't forget to update the
-whole machinery, which not only includes LINGUAS, but `cvs add'ing the
-PO files too.
+Running `./bootstrap' in the top level should update them all for you.
+This covers PO files too.  Sometimes a PO file contains problems that
+causes it to be rejected by recent Gettext releases; please report
+these to the Translation Project.
 
 ** Update NEWS
 The version number, *and* the date of the release (including for
 
 ** Update NEWS
 The version number, *and* the date of the release (including for
@@ -82,6 +107,8 @@ the tarballs, the xdeltas, and prepares (in /tmp/) a proto
 announcement.  It is so neat, that that's what I use anyway for
 genuine releases, but adjusting things by hand (e.g., the urls in the
 announcement file, the ChangeLog which is not needed etc.).
 announcement.  It is so neat, that that's what I use anyway for
 genuine releases, but adjusting things by hand (e.g., the urls in the
 announcement file, the ChangeLog which is not needed etc.).
+FIXME: `make alpha' is not maintained and is broken.  These
+instructions need to be replaced or removed.
 
 If it fails, you're on your own...
 
 
 If it fails, you're on your own...
 
@@ -96,27 +123,31 @@ In configure.ac.  Run `make', check this in.
 
 ** Announce
 Complete/fix the announcement file, and send it at least to
 
 ** Announce
 Complete/fix the announcement file, and send it at least to
-info@gnu.org (if a real release, or a ``serious beta''),
-bison@gnu.org, and translation@iro.umontreal.ca.
+info-gnu@gnu.org (if a real release, or a ``serious beta''),
+bug-bison@gnu.org, help-bison@gnu.org, bison-patches@gnu.org,
+and coordinator@translationproject.org.
+
+Send the same announcement on the comp.compilers 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.
 
 
 -----
 
 
 
 -----
 
-Copyright (C) 2002 Free Software Foundation, Inc.
+Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
 
 This file is part of GNU Bison.
 
 
 This file is part of GNU Bison.
 
-GNU Bison is free software; you can redistribute it and/or modify
+This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
 
 
-GNU Bison is distributed in the hope that it will be useful,
+This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU Bison; see the file COPYING.  If not, write to the Free
-Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
+along with this program.  If not, see <http://www.gnu.org/licenses/>.