bug-global
[Top][All Lists]
Advanced

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

Re: [PATCH] Add 2-pass mode to gtags


From: Hideki IWAMOTO
Subject: Re: [PATCH] Add 2-pass mode to gtags
Date: Thu, 21 Jan 2010 21:35:35 +0900

Hi.
> I agree with you.
> Though GLOBAL is built so as not to depend on tacit assumptions as much
> as possible, there is no necessity for supporting all the combinations.
> I think that a new improvement need not become the victim of needless
> flexibility.
> 
> How if the following assumption is shared?
> o If GRTAGS or GSYMS exists then the both are sure to exist.
> o The format of GRTAGS and GSYMS is always the same.

The revised version is attached.
Error messages are as follows. 
------------------------------------------
$ gtags
$ cp GTAGS GSYMS
$ gtags -i
gtags: The format of GRTAGS and GSYMS is different.
$ rm GSYMS
$ gtags -i
gtags: GSYMS doesn't exist though GRTAGS exists.
$ mv GRTAGS GSYMS
$ gtags -i
gtags: GRTAGS doesn't exist though GSYMS exists.
$ rm GSYMS
$ gtags -i
------------------------------------------

Other changes:
 To keep consistency, incremental updating moves undefined symbols from GRTAGS
 to GSYMS, and moves defined symbols from GSYMS to GRTAGS as shown as follows.
------------------------------------------
$ gtags
$ global -x write
$ global -rx write
$ global -sx write
write             885 htags/htags.c             if (write(op, buf, size) != 
size)
write             405 libdb/mpool.c     if (write(mp->fd, bp->page, 
mp->pagesize) != mp->pagesize)
$ echo 'write(){}' > write.c
$ gtags -i
$ global -x write
write               1 write.c          write(){}
$ global -rx write
write             885 htags/htags.c             if (write(op, buf, size) != 
size)
write             405 libdb/mpool.c     if (write(mp->fd, bp->page, 
mp->pagesize) != mp->pagesize)
$ global -sx write
$ rm write.c
$ gtags -i
$ global -x write
$ global -rx write
$ global -sx write
write             885 htags/htags.c             if (write(op, buf, size) != 
size)
write             405 libdb/mpool.c     if (write(mp->fd, bp->page, 
mp->pagesize) != mp->pagesize)
------------------------------------------

Diffstat:
 configure.ac              |   11
 global/global.c           |  145 +++++++++
 gtags.conf.in             |    8
 gtags/gtags.c             |  366 +++++++++++++++++++++--
 gtags/manual.in           |    4
 libutil/.cvsignore        |    4
 libutil/C.c               |  664 +++++++++++++++++++++++++++++++++++++++++++
 libutil/Cpp.c             |  706 ++++++++++++++++++++++++++++++++++++++++++++++
 libutil/Makefile.am       |    8
 libutil/asm_parse.y       |  166 ++++++++++
 libutil/asm_scan.l        |  210 +++++++++++++
 libutil/global.h          |    1
 libutil/gtagsop.c         |  203 ++++++++++++-
 libutil/gtagsop.h         |    9
 libutil/java.c            |  163 ++++++++++
 libutil/parser.c          |  277 ++++++++++++++++++
 libutil/parser.h          |   53 +++
 libutil/parser_internal.h |   52 +++
 libutil/php.l             |  357 +++++++++++++++++++++++
 reconf.sh                 |   13
 20 files changed, 3363 insertions(+), 57 deletions(-)

----
Hideki IWAMOTO  address@hidden

Attachment: 20100121-builtin-parser+1pass-parsing.patch
Description: Binary data


reply via email to

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