Funny you should ask that. This had been bothering me for a little
while, but other things were more broken. Yesterday I managed to
track down what had happened and fixed it. I ran some tests last
night that showed to me that semantic can now do full completion
without touching any files if the same completion had been done in a
previous Emacs run.
For the system files like Xlib.h, the previous default configuration
of `semanticdb-persistent-path' did not save system files for
historical reasons so they always needed reparsing.
For the always reparsing problem, in relation to the path above,
there was another configuration variable
`semanticdb-project-predicate-functions'. If this was nil, it tried
to save everything, but a while back I got EDE turned on by default
which in turn set this variable, inadvertently disabling save files
for unconfigured projects. I had not realized this till just now.
Although it seems you do have a set of cache files. Hmmm. Of course,
I have recently changed the default persistent path to 'always so
maybe that doesn't matter anymore.
For the version of CEDET you currently have, you can set
semanticdb-persistent-path to '(always) and perhaps get part of your
problem solved. Alternately, you can get a copy of CEDET from CVS,
and try out the changes I had checked in last night plus the new
infrastructure for code completion. There are many new caches and
optimizations for speed you may enjoy. If you do this, please let me
know how it goes.
If semantic still reparses your files even if they are on disk after
trying some of the above, let me know and I'll try to figure out how
to debug it.
If you use CEDET from CVS, you can try this to see if the problem is
specific to your project or not by doing this:
1) start emacs
2) M-x semantic-ia-utest
3) exit emacs
4) start emacs
5) M-x semantic-ia-utest
For the last one, it should not show any parsing messages, nor leave
any stray buffers in your buffer list. Hopefully, it will also pass
the unit test. :)
Thanks, and good luck
>>> "=?ISO-8859-1?Q?Per_Nordl=F6w?=" <per.nordlow@...> seems to think that:
>I am trying out CEDET/Semantic and I have found it to be absolutely
>world-class brilliant software.
>In my setup, however, Semantic(db) keeps performing reparsings of the
>same system header-files, for example Xlib.h, X.h, etc during the same
>Also, the caches in my ~/semanticdb does *not* prevent semantic from
>reparsing all my project sources (under ~/pnw/src) and system header files
>(under /usr/include/) upon startup
>I get the LL/...h ###... progressbar for all C/C++ sources even when I
>open them the second time despite the fact that they all
>have entries in the files under ~/.semanticdb/.
>What have I missed?
Eric Ludlam: eric@...
Siege: http://www.siege-engine.com Emacs: http://cedet.sourceforge.net