Developer forums (C::B DEVELOPMENT STRICTLY!) > Development
CC enhancements/alternatives
MortenMacFly:
--- Quote from: thomas on February 06, 2012, 03:58:51 pm ---Hopefully we don't ever declare a local variable somewhere after a CC_LOCK then.
--- End quote ---
So what? The worst that can happen is a compiler error in that case... or am I missing something?!
--- Quote from: thomas on February 06, 2012, 03:58:51 pm ---And lastly, hopefully you'll get rid of 90% of these locks (which is the entire point).
--- End quote ---
Well that's the point, my intention on doing this was to understand why and where all these locks are needed. And in fact, I am a bit frustrated now. So, we need to protect the parser, the tokens tree and the class browser thread from cross-use. therefore three mutexes are floating around. However, accessing the tokens tree and its content is really scattered (for various reason) and I don't see a good way how this could be done better. There are a lot of cases where you need to access the tree and/or the parser in different ways from different sources or you loose CC capabilities.
How on earth could this be done better? We can start a discussion...
BTW: In theory, the construct should be robust enough that we could try 2 or more parsing threads now IMHO.
oBFusCATed:
--- Quote from: MortenMacFly on February 06, 2012, 08:00:28 pm ---However, accessing the tokens tree and its content is really scattered (for various reason) and I don't see a good way how this could be done better.
--- End quote ---
Have you thought of defining simple public interface?
An interface which have all the features needed by the outside world and not exposing the guts for the parser.
BTW: Is there any actual reason to continue working on our parser? Have you tried the clangs plugin? (I've not, but I think this is the only reasonable direction we should take, when talking about the CC)
MortenMacFly:
--- Quote from: oBFusCATed on February 06, 2012, 08:12:38 pm ---Have you thought of defining simple public interface?
--- End quote ---
Hehe - sure. That was also the original intention, but you have just way too many interfaces you need. That's the point here.
--- Quote from: oBFusCATed on February 06, 2012, 08:12:38 pm ---Is there any actual reason to continue working on our parser? Have you tried the clangs plugin? (I've not, but I think this is the only reasonable direction we should take, when talking about the CC)
--- End quote ---
I think it's still quite good and fast. The only alternative I see is to make use of Eran's CodeLite and wrap it in a plugin. Instead of wrapping Clang itself this would have been a way better choice (not that I don't like the clang plugin though). However, I don't have time for this and I know it not well enough to honest, so I cannot measure the effort it needs. I already asked in the forums for people willing to try, but nobody responded so far. :-(
Maybe if Eran could give a starter this would be of help (he is interested in it, too)...?!
oBFusCATed:
I have some little interest, but I fear that I'll get trapped in a major refactoring similar to the one related to the debugger, so I restrain myself from thinking too much about CC :)
ollydbg:
--- Quote from: MortenMacFly on February 06, 2012, 08:30:04 pm ---I think it's still quite good and fast. The only alternative I see is to make use of Eran's CodeLite and wrap it in a plugin.
--- End quote ---
CodeLite now integrates the Clang codecompletion feature.
You want to wrap Codelite's CC, do you mean the "original CC in Codelite" or "the total thing" (include Clang cc in Codelite) ?
Navigation
[0] Message Index
[#] Next page
Go to full version