GNU bug report logs - #31368
vc-chlog reports "test: Illegal number" errors

Previous Next

Package: vc-dwim;

Reported by: Bruno Haible <bruno <at> clisp.org>

Date: Sat, 5 May 2018 00:51:02 UTC

Severity: normal

To reply to this bug, email your comments to 31368 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-vc-dwim <at> gnu.org:
bug#31368; Package vc-dwim. (Sat, 05 May 2018 00:51:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bruno Haible <bruno <at> clisp.org>:
New bug report received and forwarded. Copy sent to bug-vc-dwim <at> gnu.org. (Sat, 05 May 2018 00:51:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Bruno Haible <bruno <at> clisp.org>
To: bug-vc-dwim <at> gnu.org
Subject: vc-chlog reports "test: Illegal number" errors
Date: Sat, 05 May 2018 02:50:04 +0200
How to reproduce:

$ wget -O gettext-clean.tar.xz 'https://www.dropbox.com/s/01pkbqsydi5ix0v/gettext-clean.tar.xz?dl=0'
$ tar xf gettext-clean.tar.xz
$ cd gettext-clean
$ vc-chlog > /tmp/xx
/usr/gnu/bin/vc-chlog: 459: test: Illegal number: +
/usr/gnu/bin/vc-chlog: 458: test: Illegal number: +
/usr/gnu/bin/vc-chlog: 474: test: Illegal number: +
/usr/gnu/bin/vc-chlog: 459: test: Illegal number: gettext-runtime/m4/longlong.m4
/usr/gnu/bin/vc-chlog: 458: test: Illegal number: gettext-runtime/m4/longlong.m4
/usr/gnu/bin/vc-chlog: 474: test: Illegal number: gettext-runtime/m4/longlong.m4
/usr/gnu/bin/vc-chlog: 483: test: Illegal number: /tmp/vccJw9Bn8/oldfile-20-longlong.m4
/usr/gnu/bin/vc-chlog: 482: test: Illegal number: /tmp/vccJw9Bn8/oldfile-20-longlong.m4
/usr/gnu/bin/vc-chlog: 498: test: Illegal number: /tmp/vccJw9Bn8/oldfile-20-longlong.m4
$ vc-chlog --version
vc-chlog version 1.8

This is on Linux (Ubuntu 16.04).

Bruno





Information forwarded to bug-vc-dwim <at> gnu.org:
bug#31368; Package vc-dwim. (Sun, 06 May 2018 01:09:02 GMT) Full text and rfc822 format available.

Message #8 received at 31368 <at> debbugs.gnu.org (full text, mbox):

From: Jim Meyering <jim <at> meyering.net>
To: Bruno Haible <bruno <at> clisp.org>
Cc: 31368 <at> debbugs.gnu.org
Subject: Re: [Bug-vc-dwim] bug#31368: vc-chlog reports "test: Illegal number"
 errors
Date: Sat, 5 May 2018 18:07:42 -0700
On Fri, May 4, 2018 at 5:50 PM, Bruno Haible <bruno <at> clisp.org> wrote:
> How to reproduce:
...
> vc-chlog version 1.8

Hi Bruno,

Thank you for the report.
I can make vc-chlog misbehave that way by configuring and building
vc-dwim tools with an exuberant ctags binary first in search path, but
(say later) running vc-chlog with a different ctags (e.g., from emacs)
earlier in the search path.

You have two solutions:
- rerun vc-dwim's configure+build+install to take into account the new
ctags state of your shell's search path.
- restore the expected ctags binary to the earlier spot in your
shell's search path.

Ideas for how vc-dwim can do better on this front:
- hard-code the path to ctags that it finds during configure, but we
prefer not to hard-code such paths...
- make vc-chlog detect which ctags it is using at run time. Not ideal,
but it would have saved you this trouble. The configure check shows
how simple the test is:

case `$CTAGS -x conftest.c` in
  *function*) rw_cv_ctags_type_column=yes ;;
  *) rw_cv_ctags_type_column=no;;
esac

But I suspect we could get away with an even less expensive check:
inspect the output of ctags --version. If it matches something like
/^Exuberant Ctags/, assume we have the more desirable type column.

I'm leaning towards the latter. What do you think?




Information forwarded to bug-vc-dwim <at> gnu.org:
bug#31368; Package vc-dwim. (Sun, 06 May 2018 09:30:02 GMT) Full text and rfc822 format available.

Message #11 received at 31368 <at> debbugs.gnu.org (full text, mbox):

From: Bruno Haible <bruno <at> clisp.org>
To: Jim Meyering <jim <at> meyering.net>
Cc: 31368 <at> debbugs.gnu.org
Subject: Re: [Bug-vc-dwim] bug#31368: vc-chlog reports "test: Illegal number"
 errors
