From: Sergey Matveev Date: Sat, 14 Nov 2020 08:21:25 +0000 (+0300) Subject: Скорость работы LLVM 11 и его инструментарий X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=49a33c0057d871647886bde81c0bdfa9ed9c65f1;p=stargrave-blog.git Скорость работы LLVM 11 и его инструментарий Обновился с LLVM 6 до 11. LSP демон стал работать значительно быстрее, меньше каких-то непонятных warning-ов выдаёт. В 543ea92f9b81c1c8adead550e7ce0cf3cc665240 писал про то, что скорость прежних задач не должна падать -- тут они справились! А вот всякие clang-tidy стали работать медленнее... но при этом находят больше серьёзных недочётов и в (ещё не протестированном) коде нашли утечки памяти (отсутствие free) и кое где отсутствующие break. За это можно простить, тем более что оно не интерактивное. Вообще LLVM/Clang инструментарий очень нравится и насколько понимаю в GNU GCC нифига подобного ничего нет. И clang-format, который 100% форматирует весь мой код. scan-build ПОТРЯСАЮЩЕ находящий серьёзные ошибки, которые и во время ревью человек то нифига не заметит (хитрые goto/if из-за которых потеряется значение переменной). clang-tidy выдающий и false positive, но также и полезные вещи типа утечек памяти или неинициализированные значения. clangd LSP -- как linter отличен! Куча -Weverything проверок (которые даже в doxygen docstring-и умеют залезать) и sanitizer-ов, которые в 99% случаев находили некорректности работы с памятью, переполнения чисел или ошибок из-за их знаковости. Вовсю моё программирование на C опирается на эти инструменты. Единственное что я ставил дополнительно это: https://include-what-you-use.org/ С помощью которой я легко корректно и правильно организую include-ы, ведь задача очень не приятна для человека. ---