X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=README;h=cc2b0b0a36924bfb022e88e25d81baa5ae52084a;hb=2f2f93bfb6e0991467a287c1f4a3e0c13b227ef1;hp=72bde6dde0da6c858938293f6b81c84b0c397b88;hpb=9a21ae5eaf259e2b716e5a864e254793e2ef4e74;p=gnulib.git diff --git a/README b/README index 72bde6dde..cc2b0b0a3 100644 --- a/README +++ b/README @@ -141,10 +141,30 @@ than 'long'. POSIX 1003.1-2001 and the GNU coding standards both require 'int' to be at least 32 bits wide, so Gnulib code assumes this as well. Gnulib code makes the following additional assumptions: - * Signed integer arithmetic is two's complement, without runtime - overflow checking. This is the traditional behavior, and is - supported by C99 implementations that conform to ISO/IEC 10967-1 - (LIA-1) and that define signed integer types as being modulo. + * With one exception noted below, signed integer arithmetic is two's + complement, without runtime overflow checking. This is the + traditional behavior, and is supported by C99 implementations that + conform to ISO/IEC 10967-1 (LIA-1) and that define signed integer + types as being modulo. + + The exception is signed loop indexes. Here, the behavior is + undefined if any signed expression derived from the loop index + overflows. For example, the following code contains two such + overflows (the "i++" and the "i + 1") and therefore has undefined + behavior: + + int i; + for (i = INT_MAX - 10; i <= INT_MAX; i++) + if (i + 1 < 0) + { + report_overflow (); + break; + } + + This exception is a concession to modern optimizing compilers, + which can turn the above loop into code that executes the loop body + 11 times, even though wraparound arithmetic would cause the loop to + iterate forever. * There are no "holes" in integer values: all the bits of an integer contribute to its value in the usual way. @@ -182,33 +202,77 @@ High Quality We will be developing a testsuite for these applications. The goal is to have a 100% firm interface so that maintainers can feel free to -update to the code in CVS at *any* time and know that their +update to the code in git at *any* time and know that their application will not break. This means that before any change can be committed to the repository, a test suite program must be produced that exposes the bug for regression testing. All experimental work should be done on branches to help promote this. -CVS -=== +git and CVS +=========== Gnulib is available for anonymous checkout. In any Bourne-shell the following should work: - -$ cvs -d :pserver:anoncvs@cvs.gnu.org:/cvsroot/gnulib login -(Just hit Enter or Return when prompt for a password) -$ cvs -d :pserver:anoncvs@cvs.gnu.org:/cvsroot/gnulib checkout gnulib + $ git clone git://git.sv.gnu.org/gnulib.git +Or, if you prefer the CVS-like 'cogito' frontend to plain 'git': + $ cg clone git://git.sv.gnu.org/gnulib.git + +For a read-write checkout you need to have a login on savannah.gnu.org and be +a member of the gnulib project at http://savannah.gnu.org/projects/gnulib . +Then, instead of the URL + git://git.sv.gnu.org/gnulib +use the URL + ssh://@git.sv.gnu.org/srv/git/gnulib +where is your login name on savannah.gnu.org. + +git resources: + Overview: http://en.wikipedia.org/wiki/Git_(software) + Homepage: http://git.or.cz/ + Download: http://www.kernel.org/pub/software/scm/git/ + Tutorial: http://git.or.cz/course/ + http://www.kernel.org/pub/software/scm/git/docs/tutorial.html + FAQ: http://git.or.cz/gitwiki/GitFaq + +cogito resources: + Overview: http://en.wikipedia.org/wiki/Cogito_(software) + Homepage: http://git.or.cz/cogito/ + Download: http://kernel.org/pub/software/scm/cogito/ + Tutorial: http://git.or.cz/course/ + +For those among us who have tightly limited disk space and a fast network +connection, CVS checkouts are also supported: + $ cvs -d :pserver:anonymous@pserver.git.sv.gnu.org:/gnulib.git co -d gnulib HEAD + +CVS checkouts from before 2007-09-19 can be converted to the new read-only CVS +location through commands like these: + $ find . -name Root -exec sed --in-place 's|.*|:pserver:anonymous@pserver.git.sv.gnu.org:/gnulib.git|' {} ';' + $ find . -name Repository -exec sed --in-place 's|^gnulib|/srv/git/gnulib.git/HEAD|' {} ';' Gnulib is hosted on savannah.gnu.org. The project page is http://savannah.gnu.org/projects/gnulib. +Keeping Up-to-date +================== + +The best way to work with Gnulib is to check it out of git. +Subscribing to the bug-gnulib@gnu.org mailing list will help you to +plan when to update your local copy of Gnulib (which you use to +maintain your software) from git. To synchronize, you can use "git pull" +or "cg update", or "cvs update -dP" if you are still using CVS. + +Sometimes, using an updated version of Gnulib will require you to use +newer versions of GNU Automake or Autoconf. You may find it helpful +to join the autotools-announce mailing list to be advised of such +changes. + ----- -Copyright (C) 2001, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +Copyright (C) 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. -This program 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 -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. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -216,5 +280,4 @@ 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 this program; if not, write to the Free Software Foundation, -Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +along with this program. If not, see . */