Re: GNU RCS 5.7.93 (pretest for 5.8) available

[email protected] (Ludovic Courtès)
Newsgroups gmane.comp.version-control.rcs.bugs
Message-ID <[email protected]>
Hi Thien-Thi,

Thien-Thi Nguyen <[email protected]> writes:

> This message is to announce that pretest release of GNU RCS
> (Revision Control System) is available.

Congratulations for this brave endeavor!  :-)

I tried to build it on NixOS GNU/Linux on x86_64 and noticed several
glitches related to the test suite:

  1. The tests do “. common”, which means that ‘common’ is looked up in
     $PATH, which fails unless ‘.’ is in $PATH.

  2. Why is a custom ‘check-TESTS’ target needed in the ‘v’ (!)
     directory?

  3. Why move executables from ‘src’ to ‘src/0pre/bin’?

  4. How about using ‘set -e’ in test scripts?

  5. The ‘rlog’ program as run by the tests segfaults:

--8<---------------cut here---------------start------------->8---
$ cat t000.d/out 
__________________________________________________
DOING: rcs -i -t-t000 $v
RCS file: t000.d/x,v
done  
RESULT: 0
|head   ;
|access;
|symbols;
|locks; strict;
|comment        @# @;
|
|
|desc
|@t000
|@
_________________________________________ rlog
|
|RCS file: t000.d/x,v
|Working file: t000.d/x
|head:
|branch:
|locks: strict
|access list:
|symbolic names:
|keyword substitution: kv
|total revisions: 0
|description:
|t000
|=============================================================================
__________________________________________________
DOING: ci -u -r4.20 -mHELLO $w
t000.d/x,v  <--  t000.d/x
initial revision: 4.20
done
RESULT: 0
|head   4.20;
|access;
|symbols;
|locks; strict;
|comment        @# @;
|
|4.20
|date   2010.09.28.16.06.46;    author ludo;    state Exp;
|branches;
|next   ;
|
|
|desc
|@t000
|@
|
|
|4.20
|log
|@HELLO
|@
|text 
|@nonempty
|@
__________________________________________________
DOING: rcs -q -o4.20 $w
./common: line 42:  7330 Segmentation fault      (core dumped) rcs -q -o4.20 $w
RESULT: 139
|head   4.20;
|access;
|symbols;
|locks; strict;
|comment        @# @;
|
|4.20 
|date   2010.09.28.16.06.46;    author ludo;    state Exp;
|branches;
|next   ;
|
|
|desc 
|@t000
|@
|
|
|4.20 
|log  
|@HELLO
|@
|text 
|@nonempty
|@
_________________________________________ rlog
--8<---------------cut here---------------end--------------->8---

    Likewise with ‘t001’:

--8<---------------cut here---------------start------------->8---
$ cat t001.d/err 
RCS file: t001.d/x,v
done
t001.d/x,v  <--  t001.d/x
initial revision: 4.20
done
./common: line 42:  7496 Segmentation fault      (core dumped) rcs -nWONDERFUL: $w
--8<---------------cut here---------------end--------------->8---

     and the backtrace:

--8<---------------cut here---------------start------------->8---
Core was generated by `rlog t001.d/x'.
Program terminated with signal 11, Segmentation fault.
#0  hash_pjw (x=0x8888888888888888, tablesize=149) at hash-pjw.c:36
36        for (s = x; *s; s++)
(gdb) bt full
#0  hash_pjw (x=0x8888888888888888, tablesize=149) at hash-pjw.c:36
        s = 0x8888888888888888 <Address 0x8888888888888888 out of bounds>
        h = <value optimized out>
#1  0x000000000040a842 in hash (
    revno=0x8888888888888888 <Address 0x8888888888888888 out of bounds>, ht=0x17d5280)
    at b-grok.c:469
No locals.
#2  gethash (revno=0x8888888888888888 <Address 0x8888888888888888 out of bounds>, ht=0x17d5280)
    at b-grok.c:498
        slot = <value optimized out>
#3  0x000000000040bc21 in full (to=0x17d5090, f=<value optimized out>) at b-grok.c:796
        ny = 0x17ed3f0
        d = 0x17d5790
        ls = 0x17d5850
        count = <value optimized out>
        box = {entry = 0xa, next = 0x8888888888888888}
        tp = <value optimized out>
        g = 0x17d5190
        neck = <value optimized out>
#4  grok_all (to=0x17d5090, f=<value optimized out>) at b-grok.c:823
        repo = 0x17d51f0
#5  0x00000000004069b7 in pairnames (argc=<value optimized out>, argv=0x7fff5f3b545a, 
    rcsopen=0x7, mustread=<value optimized out>, quiet=<value optimized out>) at rcsfnms.c:384
        p = 0x17ed3f0 "\200W}\001"
        arg = <value optimized out>
        RCS1 = <value optimized out>
        base = 0x7fff5f3b545a "x"
        RCSbase = <value optimized out>
        x = <value optimized out>
        mani_filename = <value optimized out>
        paired = false
        dlen = 7
        baselen = 1
        xlen = <value optimized out>
        from = 0x17d5130
        maybe = {open = 0x406d60 <rcsreadopen>, mustread = true, tentative = {
            string = 0x17eb2e0 "t001.d/x,v", size = 10}, space = 0x17eb230, bestfit = {
            string = 0x17eb2e0 "t001.d/x,v", size = 10}, status = 0x17d4188, eno = 2}
        __func__ = "pairnames"
#6  0x000000000040318e in main (argc=1, argv=0x7fff5f3b4c20) at rlog.c:924
        tip = 0x1
        defbr = 0x2ab3f7fa0d40 "\226\021@"
        strictly_locking = false
        kws = 10931
        repo_filename = 0x2ab3f7f8a7e3 "\205\300\017\217\205\001"
        locks = 0x7fff5f3b4b00
        out = 0x2ab3f84f9780
        a = <value optimized out>
        newargv = 0x7fff5f3b4c18
        accessListString = 0x41130b "\naccess list:"
        accessFormat = 0x1 <Address 0x1 out of bounds>
        headFormat = 0x4114a8 "\nRCS file: %s\nWorking file: %s\nhead:%s%s\nbranch:%s%s\nlocks:%s"
        symbolFormat = 0x4112fd "\n\t%s: %s"
        descflag = true
        selectflag = true
        onlylockflag = false
        onlyRCSflag = false
        pre5 = false
        shownames = true
        revno = 1
        program = {name = 0x41126f "rlog", 
          help = 0x4116a0 "[options] file ...\nOptions:\n  -L", ' ' <repeats 12 times>, "Ignore RCS files with no locks set.\n  -R", ' ' <repeats 12 times>, "Print the RCS file name only.\n  -h", ' ' <repeats 12 times>, "Print only the \"header\" information.\n  -t", ' ' <repeats 12 times>, "Like "..., exiterr = 0x403cb0 <exiterr>}
--8<---------------cut here---------------end--------------->8---

Well, I hope this helps.  :-)

Thanks,
Ludo’.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.