Re: version control system

2006-11-22 Thread Jim Meyering
Bruno Haible <[EMAIL PROTECTED]> wrote:
> Jim Meyering wrote:
>> Would anyone be averse to switching gnulib development from CVS to git?
>> I switched coreutils a month ago and am very happy with the result.
>
> Do you have a comparison of git with mercurial, monotone, bzr?

There are *lots* of git vs. mercurial comments on the
fedora-maintainers thread I referred you to.

Here's a well-written piece from someone else who's switched to git:

  http://keithp.com/blog/Repository_Formats_Matter.html

As for monotone and bzr, here's a dated (~6mo-1yr-old) comparison
of decentralized VCS:

  http://zooko.com/revision_control_quick_ref.html

I searched a little, e.g.,
  http://www.google.com/search?&q=%22distributed+version+control%22+comparison
but didn't find anything compelling.
Even a survey that's just 6 months old is seriously out of date.
That was evident in the fedora-maintainers discussion.

> What kind of support does savannah offer? The most interesting support
> features IMO would be:
>   - automatic daily backup,

Not relevant.
With git or hg, anyone who pulls gets the entire repository.
If you want backups, just arrange to pull regularly, and save
each copy on your favorite backup medium.

>   - web interface similar to viewcvs.

Maybe you didn't see this savannah (sv) link?

  http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=summary




Re: version control system

2006-11-22 Thread Jim Meyering
Jim Meyering <[EMAIL PROTECTED]> wrote:
> Bruno Haible <[EMAIL PROTECTED]> wrote:
>> Jim Meyering wrote:
>>> Would anyone be averse to switching gnulib development from CVS to git?
>>> I switched coreutils a month ago and am very happy with the result.
>>
>> Do you have a comparison of git with mercurial, monotone, bzr?

Here's a comparison of mercurial and bzr, from May 2006,
so it's five months old and probably significantly out of date by now:

  http://lists.freestandards.org/pipermail/lsb-futures/2006-May/002080.html

Here's a final link with comparisons that look accurate.
See the "Comparison of CVS, GIT, Subversion, and SVK" table
at the bottom of the page:

  http://wiki.winehq.org/HackingTips




Re: git for Darwin?

2006-11-22 Thread Jim Meyering
<[EMAIL PROTECTED]> wrote:
> On 2006-11-21 07:56:27 -0600, Jim Meyering <[EMAIL PROTECTED]> said:
>> Would anyone be averse to switching gnulib development from CVS to git?
>> I switched coreutils a month ago and am very happy with the result.
>
> I found this Fink pkg -- is it the same thing?
> http://pdb.finkproject.org/pdb/package.php/git

Probably.  You'd have to look.

> If so, as you can see, it's still regard as "unstable".
> And users still on Panther or earlier won't have a pkg.
...
> AFAIK we don't have an interface for this SCM into XCode
> as we already do for cvs, svn, and perforce.

Unless you are checking in changes for upstream gnulib,
this change would not force you to learn about or use git.

As with coreutils, if/when we switch gnulib to another version control
system, we would require that the current CVS repository remain
sync'd (automatically) with the new master (e.g., git) repository.




clock_time.m4, euidaccess.m4: tiny changes

2006-11-22 Thread Jim Meyering
FYI, I've just checked these in:

* m4/clock_time.m4 (gl_CLOCK_TIME): Quote AC_SUBST argument.
* m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Likewise.

Index: m4/clock_time.m4
===
RCS file: /sources/gnulib/gnulib/m4/clock_time.m4,v
retrieving revision 1.7
diff -u -p -r1.7 clock_time.m4
--- m4/clock_time.m42 Mar 2006 07:36:41 -   1.7
+++ m4/clock_time.m422 Nov 2006 13:38:19 -
@@ -1,10 +1,14 @@
-# clock_time.m4 serial 7
-dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# clock_time.m4 serial 8
+dnl Copyright (C) 2002-2006 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.