Date: Sun, 06 May 2018 11:29:08 +0200
Hi Jim,

> I can make vc-chlog misbehave that way by configuring and building
> vc-dwim tools with an exuberant ctags binary first in search path, but
> (say later) running vc-chlog with a different ctags (e.g., from emacs)
> earlier in the search path.
> 
> You have two solutions:
> - rerun vc-dwim's configure+build+install to take into account the new
> ctags state of your shell's search path.
> - restore the expected ctags binary to the earlier spot in your
> shell's search path.

But I did not fiddle with PATH. I can reproduce the issue with
  $ cd vc-dwim-1.8
  $ ./configure --prefix=PREFIX    [the PREFIX/bin dir is in my $PATH]
  ...
  checking for ctags-exuberant... no
  checking for ctags... ctags
  checking whether ctags prints an extra column... no
  ...
  $ make
  $ make install
  $ cd ..
  $ wget -O gettext-clean.tar.xz 'https://www.dropbox.com/s/01pkbqsydi5ix0v/gettext-clean.tar.xz?dl=0'
  $ tar xf gettext-clean.tar.xz
  $ cd gettext-clean
  $ vc-chlog > /tmp/xx
  PREFIX/bin/vc-chlog: 459: test: Illegal number: +
  PREFIX/bin/vc-chlog: 458: test: Illegal number: +
  PREFIX/bin/vc-chlog: 474: test: Illegal number: +
  PREFIX/bin/vc-chlog: 459: test: Illegal number: gettext-runtime/m4/longlong.m4
  PREFIX/bin/vc-chlog: 458: test: Illegal number: gettext-runtime/m4/longlong.m4
  PREFIX/bin/vc-chlog: 474: test: Illegal number: gettext-runtime/m4/longlong.m4
  PREFIX/bin/vc-chlog: 483: test: Illegal number: /tmp/vcczGSIVa/oldfile-20-longlong.m4
  PREFIX/bin/vc-chlog: 482: test: Illegal number: /tmp/vcczGSIVa/oldfile-20-longlong.m4
  PREFIX/bin/vc-chlog: 498: test: Illegal number: /tmp/vcczGSIVa/oldfile-20-longlong.m4

The version of ctags that I have in $PATH is

  $ ctags --version
  ctags (GNU Emacs 23.1)
  Copyright (C) 2009 Free Software Foundation, Inc.
  This program is distributed under the terms in ETAGS.README

and I don't use ctags at all (there is no 'tags' or 'TAGS' file in the said
tarball).

> Ideas for how vc-dwim can do better on this front:
> - hard-code the path to ctags that it finds during configure, but we
> prefer not to hard-code such paths...
> - make vc-chlog detect which ctags it is using at run time. Not ideal,
> but it would have saved you this trouble. The configure check shows
> how simple the test is:
> 
> case `$CTAGS -x conftest.c` in
>   *function*) rw_cv_ctags_type_column=yes ;;
>   *) rw_cv_ctags_type_column=no;;
> esac

Hard-coding a path is not a good idea, I agree. As an administrator of my
machine, I hate it when GCC uses a hardwired 'as' or when autoconf uses a
hardwired 'm4' location.

This invocation is not very costly (4 ms in my case):
$ time ctags -x conftest.c
f                  2 conftest.c       f 

real    0m0.004s
user    0m0.000s
sys     0m0.000s

Therefore I would vote for moving this configure test to the run time.

Bruno





Information forwarded to bug-vc-dwim <at> gnu.org:
bug#31368; Package vc-dwim. (Fri, 22 Nov 2019 22:50:02 GMT) Full text and rfc822 format available.

Message #14 received at 31368 <at> debbugs.gnu.org (full text, mbox):

From: Karl Berry <karl <at> freefriends.org>
To: jim <at> meyering.net, 31368 <at> debbugs.gnu.org
Subject: Re: [Bug-vc-dwim] bug#31368: vc-chlog reports "test: Illegal
 number" errors
Date: Fri, 22 Nov 2019 15:49:42 -0700
Back on this mail from 2018, let me just mention that I ran into a
stream of errors similar to Bruno's ("test: Illegal number ..."). Which
shouldn't say "illegal", but that's a different matter :).

    jm> I can make vc-chlog misbehave that way by configuring and
    building vc-dwim tools with an exuberant ctags binary first in
    search path, but (say later) running vc-chlog with a different ctags
    (e.g., from emacs) earlier in the search path.

In my case it was the other way around, but whatever.

    I suspect we could get away with an even less expensive check:
    inspect the output of ctags --version. 

I fully agree. I see no overriding reason why vc-chlog cannot check what
it needs to check at runtime, and do nothing at configure time. Which
would be way more flexible and reliable.

However, I didn't go so far as to write that patch :(. --thanks, karl.




This bug report was last modified 5 years and 208 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.