<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Clazy</title><link>https://apps.kde.org/ru/clazy/</link><description> Clazy — подключаемый модуль для компилятора Clang, выводящий предупреждения, связанные с лучшими практиками Qt.</description><generator>Hugo -- gohugo.io</generator><language>ru</language><atom:link href="https://apps.kde.org/ru/clazy/index.xml" rel="self" type="application/rss+xml"/><item><title>Release 1.17.1 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.17.1</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.17.1</guid><description><p>В этом выпуске исправлена следующая ошибка:</p><ul><li>fully-qualified-moc-types: исправлена ложная регрессия для указателей и ссылок в обобщённых типах;</li></ul></description></item><item><title>Release 1.16.1 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.16.1</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.16.1</guid><description><p>Это выпуск с исправлениями для устранения проблем интеграции с QtCreator и</p><p>совместимость с новыми версиями Qt. В этом выпуске поддерживаются версии LLVM от 19 до 21.</p><p>В этом выпуске исправлены следующие ошибки:</p><ul><li>Диагностика теперь всегда выводится, даже если не содержит автоматических исправлений; это используется</li><li>для интеграции в средах разработки, где процесс clazy записывает файл YAML, содержащий</li><li>сообщения, диапазоны и, опционально, автоматические исправления;</li><li>Адаптирована проверка отсоединения блокировки чтения для корректной работы с изменениями Qt 6.11;</li></ul></description></item><item><title>Release 1.17 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.17</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.17</guid><description><p>В этом выпуске исправлены следующие ошибки:</p><ul><li>Исправлена проверка «non-pod-static», которая генерировала предупреждение для каждого элемента контейнера;</li><li>Исправлено ложное срабатывание проверки use-arrow-operator-instead-of-data при приведении значения типа;</li><li>Не добавлять QVariant в исключения для обнаружения отсоединения временных объектов; QVariant::toString предоставит QString, который не будет отсоединён;</li><li>Правильная проверка условий при отсоединении временных объектов при наличии в цепочке более двух вызовов методов;</li><li>Повышена надёжность автоматических исправлений для detaching-temporary/detaching-member благодаря использованию диапазонов исправлений для вызовов операторов;</li><li>При использовании QT_NAMESPACE clazy корректно обрабатывает классы Qt в этом пространстве имён;</li><li>Исправлена неправильная замена метода для QMap::operator[];</li><li>Сделан проект компилируемым с LLVM22; исправлены тесты qhash-namespace, fully-qualified-moc-types и old-style-connect;</li><li>Адаптирована проверка отсоединения блокировки чтения для корректной работы с изменениями Qt 6.11;</li><li>Перемещена проверка qstring-ref на ручной уровень, так как она несовместима с Qt6;</li></ul><p>В этом выпуске добавлена следующая возможность:</p><ul><li>Новые проверки: — compare-member-check: проверяет, используются ли все переменные-члены класса в операторах сравнения;</li></ul><p>Для компиляции теперь требуется C++20.</p><p>Проверки переноса qt6-\* удалены.</p></description></item><item><title>Release 1.16 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.16</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.16</guid><description><p>В этом выпуске исправлены следующие ошибки:</p><ul><li>unused-result-check: исправлено аварийное завершение при невозможности разрешения объявления метода;</li><li>use-chrono-in-qtimer: исправлено аварийное завершение при использовании предварительно скомпилированных заголовков;</li><li>qt6-qhash-signature: адаптирована проверка для использования более корректной логики преобразований типов и исправлено аварийное завершение в крайних случаях;</li><li>Обеспечена корректная работа clang21 с clazy и вывод тех же номеров строк и символов, что и ранее (при несоответствиях в вызовах операторов);</li><li>non-pod-global-static: устранён ложный срабатывание с Q_IMPORT_PLUGIN в Qt-6.10;</li></ul><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Clazy теперь можно интегрировать в clang-tidy — одна команда для управления всеми проверками;</li><li>включить все проверки; для этого используйте «clazy-&lt;имя_проверки&gt;», например:</li><li>`clazy-qstring-arg,clazy-qfileinfo-exists`; включение всех проверок с помощью</li><li>`clazy-*` также включает ручную проверку; рекомендуется использовать более детальную настройку.</li><li>Модуль загружается с помощью `-load=ClazyClangTidy.so`; для этого плагин</li><li>Должна находиться в переменной окружения LD_LIBRARY_PATH; либо можно указать абсолютный путь.</li><li>Добавлены подсказки по исправлению для всех сценариев использования isempty-vs-count;</li><li>длина теперь проверяется с использованием «== 0», «&lt; 1», «&gt; 0»; об этом сообщается и доступны исправления.</li><li>qt6-\* Проверки переноса считаются устаревшими и будут удалены в следующем выпуске clazy;</li><li>В проверках detaching-temporary и detaching-member реализованы автоматические исправления для методов, имеющих константные аналоги.</li><li>Теперь в clazy работают все директивы NOLINT, NOLINTNEXTLINE, NOLINTBEGIN и NOLINTEND;</li><li>ожидаемо. Отдельные проверки clazy можно отключить при использовании «clazy-»;</li><li>Например, «NOLINTNEXTLINE(clazy-qfileinfo-exists, clazy-qstring-arg)»;</li></ul></description></item><item><title>Release 1.15 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.15</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.15</guid><description><p>В этом выпуске исправлены следующие ошибки:</p><ul><li>install-event-filter: исправлено аварийное завершение при отсутствии дочернего элемента на указанной глубине. ОШИБКА: 464372;</li><li>fully-qualified-moc-types: исправлена неверная обработка перечислений и классов перечислений. ОШИБКА: 423780</li><li>Исправлено аварийное завершение в сравнении строки с неявным символом;</li><li>Исправлено аварийное завершение при обработке сигналов с выражениями типа «std::bitset&lt;int(8)&gt;» в модуле `fully-qualified-moc-types`;</li><li>Исправлено аварийное завершение при создании экземпляра шаблона QVariant;</li></ul><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Новые проверки:</li><li>отсоединение при блокировке чтения;</li><li>Минимальная версия Clang/LLVM обновлена до 19;</li><li>`clazy-standalone --version` содержит номер версии git (результат выполнения `git describe`), если это не фиксация с меткой;</li><li>Добавлены отсутствующие методы для проверки отсоединения временных списков, карт или их членов;</li></ul></description></item><item><title>Release 1.14 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.14</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.14</guid><description><p>Предупреждения Clazy для следующей строки можно отключить, например: clazy: exclude-next-line=check1,check2</p><p>Поддержка компиляции с использованием Clang 20</p><p>Увеличена детализация некоторых предупреждений</p><p>проверки `function-args-by-value` и `function-args-by-ref`: в сообщение предупреждения добавлено имя функции и параметра</p><p>проверки `unused-non-trivial-variable` и `non-pod-global-static`: добавлено имя переменной в предупреждение</p><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Новые проверки:</li><li>преобразование QByteArray в стиль C;</li></ul></description></item><item><title>Release 1.13 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.13</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.13</guid><description><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Добавлены проверки:</li><li>Проверка неиспользуемых переменных;</li></ul><p>В этом выпуске исправлены следующие ошибки:</p><ul><li>Проверка qstring-arg предоставляет исправление;</li><li>Исправлено предупреждение «unused-non-trivial-variable» при установке атрибута «[[maybe_unused]]»;</li><li>Исправлена функция QString::arg() для будущей версии Qt 6.9;</li><li>Исправлено ложное срабатывание fully-qualified-moc-types для модификаторов const обобщённых аргументов;</li><li>Отключено ложное предупреждение «non-pod-global-static» при инициализации модуля QML;</li><li>Исправлена ложная срабатываемость функции «function-args-by-value», которая вызывала ошибку компиляции;</li><li>в конструкторах копирования, операторах присваивания и проверках на равенство;</li><li>Исправлены ложные срабатывания для `Q_EMIT(someSignal())`;</li></ul></description></item><item><title>Release 1.12 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.12</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.12</guid><description><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Добавлены проверки:</li><li>Ключевое слово «emit» в Qt;</li><li>очистка ключевого слова inline;</li></ul></description></item><item><title>Release 1.11 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.11</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.11</guid><description><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Добавлены проверки:</li><li>использование оператора «-&gt;» вместо метода «data»;</li><li>использовать статические объекты QRegularExpression;</li><li>неожиданное значение перечислителя флага;</li><li>Удалена проверка inefficient-qlist (исправлено в Qt6);</li></ul></description></item><item><title>Release 1.10 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.10</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.10</guid><description><p>В этом выпуске исправлены следующие ошибки:</p><ul><li>Требуется C++17;</li><li>Исправлены ошибки:</li><li>Исправлено ложное срабатывание диагностики -Wclazy-lambda-in-connect.</li><li>Исправлено аварийное завершение в copyable-polymorphic при включённом PCH;</li></ul></description></item><item><title>Release 1.9 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.9</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.9</guid><description><p>В этом выпуске исправлены следующие ошибки:</p><ul><li>Исправлено замедление clazy, появившееся в версии 1.8; теперь он может работать до 4 раз быстрее.</li><li>Диагностика range-loop разделена на range-loop-detach и range-loop-reference;</li><li>Исправлены ложные срабатывания диагностики -Wclazy-connect-non-signal;</li></ul></description></item><item><title>Release 1.8 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.8</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.8</guid><description><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Добавлены проверки:</li><li>Сигнатура qHash для Qt6;</li><li>Исправления заголовков Qt6;</li><li>Исправления устаревшего API Qt6;</li><li>использование chrono в QTimer;</li><li>Исправление для отсутствующего макроса Q_OBJECT;</li></ul></description></item><item><title>Release 1.7 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.7</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.7</guid><description><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Добавлены проверки:</li><li>перегруженный сигнал;</li><li>некорректные подписи JNI;</li><li>сравнение строки с неявным символом;</li><li>Замена `QLatin1String` на `QString` в Qt6;</li><li>heap-allocated-small-trivial-type: уменьшено число ложных срабатываний;</li></ul><p>В этом выпуске исправлены следующие ошибки:</p><ul><li>connect-non-signal: исправлен случай, когда pmf не находился;</li><li>Предупреждение при использовании QLatin1String::arg(int) из-за приведения к QChar;</li></ul><p>Сборка самого clazy ускорилась на 30 %</p></description></item><item><title>Release 1.6 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.6</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.6</guid><description><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Добавлены проверки:</li><li>выделение в куче малых тривиальных типов;</li><li>сигнал с возвращаемым значением;</li><li>qproperty-type-mismatch, реализовано Jean-Michaël Celerier.</li></ul><p>Удалён уровень 3. Все проверки этого уровня перенесены в ручной режим. Их одновременное включение не имеет смысла.</p><p>Каждый из них должен быть тщательно проанализирован.</p><p>Минимальная версия LLVM увеличена до 5.0</p><p>В Clazy больше не выполняется прямая перезапись файлов, чтобы избежать конфликтов при одновременном изменении одного и того же заголовка.</p><p>Теперь Clazy экспортирует файл YAML с заменой, который можно применить с помощью clang-apply-replacements.</p><p>Так же, как это делает любой другой инструментарий clang.</p><p>Теперь для включения перезаписи кода используется параметр: -Xclang -plugin-arg-clazy -Xclang export-fixes для clang</p><p>или -export-fixes=somefile.yaml для clazy-standalone</p><p>Удалены все остальные аргументы и переменные окружения fixit.</p><p>Благодарим Christian Gagneraud за вклад в создание экспорта yaml для исправлений!</p><p>В этом выпуске исправлены следующие ошибки:</p><ul><li>Исправлены регрессии в LLVM 9.0;</li><li>Инфраструктура быстрого исправления была полностью переработана;</li></ul></description></item><item><title>Release 1.5 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.5</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.5</guid><description><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Добавлены проверки:</li><li>Ошибка в директиве препроцессора #ifndef/#define.</li><li>нижний регистр в имени типа QML;</li><li>qrequiredresult-candidates</li><li>Новые автоматические исправления;</li><li>В анализаторе range-loop реализована поддержка добавления отсутствующих ссылок или константных ссылок;</li><li>Цикл range-loop теперь поддерживает добавление qAsConst();</li><li>проверка «function-args-by-ref» теперь добавляет отсутствующие ссылки или константные ссылки (экспериментально);</li><li>Добавлена переменная окружения CLAZY_FIXIT_SUFFIX;</li></ul><p>Удалена поддержка малоиспользуемого параметра «-DCLAZY_BUILD_UTILS_LIB» для упрощения файла CMakeLists.txt.</p><p>Переименован плагин clazy с «ClangLazy.so» на «ClazyPlugin.so».</p><p>fully-qualified-moc-types теперь предупреждает о возвращаемых значениях слотов и вызываемых методов. Для QML они должны быть полностью квалифицированы.</p><p>В этом выпуске исправлена следующая ошибка:</p><ul><li>Исправлено аварийное завершение (утверждение clang) в функции raw-environment-function;</li></ul></description></item><item><title>Release 1.4 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.4</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.4</guid><description><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Добавлены проверки:</li><li>подключение по названию;</li><li>пропущенный базовый метод;</li><li>qstring-varargs;</li><li>полная квалификация типов MOC.</li><li>Ключевые слова Qt, с включённой функцией автоматического исправления;</li><li>qhash с ключом-указателем на символ;</li><li>неправильное приведение типа qevent;</li><li>статический указатель на функцию-член;</li><li>функция необработанного окружения;</li><li>пустая строка QStringLiteral;</li><li>В auto-unexpected-qstringbuilder добавлена проверка лямбда-выражений, возвращающих QStringBuilder;</li></ul><p>Оптимизация производительности</p><p>Добавлен параметр -header-filter=&lt;regex&gt; для clazy-standalone. Проверяться будут только заголовки, соответствующие регулярному выражению.</p><p>имеют предупреждения, кроме файла .cpp из единицы трансляции, который никогда не исключается.</p><p>Добавлен параметр -ignore-dirs=&lt;regex&gt; для clazy-standalone и эквивалентная ему переменная окружения CLAZY_IGNORE_DIRS.</p><p>Добавлена переменная окружения CRAZY_HEADER_FILTER, реализующая указанную функциональность как для clazy, так и для clazy-standalone.</p><p>Для параметра «unused-non-trivial-variable» добавлена возможность «unused-non-trivial-variable-no-whitelist».</p><p>Добавлена поддержка пользовательских чёрного и белого списков для переменной unused-non-trivial-variable.</p><p>Проверка container-inside-loop теперь выполняется вручную, а не на уровне 2.</p><p>Уровень «Hidden» переименован в «Manual».</p><p>Модуль connect-3arg-lambda теперь предупреждает о передаче лямбда-выражения в QTimer::singleShot() или QMenu::addAction().</p><p>без объекта контекста</p><p>Теперь old-style-connect проверяет также QMenu::addAction() и QMessageBox::open()</p></description></item><item><title>Release 1.3 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.3</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.3</guid><description><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Новые проверки:</li><li>Использование слотов в потоках</li><li>lambda с тремя аргументами в connect;</li><li>Свойство Q_PROPERTY без сигнала NOTIFY;</li><li>виртуальный сигнал;</li><li>переопределённый сигнал;</li><li>Проверка пространства имён в qhash;</li><li>Константные сигналы и слоты;</li><li>уникальное подключение сигнала с помощью лямбда-выражения;</li></ul><p>Проверка missing-qobject-macro перемещена с уровня 1 на уровень 2, так как Q_OBJECT может быть опущен намеренно.</p><p>Добавлен параметр «-only-qt», при котором clazy немедленно прекращает анализ файлов, не относящихся к Qt. Под файлом Qt понимается файл, для которого задан макрос «-DQT_CORE_LIB», что является стандартной практикой в большинстве систем сборки.</p><p>Добавлен параметр «-qt-developer» для сборки Qt с использованием clazy, обеспечивающий соблюдение определённых рекомендаций для Qt. На данный момент их немного, но список будет пополняться.</p></description></item><item><title>Release 1.2 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.2</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.2</guid><description><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Новые проверки:</li><li>Установлен фильтр событий;</li><li>Создание цвета из строкового литерала;</li><li>строгие итераторы;</li><li>Проверка использования функции connect() с нормализацией сигналов и слотов;</li></ul><p>В этом выпуске исправлены следующие ошибки:</p><ul><li>Исполняемый файл clazy-standalone теперь позволяет запускать clazy с использованием базы данных компиляции в формате JSON вместо работы в качестве плагина; это хороший обходной способ, поскольку clang-tidy не поддерживает загрузку внешних модулей (https://github.com/llvm/llvm-project/issues/32086);</li><li>режим совместимости с Qt5: позволяет отключить специфичные для Qt5 проверки, передав параметры -Xclang -plugin-arg-clazy -Xclang qt4-compat;</li><li>возврат данных из временного объекта теперь проверяет приведение временных объектов QByteArray к char* при возврате;</li><li>В модуле «returning-data-from-temporary» теперь проверяются не только операторы возврата, но и присваивания;</li><li>unused-non-trivial-variable теперь предупреждает о неиспользуемых типах QList, QVector и многих других;</li><li>Добавлена поддержка проверок на основе ASTMatchers;</li><li>Поддержка clang 3.7 прекращена из-за несовместимости исходного кода ASTMatchers;</li><li>Использование clazy v1.1 для поддержки clang &gt;= 3.6;</li><li>Библиотека clazylib.so больше не собирается по умолчанию; собирается только плагин ClangLazy.so. Передайте параметр -DCLAZY_BUILD_UTILS_LIB=ON для включения сборки библиотеки утилит, если вы разрабатываете инструменты с использованием вспомогательных функций clazy, что маловероятно;</li><li>Параметр CLAZY_INSTALL_NO_HEADERS удалён. Теперь библиотека утилит и заголовочные файлы устанавливаются либо полностью, либо не устанавливаются вовсе. По умолчанию устанавливаются только плагин и страницы руководства;</li></ul></description></item><item><title>Release 1.1 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.1</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.1</guid><description><p>В этом выпуске добавлены следующие возможности:</p><ul><li>Поддержка macOS и Windows;</li><li>Новые проверки:</li><li>Приведение типа QObject в обработчике дочерних событий;</li><li>Конструктору не передан аргумент родительского класса;</li><li>возврат данных из временного объекта;</li><li>Макросы Qt;</li><li>событие базового класса;</li><li>подключение к несигнальному слоту;</li><li>некорректный вызов сигнала;</li><li>Недословный перевод;</li><li>Исправления:</li><li>clang 4.0;</li><li>Qt 5.9;</li><li>Замечания:</li><li>Производительность увеличена на 60%.</li><li>Исправлено множество ложных срабатываний;</li></ul></description></item><item><title>Release 1.0 of Clazy</title><link>https://apps.kde.org/ru/clazy/#1.0</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#1.0</guid><description><p>We released a new version of Clazy!</p></description></item><item><title>Release 0.0.1 of Clazy</title><link>https://apps.kde.org/ru/clazy/#0.0.1</link><pubDate/><guid>https://apps.kde.org/ru/clazy/#0.0.1</guid><description>
Первый выпуск</description></item></channel></rss>