gccsense vs. clang_complete - PullRequest
       42

gccsense vs. clang_complete

13 голосов
/ 28 марта 2011

Я уже некоторое время использую omniCppComplete + ctags и хочу внести дальнейшие улучшения в завершение кода.

Согласно предложению здесь [ 1 ], gccsenseи clang_complete кажется альтернативами.Однако я не уверен, какой из них лучше.Есть идеи об их производительности?
Спасибо!

Обновление: После того, как я попробовал clang_complete, я обнаружил, что скорость завершения крайне неприемлема.Затем я попробовал это с помощью libclang.dylib, который сильно ускоряется, но все равно вызывает чувство отставания.Я думаю, что я должен придерживаться ctags пока.

Ответы [ 2 ]

21 голосов
/ 01 апреля 2011

Вам, вероятно, следует использовать clang_complete, а не gccsense.

Главное здесь - это архитектура двух.Идея обоих решений очень похожа: вы не можете получить нормальное завершение C ++ без доступа к внутренней информации компилятора (gcc) (Абстрактное синтаксическое дерево), в то время как gcc не предоставляет вам достаточных интерфейсов для этого.Часть реализации доступа к этой информации здесь совершенно иная: gccsense - это своего рода «хак» - это пользовательская сборка gcc, способная хранить необходимую информацию для дальнейшего предоставления ее плагину, в то время как clang_complete идет другим путем, используя альтернативнуюкомпилятор: clang, одной из основных целей создания которого было именно то, чтобы сделать AST легко доступным для внешних инструментов.

Итак, в случае использования gccsense вам нужно будет скомпилировать ваш код с помощью своего рода gccкомпилятор, который уже немного устарел (gccsense использует gcc 4.4) и теперь постоянно нуждается в поддержке со стороны разработчика.Наоборот, clang_complete не так сильно зависит от компилятора clang, он использует его как внешний инструмент.

Что касается производительности: снова Clang был разработан, чтобы быть быстрее, чем GCC, и это так.Clang_complete может быть немного медленнее в Windows, чем в MacOS / Linux, однако gccsense не может быть даже скомпилирован для Windows.

2 голосов
/ 01 сентября 2011

GCCsense может быть построен на Windows.Смотрите мой патч на gcc 4.5.2 здесь: http://forums.codeblocks.org/index.php/topic,13812.msg94824.html#msg94824

Я признаю, что gccsense - это просто взлом gcc, но clang имеет намного лучший дизайн с самого начала.

Надеюсь, кто-нибудь могулучшить gcc / gccsense.

...