-# Check for clock_gettime and clock_settime, and sets LIB_CLOCK_GETTIME.
+# Check for clock_gettime and clock_settime, and set LIB_CLOCK_GETTIME.
+# For a program named, say foo, you should add a line like the following
+# in the corresponding Makefile.am file:
+# foo_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME)
+
 AC_DEFUN([gl_CLOCK_TIME],
 [
   dnl Persuade glibc and Solaris  to declare these functions.
@@ -20,7 +24,7 @@ AC_DEFUN([gl_CLOCK_TIME],
 AC_SEARCH_LIBS(clock_gettime, [rt posix4],
[test "$ac_cv_search_clock_gettime" = "none required" ||
 LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
-AC_SUBST(LIB_CLOCK_GETTIME)
+AC_SUBST([LIB_CLOCK_GETTIME])
 AC_CHECK_FUNCS(clock_gettime clock_settime)
   LIBS=$gl_saved_libs
 ])
Index: m4/euidaccess.m4
===
RCS file: /sources/gnulib/gnulib/m4/euidaccess.m4,v
retrieving revision 1.5
diff -u -p -r1.5 euidaccess.m4
--- m4/euidaccess.m42 May 2005 07:00:50 -   1.5
+++ m4/euidaccess.m422 Nov 2006 13:38:19 -
@@ -1,5 +1,5 @@
-# euidaccess.m4 serial 6
-dnl Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+# euidaccess.m4 serial 7
+dnl Copyright (C) 2002-2006 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -41,7 +41,7 @@ AC_DEFUN([gl_PREREQ_EUIDACCESS], [
 AC_SEARCH_LIBS(eaccess, [gen],
[test "$ac_cv_search_eaccess" = "none required" ||
 LIB_EACCESS=$ac_cv_search_eaccess])
-AC_SUBST(LIB_EACCESS)
+AC_SUBST([LIB_EACCESS])
 AC_CHECK_FUNCS(eaccess)
   LIBS=$gl_saved_libs
 ])




kernel_sinl bug?

2006-11-22 Thread Robinson Mittmann
Looking at the "kernel_sinl" function in "sincosl.c" file I found that 
the limit value for choosing the computation method is wrong with 
respect of the remaining code:


kernel_sinl (long double x, long double y, int iy)
{
 ...
 if (x < 0.148375L)/* |x| < 0.1484375 */

The correct line should be:

 if (x < 0.1484375L)/* |x| < 0.1484375 */

Probably a better approach would be defining this limit as a macro.

Regards,

Bob




Re: git for Darwin?

2006-11-22 Thread Karl Berry
this change would not force you to learn about or use git.

Granting that git is a zillion times better than cvs, even so, far fewer
people can contribute to a git repository than cvs.

As I understand it, the reason for the proposal is because branches are
supported better in git.  But isn't wanting to make branches tantamount
to making releases?  And isn't that something we already concluded (a
dozen times) that we do not want to do for gnulib?   Do we want to
change the entire infrastructure to support it in an "ideal" way?

Are the simpler solutions suggested by Bruno (don't run cvs update)
and/or Paul (having a special gnulib-srcdir) for the run-up to a release
unlivable?

karl




Re: git for Darwin?

2006-11-22 Thread Jim Meyering
[EMAIL PROTECTED] (Karl Berry) wrote:
> this change would not force you to learn about or use git.
>
> Granting that git is a zillion times better than cvs, even so, far fewer
> people can contribute to a git repository than cvs.
>
> As I understand it, the reason for the proposal is because branches are
> supported better in git.  But isn't wanting to make branches tantamount
> to making releases?  And isn't that something we already concluded (a
> dozen times) that we do not want to do for gnulib?   Do we want to
> change the entire infrastructure to support it in an "ideal" way?
>
> Are the simpler solutions suggested by Bruno (don't run cvs update)
> and/or Paul (having a special gnulib-srcdir) for the run-up to a release
> unlivable?

Hi Karl,

My suggestion to use a dVCS was mostly independent of branching.
As I said in reply to Eric, just specifying a date should be
good enough for purposes of "tagging".  No need for tags after all.
cvs can checkout based on a date, after all.

Git is good for lots of reasons, not least of which, each
developer has the entire repository at his/her fingertips (locally),
common operations are blindingly fast (e.g., no network latency for diffs)
For me, the main reasons involve immediate access to logs and history,
as well as speedy diffs.

Obviously I have not explained the usage scenario clearly enough.
I'll try again.

There would be two repositories, one CVS, one git.  They would be kept
in sync automatically.  People would be able to get the latest sources
by checking out or updating from either of them.  Patches made against
one would apply equally well against the other (but we'd commit changes
only against the git repo), so contributing by sending patches would
still work just as well.  I.e., you could continue to use CVS and to run
"cvs update" to get the latest.  The only difference comes if you want
to check in changes.  Then you'd need to learn some git basics and
end up doing "git commit file..." instead of "cvs commit file...".

clear as mud?




Re: [bug-gnulib] kernel_sinl bug?

2006-11-22 Thread Bruno Haible
Robinson Mittmann wrote:
> Looking at the "kernel_sinl" function in "sincosl.c" file I found that 
> the limit value for choosing the computation method is wrong with 
> respect of the remaining code:
> 
> kernel_sinl (long double x, long double y, int iy)
> {
>   ...
>   if (x < 0.148375L)/* |x| < 0.1484375 */
> 
> The correct line should be:
> 
>   if (x < 0.1484375L)/* |x| < 0.1484375 */

Thanks, this is indeed a typo in the code (since the comments agree with the
value that the current glibc sources use). I've applied your fix.

> Probably a better approach would be defining this limit as a macro.

It would be, if this code was under heavy development.

Bruno


2006-11-22  Robinson Mittmann <[EMAIL PROTECTED]>  (tiny change)

* lib/sincosl.c (kernel_sinl): Fix typo in threshold.

*** lib/sincosl.c   14 May 2005 06:03:58 -  1.3
--- lib/sincosl.c   22 Nov 2006 18:23:16 -
***
*** 1,5 
  /* Quad-precision floating point trigonometric functions on <-pi/4,pi/4>.
!Copyright (C) 1999 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 Contributed by Jakub Jelinek <[EMAIL PROTECTED]>
  
--- 1,5 
  /* Quad-precision floating point trigonometric functions on <-pi/4,pi/4>.
!Copyright (C) 1999, 2006 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 Contributed by Jakub Jelinek <[EMAIL PROTECTED]>
  
***
*** 113,119 
sign = -1;
  }
  
!   if (x < 0.148375L)/* |x| < 0.1484375 */
  {
/* Argument is small enough to approximate it by a Chebyshev
   polynomial of degree 17.  */
--- 113,119 
sign = -1;
  }
  
!   if (x < 0.1484375L)   /* |x| < 0.1484375 */
  {
/* Argument is small enough to approximate it by a Chebyshev
   polynomial of degree 17.  */




Re: git for Darwin?

2006-11-22 Thread Karl Berry
My suggestion to use a dVCS was mostly independent of branching.

Oh.  Sorry, I didn't get that.

but we'd commit changes only against the git repo

That was my point.  Have you written a cheat sheet for coreutils git
users?  Or maybe one exists independently?  You know,
(a) how to check out
(b) how to update
(c) how to commit
Without surrounding foofaraw about how great it is or how the
repository can be distributed all over the Internet, etc.

clear as mud?

Indeed :).

I can't say that logs, history, and diffs are terribly important to me,
but that's because I'm a very minor developer these days.  So if the
consensus among the heavy-duty users like you and Paul and Bruno is go
git it, I'll come along for the ride, of course.

Thanks,
k




Re: version control system

2006-11-22 Thread Bruno Haible
> > Do you have a comparison of git with mercurial, monotone, bzr?

Reading the wikipedia articles on each of them
   http://en.wikipedia.org/wiki/Git_(software)
   http://en.wikipedia.org/wiki/Mercurial_(software)
   http://en.wikipedia.org/wiki/Monotone_(software)
   http://en.wikipedia.org/wiki/Bazaar_(vcs)

it convinced me of two major advantages of git:
  - speed,
  - community support: 3 web interfaces, several GUIs.

> Here's a well-written piece from someone else who's switched to git:
> 
>   http://keithp.com/blog/Repository_Formats_Matter.html

... which adds a third major advantage:
  - robustness of the repository structure.

> >   - automatic daily backup,
> 
> Not relevant.
> With git or hg, anyone who pulls gets the entire repository.

Hmm, but if the central repository got lost, and was restored through - say -
my copy, everyone would see my temporary branches, and see the patches in the
order in which I pulled them and merged them with my patches, which is not
the original order. No?

Bruno




backup question

2006-11-22 Thread Bruno Haible
Hello Sylvain,

Can you please tell: Are the git repositories visible in

http://git.sv.gnu.org/gitweb/

stored on a disk that is regularly backed up? If so, with which frequency
(daily, weekly, monthly)?

I'm asking because we are considering moving gnulib to this area as well.

Bruno




Re: [bug-gnulib] git for Darwin?

2006-11-22 Thread Bruno Haible
[EMAIL PROTECTED] wrote:
> It'd be a blank slate for me, learning git from ground up.

There are two tutorials for people with a CVS background:
  http://www.kernel.org/pub/software/scm/git/docs/cvs-migration.html
  http://git.or.cz/course/cvs.html

> How well/easily would git sessions work thru firewalls & such?

Easier: For CVS you had to ask your firewall admin to open the port, since
it was below 1024. AFAIK, the git port is > 1024.

Bruno




Re: [bug-gnulib] git for Darwin?

2006-11-22 Thread Bruno Haible
Karl Berry wrote:
> As I understand it, the reason for the proposal is because branches are
> supported better in git.  But isn't wanting to make branches tantamount
> to making releases?

The reasons to make branches are:
  1) for temporary small changes, testing etc.,
  2) for adding features that are more experimental than those on the
 HEAD/trunk.
  3) for cooling down a release.

Reasons 2) and 3) are well-known from CVS; reason 1) is new.

