[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Global-commit] global gtags/gtags.c libutil/Makefile.am libuti...,
Shigio YAMAGUCHI <=