global-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Global-commit] global gtags/gtags.c libutil/Makefile.am libuti...


From: Shigio YAMAGUCHI
Subject: [Global-commit] global gtags/gtags.c libutil/Makefile.am libuti...
Date: Mon, 27 Feb 2006 00:48:54 +0000

CVSROOT:        /sources/global
Module name:    global
Branch:         
Changes by:     Shigio YAMAGUCHI <address@hidden>       06/02/27 00:48:54

Modified files:
        gtags          : gtags.c 
        libutil        : Makefile.am format.h gtagsop.c gtagsop.h 
Added files:
        libutil        : gtagsop5.c gtagsop5.h 

Log message:
        Testing code for new tag format (I pray, for GLOBAL-5.0).
        
        This code should be tested for a while.
        - If there is something problem, it will be fixed.
        - After the test, it will be judged whether this code can be adopted.
        
        You can make tag files using new format like follows:
        
        $ gtags -ccc                    <= three 'c' option
        
        Purpose
        =======
        
        o Allows path name including blanks.
        o Decrease disk space used.
        o Make tag format simpler.
        o Realize stable performance.
        
        Specification
        =============
        
        STANDARD5 format (for GTAGS)
        
        <file id> <tag name> <line number> <line image>
        
        * Separator is single blank.
        
        [example]
        +------------------------------------
        |110 func 10 int func(int a)
        |110 func 30 func(int a1, int a2)
        
        COMPACT5 format (for GRTAGS, GSYMS)
        
        <file id> <tag name> <line number>,...
        
        * Separator is single blank.
        
        [example]
        +------------------------------------
        |110 func 10,30
        
        Description
        ===========
        
        o STANDARD5 format is applied to GTAGS, and COMPACT5 format is applied
        to GRTAGS and GSYMS by default.
        Because GRTAGS was growing too much, COMPACT5 format might be suitable.
        (The -c (--compact) option might be removed.)
        o Separator is single blank.
        This decrease disk space used a little, and make it easy to parse
        tag record.
        o Use file id instead of path name.
        This decreases disk space used, and allows blanks in path name
        at least in tag files.
        o Put file id at the head of tag record.
        We can access file id without string processing.
        This is advantageous for deleting tag record when incremental updating.
        o Format version of tag file is incremented (4).
        This enables us to keep upper compatibility of tag files.
        (Whether to keep it, a further examination is necessary though.)
        For the detail of 'format version', please see the comment in
        libutil/gtagsop.c.
        
        Test data
        =========
        
        Here is a test data when applying to FreeBSD kernel source code.
        
        Format    Command line   Making time Updating time Total size
        (sec)       (sec)         (bytes)
        -------------------------------------------------------------
        standard    gtags        1137        6676           131391488
        compact     gtags -c      330          98            36569088
        pathindex   gtags -cc     948        4254           109953024
        new format  gtags -ccc    392         112            43040768
        -------------------------------------------------------------

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/global/global/gtags/gtags.c.diff?tr1=1.187&tr2=1.188&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/global/global/libutil/Makefile.am.diff?tr1=1.26&tr2=1.27&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/global/global/libutil/format.h.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/global/global/libutil/gtagsop.c.diff?tr1=1.87&tr2=1.88&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/global/global/libutil/gtagsop.h.diff?tr1=1.29&tr2=1.30&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/global/global/libutil/gtagsop5.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/global/global/libutil/gtagsop5.h?rev=1.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]