One of the situations where a distributed VCS will be useful for me is when
travelling with a laptop without internet connection. I can then make
commits that will be pulled in the main repository later. (OK, I expect
conflicts in the ChangeLog file; let's see how well the merge strategies
will work...)

Bruno




Re: coreutils-6.5: yet another C89 problem

2006-11-22 Thread Paul Eggert
Matthew Woehlke <[EMAIL PROTECTED]> writes:

> I could probably do it on
> this box, but since it's Linux, it would still be with gcc.

Even that would be helpful, since our current buildbot doesn't do the
particular combination of GCC options you're interested in.




Re: coreutils-6.5: yet another C89 problem

2006-11-22 Thread Matthew Woehlke

Paul Eggert wrote:

Matthew Woehlke writes:

I could probably do it on
this box, but since it's Linux, it would still be with gcc.


Even that would be helpful, since our current buildbot doesn't do the
particular combination of GCC options you're interested in.


Ok, happen to have a quick how-to? (A cron job that *doesn't* mail me 
unless there is a problem would be nice :-).)


--
Matthew
"Two IIRC's must make a right" -- Larry Hall (paraphrased)





Re: version control system

2006-11-22 Thread Jim Meyering
Bruno Haible <[EMAIL PROTECTED]> wrote:
...
>> >   - automatic daily backup,
>>
>> Not relevant.
>> With git or hg, anyone who pulls gets the entire repository.
>
> Hmm, but if the central repository got lost, and was restored through - say -
> my copy, everyone would see my temporary branches,

No problem.
Just make a copy (clone your repo) and remove your temporary
branches in the copy before publishing it.

> and see the patches in the
> order in which I pulled them and merged them with my patches, which is not
> the original order. No?

No.  Deltas in a git repository can't get "out of order".




Re: git for Darwin?

2006-11-22 Thread Jim Meyering
[EMAIL PROTECTED] (Karl Berry) wrote:
...
> but we'd commit changes only against the git repo
>
> That was my point.  Have you written a cheat sheet for coreutils git
> users?  Or maybe one exists independently?  You know,
> (a) how to check out

On the command line, it's probably best to start off using cogito wrappers.
That hides git's "index" concept, which can be a little annoying, at first.
Run this to create a checked-out directory named "any-name-you-want":

  cg-clone git://git.sv.gnu.org/coreutils any-name-you-want

or omit the destination dir-name to create a directory named "coreutils":

  cg-clone git://git.sv.gnu.org/coreutils

> (b) how to update

  cg-pull

> (c) how to commit [into your local copy of the repository]

  cg-commit

Browsing a local repository, it can be nice to use one of
the GUI-based tools, like qgit or gitk.

But there's much more.
There are many use cases outlined in git's own Documentation directory.
E.g.,

  http://www.kernel.org/pub/software/scm/git/docs/tutorial.html
  http://www.kernel.org/pub/software/scm/git/docs/everyday.html




coreutils 6.6 HP-UX build error

2006-11-22 Thread Matthew Woehlke

I got the following error (in gnulib) building coreutils 6.6 on HP-UX.


source='fts.c' object='fts.o' libtool=no \
DEPDIR=.deps depmode=hp /bin/sh ../build-aux/depcomp \
cc  -I.   -I/home/install/gnu/hp700_hpux/include   -g -c fts.c
cc: "fts.c", line 734: error 1654: Expression type is too large for switch 
expression.
cc: "fts.c", line 736: error 1653: Case label too big for the type of the 
switch expression
cc: "fts.c", line 739: error 1653: Case label too big for the type of the 
switch expression


I'm suggesting the following patch (formed by hand, sorry if the line 
numbers are off!):



diff -ur lib/fts.c
--- lib/fts.c
+++ lib/fts.c
@@ -731,16 +731,10 @@
 check_for_dir:
 if (p->fts_info == FTS_NSOK)
   {
-   switch (p->fts_statp->st_size)
- {
- case FTS_STAT_REQUIRED:
-   p->fts_info = fts_stat(sp, p, false);
-   break;
- case FTS_NO_STAT_REQUIRED:
-   break;
- default:
-   abort ();
- }
+   if (p->fts_statp->st_size == FTS_STAT_REQUIRED)
+ p->fts_info = fts_stat(sp, p, false);
+   else if (p->fts_statp->st_size != FTS_NO_STAT_REQUIRED)
+ abort ();
   }
 sp->fts_cur = p;
 if (p->fts_info == FTS_D)


--
Matthew
"Two IIRC's must make a right" -- Larry Hall (paraphrased)





Re: coreutils 6.6 HP-UX build error

2006-11-22 Thread Jim Meyering
Matthew Woehlke <[EMAIL PROTECTED]> wrote:

> I got the following error (in gnulib) building coreutils 6.6 on HP-UX.
>
>> source='fts.c' object='fts.o' libtool=no \
>> DEPDIR=.deps depmode=hp /bin/sh ../build-aux/depcomp \
>> cc  -I.   -I/home/install/gnu/hp700_hpux/include   -g -c fts.c
>> cc: "fts.c", line 734: error 1654: Expression type is too large for switch 
>> expression.
>> cc: "fts.c", line 736: error 1653: Case label too big for the type of the 
>> switch expression
>> cc: "fts.c", line 739: error 1653: Case label too big for the type of the 
>> switch expression
>
> I'm suggesting the following patch (formed by hand, sorry if the line
> numbers are off!):

Thanks for the report and patch.
What version of HP-UX (and, if possible, the compiler) is that?
It must be rather old.
I know the existing code compiles fine with the compilers
from HP-UX 11.11 and HP-UX 11.23.




Re: coreutils 6.6 HP-UX build error

2006-11-22 Thread Matthew Woehlke

Jim Meyering wrote:

Matthew Woehlke wrote:

I got the following error (in gnulib) building coreutils 6.6 on HP-UX.


source='fts.c' object='fts.o' libtool=no \
DEPDIR=.deps depmode=hp /bin/sh ../build-aux/depcomp \
cc  -I.   -I/home/install/gnu/hp700_hpux/include   -g -c fts.c
cc: "fts.c", line 734: error 1654: Expression type is too large for switch 
expression.
cc: "fts.c", line 736: error 1653: Case label too big for the type of the 
switch expression
cc: "fts.c", line 739: error 1653: Case label too big for the type of the 
switch expression

I'm suggesting the following patch (formed by hand, sorry if the line
numbers are off!):


Thanks for the report and patch.
What version of HP-UX (and, if possible, the compiler) is that?
It must be rather old.
I know the existing code compiles fine with the compilers
from HP-UX 11.11 and HP-UX 11.23.


The OS is 11.00, and I can't tell about the compiler ('cc -v' is giving 
some odd output but no version number). FWIW, aCC is A.03.30. My guess 
would be that 'cc' hasn't been updated, though. So far I've only had the 
problem on the one box, but I can't build on our HP Itanium box at the 
moment (although that one is 11.22 IIRC and probably won't have this 
problem).


I build on lots of "old" stuff. :-) (More accurately, I generally build 
on the oldest box I can find and trust the binaries to work on a newer 
box as well, and "the oldest box I can find" is usually the same one we 
build our own products on; i.e. it is the oldest stuff that *we* still 
support.)


--
Matthew
"Two IIRC's must make a right" -- Larry Hall (paraphrased)





Re: coreutils 6.6 HP-UX build error

2006-11-22 Thread Jim Meyering
Matthew Woehlke <[EMAIL PROTECTED]> wrote:
> The OS is 11.00, and I can't tell about the compiler ('cc -v' is giving

FYI, I've checked in a slightly different change:

Work around a compile-time error from the HP-UX 11.00 /bin/cc.
* lib/fts.c (enum Fts_stat): Give this previously-anon enum a name.
(fts_read): Use a temporary to narrow the overused st_size member
before using it in a switch statement.  Reported by Matthew Woehlke.

Index: lib/fts.c
===
RCS file: /sources/gnulib/gnulib/lib/fts.c,v
retrieving revision 1.28
diff -u -p -r1.28 fts.c
--- lib/fts.c   21 Nov 2006 09:15:22 -  1.28
+++ lib/fts.c   22 Nov 2006 23:48:25 -
@@ -92,7 +92,7 @@ static char sccsid[] = "@(#)fts.c 8.6 (B
 # define DT_MUST_BE(d, t) false
 #endif

-enum
+enum Fts_stat
 {
   FTS_NO_STAT_REQUIRED = 1,
   FTS_STAT_REQUIRED = 2
@@ -731,7 +731,8 @@ name:   t = sp->fts_path + NAPPEND(p->fts
 check_for_dir:
if (p->fts_info == FTS_NSOK)
  {
-   switch (p->fts_statp->st_size)
+   enum Fts_stat need_stat = p->fts_statp->st_size;
+   switch (need_stat)
  {
  case FTS_STAT_REQUIRED:
p->fts_info = fts_stat(sp, p, false);




Re: coreutils-6.5: yet another C89 problem

2006-11-22 Thread Paul Eggert
Matthew Woehlke <[EMAIL PROTECTED]> writes:

> Ok, happen to have a quick how-to? (A cron job that *doesn't* mail me
> unless there is a problem would be nice :-).)

http://buildbot.sourceforge.net/

I haven't built one myself, but others have




Re: coreutils 6.6 HP-UX build error

2006-11-22 Thread Paul Eggert
Jim Meyering <[EMAIL PROTECTED]> writes:

> Thanks for the report and patch.
> What version of HP-UX (and, if possible, the compiler) is that?
> It must be rather old.

Come to think of it, since we want the code to stay portable to C89,
then we can't use switch (V) ... when V is of type off_t.  This is
because off_t is typically 'long long int', and C89 (which lacks 'long
long int') does not require support for a switch whose expression is
of type 'long long int'.

Also, I suspect that many would-be C99 compilers might have trouble
with this usage, since it's pretty rare to have a switch (off_t).
I suppose I should add a test to AC_TYPE_LONG_LONG_INT to catch this
particular diagnostic.  But even that wouldn't cure this particular
problem, since the code doesn't depend on HAVE_LONG_LONG_INT.  Sigh.

I'd say we should give up on this particular battle, and just rewrite
the 'switch' to if-then-else, as Matthew Woehlke suggested.




Re: coreutils 6.6 HP-UX build error

2006-11-22 Thread Paul Eggert
Jim Meyering <[EMAIL PROTECTED]> writes:

> + enum Fts_stat need_stat = p->fts_statp->st_size;
> + switch (need_stat)

Dunno if this matters, but on typical 64-bit platforms converting to
enum Fts_stat and then switching won't abort in the rare cases when
p->fts_statp->st_size equals 2**32 + 1 or 2**32 + 2, whereas the
previous code would correctly abort in those two cases.




Re: coreutils 6.6 HP-UX build error

2006-11-22 Thread Jim Meyering
Paul Eggert <[EMAIL PROTECTED]> wrote:
> Jim Meyering <[EMAIL PROTECTED]> writes:
>> +enum Fts_stat need_stat = p->fts_statp->st_size;
>> +switch (need_stat)
>
> Dunno if this matters, but on typical 64-bit platforms converting to
> enum Fts_stat and then switching won't abort in the rare cases when
> p->fts_statp->st_size equals 2**32 + 1 or 2**32 + 2, whereas the
> previous code would correctly abort in those two cases.

Thanks, but that doesn't matter.  When st_size is used that way (when
->fts_info == FTS_NSOK), its value must be FTS_STAT_REQUIRED (1) or
FTS_NO_STAT_REQUIRED (2).  If there is a way to make it have any other
value, it's a bug.




Re: coreutils 6.6 HP-UX build error

2006-11-22 Thread Ben Pfaff
Paul Eggert <[EMAIL PROTECTED]> writes:

> Come to think of it, since we want the code to stay portable to C89,
> then we can't use switch (V) ... when V is of type off_t.  This is
> because off_t is typically 'long long int', and C89 (which lacks 'long
> long int') does not require support for a switch whose expression is
> of type 'long long int'.

I don't understand this rationale.  C89 requires that the switch
expression be of integral type.  For C89 compilers with the long
long int extension, a long long int is an integral type, so it
should be supported.

Are there actual implementations that support long long int but
not its use as a switch expression?
-- 
Ben Pfaff 
email: [EMAIL PROTECTED]
web: http://benpfaff.org





Re: coreutils 6.6 HP-UX build error

2006-11-22 Thread Paul Eggert
Jim Meyering <[EMAIL PROTECTED]> writes:

> Thanks, but that doesn't matter.  When st_size is used that way (when
> ->fts_info == FTS_NSOK), its value must be FTS_STAT_REQUIRED (1) or
> FTS_NO_STAT_REQUIRED (2).  If there is a way to make it have any other
> value, it's a bug.

Yes, but the point of the switch is that it attempts to detect these
bugs, and to abort if there is a bug by falling into the default case.
Formerly the code detected the bug when st_size was 2**32 + 2.
Currently the code does not detect the bug in this case; it treats
2**32 + 2 like FTS_STAT_REQUIRED.

It's a very minor point, and not worth much worry.  (I'm just trying
to explain the point at this point. :-)




Re: coreutils 6.6 HP-UX build error

2006-11-22 Thread Paul Eggert
Ben Pfaff <[EMAIL PROTECTED]> writes:

> I don't understand this rationale.  C89 requires that the switch
> expression be of integral type.  For C89 compilers with the long
> long int extension, a long long int is an integral type

No, because there's no standard for the "long long int" extension in
C89.  A conforming C89 compiler can support every feature of C99 long
long int except for switch().  Such a compiler will still execute
every C89 program correctly, so the implementation conforms to C89.

For example, some conforming C89 systems have long long but use %Ld
rather than %lld for printf formats; that also conforms to C89 (but
not C99, obviously).

> Are there actual implementations that support long long int but
> not its use as a switch expression?

Yes, apparently the HP-UX compiler in question is like this.




Re: backup question

2006-11-22 Thread Sylvain Beucler
On Wed, Nov 22, 2006 at 07:42:58PM +0100, Bruno Haible wrote:
> Hello Sylvain,
> 
> Can you please tell: Are the git repositories visible in
> 
> http://git.sv.gnu.org/gitweb/
> 
> stored on a disk that is regularly backed up? If so, with which frequency
> (daily, weekly, monthly)?
> 
> I'm asking because we are considering moving gnulib to this area as well.

It's Savannah, backed-up daily :)

Glad you're considering trying this out.

-- 
Sylvain