[go: up one dir, main page]

Skip to content
Screenshot of Clazy
Clang კომპილატორის დამატება, რომელიც Qt-ის საუკეთესო პრაქტიკის გათვალისწინებით გაჩვენებთ გაფრთხილებებს.
Install on
Linux
This button only works with Discover and other AppStream application stores. You can also use your distribution’s package manager.

Releases RSS

1.17.1 2026-03-22

This release fixes the following bug:

  • fully-qualified-moc-types: Fix false positive regression for pointer/reference types in generics.
1.16.1 2026-03-22

This is a patch release to fix QtCreator integration issues and

compatibility with new Qt versions. This release supports LLVM versions 19 to 21.

This release fixes the following bugs:

  • Diagnostics are always emitted even if they contain no fixit. This is used
  • for integration in IDEs where the clazy process writes a YAML file containing
  • the messages, ranges and optionally fixits
  • Adjust readlock-detaching check to work properly with Qt 6.11 changes
1.17 2026-02-15

ამ რელიზში გასწორდა შემდეგი ხარვეზები:

  • გასწორდა non-pod-static შემოწმება, რომელსაც კონტეინერის თითოეული ჩანაწერისთვის გაფრთხილება გამოჰქონდა
  • გასწორდა შემთხვევა, როცა use-arrow-operator-instead-of-data ცრუ დადებით მნიშვნელობებს იძლეოდა, როცა ხდებოდა მნიშვნელობის გადაყვანა
  • detaching-temporary-ისთვის QVariant თეთრ სიაში არ იქნება. QVariant::toString მოგაწვდით QString-ს, რომელიც მოხსნილი არაა
  • დროებით მოხსნის თვისების შემოწმების პირობები, როცა ჯაჭვში ორზე მეტი მეთოდის გამოძახებაა
  • გასწორდა დროებით მოხსნის/წევრის მოხსნის საიმედოობა ოპერატორის გამოძახებების შუალედებისთვის
  • QT_NAMESPACE-ის გამოყენებისას clazy სწორად ამუშავებს Qt-ის კლასებს, რომლებიც მითითებული სახელების სივრცეშია
  • გასწორდა მეთოდის არასწორი ჩანაცვლება ფუნქციისთვის QMap::operator[]
  • პროექტი ახლა LLVM22-ით კომპილირდება. ასევე გასწორდა შემოწმებები qhash-namespace, fully-qualified-moc-types და old-style-connect
  • გასწორდა შემოწმება readlock-detaching Qt 6.11-ის ცვლილებებთან სწორად სამუშაოდ
  • qstring-ref გადატანილია manuallevel-ში, რადგან ის Qt6-თან თავსებადი არაა

ეს რელიზი ამატებს შემდეგ ფუნქციას:

  • ახალი შემოწმებები: - compare-member-check: ამოწმებს, იყენებენ შემოწმების ოპერატორები კლასის ყველა წევრ ცვლადს, თუ არა.

კომპილაციისთვის ახლა აუცილებელია C++20

qt6-\*-ის გადატანის შემოწმებები მოცილებულია

1.16 2025-09-03

ამ რელიზში გასწორდა შემდეგი ხარვეზები:

  • unused-result-check: გასწორდა ავარიული დასრულება, როცა მეთოდის აღწერის ამოხსნა შეუძლებელია
  • use-chrono-in-qtimer: გასწორდა ავარიული დასრულება წინასწარ დაკომპილებული თავსართების გამოყენებისას
  • qt6-qhash-signature: შემოწმება გარდაქმნებისთვის უფრო მართებული ლოგიკის გამოსაყენებლად შეიცვალა და გასწორდა ავარია გამონაკლის შემთხვევებში
  • დარწმუნდით, რომ clang21 clazy-სთან გამართულად მუშაობს და ისეთივე ხაზის/ასოს ნომერს აბრუნებს, როგორსაც ადრე (შეუსაბამობები ოპერატორის გამოძახებებთან)
  • non-pod-global-static: გასწორდა ცრუ დადებითი ალამთან Q_IMPORT_PLUGIN Qt-6.10-ში

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • Clazy-ს ინტეგრაცია clang-tidy-ში საბოლოოდ შესაძლებელია — ერთი ბრძანება სამართავად
  • ყველა მათგანს! ყველა შემოწმების გააქტიურება შესაძლებელია "clazy-<checkname>" გამოყენებით. მაგალითად:
  • `clazy-qstring-arg,clazy-qfileinfo-exists`, ჩაირთო ყველა შემოწმება პროგრამით
  • clazy-* ასევე გაააქტიურებს ხელით შემოწმებებს უფრო დეტალური პარამეტრების გამოყენებაა რეკომენდებული.
  • დამატების ჩატვირთვა შესაძლებელია -load=ClazyClangTidy.so გამოყენებით ამისთვის დამატება
  • უნდა იყოს LD_LIBRARY_PATH-ში. წინააღმდეგ შემთხვევაში შესაძლებელია აბსოლუტური გზის მითითება.
  • isempty-vs-count ახლა უკვე ყველა სცენარისთვის უზრუნველყოფს Fixit-ებს. ასევე, შემთხვევებშიც, სადაც
  • სიგრძე შედარებულია "== 0" "< 1" "> 0" გამოყენებით ახლა უკვე აღირიცხება და გააჩნია Fixit-ები.
  • qt6-\* პორტირების შემოწმებები ახლა უკვე მოძველებულად ითვლება და clazy-ს შემდეგ ვერსიაში ამოღებული იქნება
  • detaching-temporary და detaching-member შემოწმებები უზრუნველყოფს Fixit-ებს იმ მეთოდებისთვის რომლებსაც მუდმივი ანალოგები გააჩნიათ
  • NOLINT/NOLINTNEXTLINE/NOLINTBEGIN/NOLINTEND ყველა მათგანი ახლა უკვე მუშაობს clazy-ში როგორც
  • მოსალოდნელია. ინდივიდუალური clazy შემოწმებების გამორთვა შესაძლებელია "clazy-" გამოყენებისას
  • პრეფიქსი. მაგალითად "NOLINTNEXTLINE(clazy-qfileinfo-exists, clazy-qstring-arg)"
1.15 2025-06-12

ამ რელიზში გასწორდა შემდეგი ხარვეზები:

  • install-event-filter: გასწორდა ავარია, როცა მოცემულ სიღრმეზე შვილი ობიექტი არ არსებობს. ხარვეზი: 464372
  • fully-qualified-moc-types: გასწორდა ჩამონათვალის/ჩამონათვალის კლასის შეფასების ხარვეზი. ხარვეზი: 423780
  • გასწორდა შეცდომა qstring-comparison-to-implicit-char-ში. შეცდომა: 502458
  • fully-qualified-moc-types: გასწორდა ავარია, როცა "std::bitset<int(8)>" მსგავსი გამოსახულებების მქონე სიგნალები გვხვდება
  • გასწორდა შეცდომა qvariant-template-instantiation-შ

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • ახალი შემოწმებები:
  • readlock-detaching
  • მინიმალური Clang/LLVM-ის ვერსია განახლდა 19-მდე
  • clazy-standalone --version git-ის ვერსიას შეიცავს (git describe ბრძანების შედეგს), თუ ის მონიშნული კომიტი არაა
  • დაემატა ნაკლული მეთოდები დროებითი ან წევრი სიების და ასახვების განცალკევების შესამოწმებლად
1.14 2025-04-27

Clazy გაფრთხილებების გამორთვა შესაძლებელია შემდეგი ხაზისთვის. მაგ: clazy:exclude-next-line=check1,check2

Clang 20-ით კომპილაციის მხარდაჭერა

გაიზარდა ზოგიერთი გაფრთხილების შეტყობინების დეტალურობა

ამოწმებს 'function-args-by-value'-ს და 'function-args-by-ref'-ს: გაფრთხილების შეტყობინებისთვის ფუნქციის სახელის და პარამეტრის სახელის დამატება

ამოწმებს 'unused-non-trivial-variable'-ს და 'non-pod-global-static'-ს: გაფრთხილების შეტყობინებისთვის ცვლადის სახელის დამატება

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • ახალი შემოწმებები:
  • qbytearray-conversion-to-c-style
1.13 2024-12-28

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • ახალი შემოწმებები:
  • used-qunused-variable

ამ რელიზში გასწორდა შემდეგი ხარვეზები:

  • qstring-arg შემოწმება მოგაწვდით გასწორებას
  • გასწორდა unused-non-trivial-variable რომ არ გამოაგდოს გაფრთხილება, როცა [[maybe_unused]] დაყენებულია
  • გასწორდა qstring-arg Qt 6.9-ისთვის, რომელიც მალე გამოვა
  • გასწორდა fully-qualified-moc-types-ის ცრუ დადებითი ზოგადი არგუმენტების const მოდიფიკატორისთვის
  • ცრუ დადებითი non-pod-global-static-ის გაფრთხილების გაჩუმება QML მოდულის ინიციალიზაციისთვის
  • გასწორდა ფუნქციის function-args-by-value ცრუ დადებითი რაც კომპილაციის შეცდომას გამოიწვევდა
  • ასლის კონსტრუქტორებში მინიჭების ოპერატორებსა და ტოლობის შემოწმებებში
  • გასწორდა ცრუ დადებითები `Q_EMIT(someSignal())`-ისთვის
1.12 2024-06-30

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • ახალი შემოწმებები:
  • qt-keyword-emit
  • sanitize-inline-keyword
1.11 2022-01-21

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • ახალი შემოწმებები:
  • use-arrow-operator-instead-of-data
  • use-static-qregularexpression
  • unexpected-flag-enumerator-value
  • წაიშალა შემოწმება inefficient-qlist (გასწორდა Qt6-ში)
1.10 2021-07-20

ამ რელიზში გასწორდა შემდეგი ხარვეზები:

  • მოითხოვს: C++17
  • შეცდომების გასწორება:
  • გასწორდა -Wclazy-lambda-in-connect ცრუ-დადებითი
  • გასწორდა ავარიული დასრულება copyable-polymorphic-ში, როცა PCH ჩართული იყო
1.9 2021-01-10

ამ რელიზში გასწორდა შემდეგი ხარვეზები:

  • გასწორდა 1.8 ვერსიაში გაჩენილი clazy-ს შენელება და ახლა 4-ჯერ უფრო სწრაფია.
  • range-loop გაიყო ორად: range-loop-detach და range-loop-reference
  • გასწორდა -Wclazy-connect-non-signal ცრუ დადებითები
1.8 2020-11-22

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • ახალი შემოწმებები:
  • qt6-qhash-signature
  • qt6-header-fixes
  • qt6-deprecated-api-fixes
  • use-chrono-in-qtimer
  • გასწორება missing-qobject-macro-ისთვის
1.7 2020-06-29

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • ახალი შემოწმებები:
  • გადატვირთული სიგნალი
  • არასწორი JNI ხელმოწერები
  • qstring-comparison-to-implicit-char
  • qt6-qlatin1string-to-u
  • heap-allocated-small-trivial-type: ნაკლები ცრუ დადებითი

ამ რელიზში გასწორდა შემდეგი ხარვეზები:

  • connect-non-signal: გასწორდა შემთხვევა, როცა მან pmf ვერ იპოვა
  • qstring-arg გაგაფრთხილებთ QLatin1String::arg(int)-ის გამოყენებისას, რადგან ის მას QChar-ში გადაჰყავს

clazy-ის აგება ახლა 30%-ით უფრო სწრაფია

1.6 2019-10-12

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • ახალი შემოწმებები:
  • heap-allocated-small-trivial-type
  • signal-with-return-value
  • qproperty-type-mismatch, შემოგვწირა Jean-Michaël Celerier-მა

წაიშალა level3: level3-ის ყველა შემოწმება manual დონეზე გადავიდა რადგან ყველას ჩართვას აზრი არ აქვს.

თითოეული დაწვრილებით უნდა განიხილოთ.

LLVM-ის მინიმალური ვერსია აწეულია 5.0-ზე

Clazy აღარ გადააწერს ფაილებს ზედ პირდაპირ, რომ თავიდან აიცილოს იშვიათი შემთხვევა, როცა პარალელური გაშვება იგივე თავსართს ცვლის.

Clazy ახლა yaml ფაილს ჩანაცვლებებით გაიტანს, რომ გადაატაროთ ბრძანებით clang-apply-replacements.

იგივენაირად, როგორც ამას clang აკეთებს.

ახლა გზა, რომლითაც კოდის გადაწერა შეგიძლიათ, ჩართოთ, არის: -Xclang -plugin-arg-clazy -Xclang export-fixes clang-ისთვის

ან -export-fixes=somefile.yaml clazy-standalone-ისთვის

წაიშალა ყველა სხვა fixit არგუმენტი და fixit გარემოს ცვლადი

მადლობა Christian Gagneraud-ს fixit yaml გამტანისთვის!

ამ რელიზში გასწორდა შემდეგი ხარვეზები:

  • გასწორდა რეგრესიები LLVM 9.0-ისთან
  • Fixit-ის ინფრასტრუქტურა სრულად განახლდა
1.5 2019-01-31

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • ახალი შემოწმებები:
  • ifndef-define-typo
  • lowercase-qml-type-name
  • qrequiredresult-candidates
  • ახალი Fixit-ები:
  • range-loop-ს ახლა აქვს ნაკლული refs-ების, ან const-ref-ების დამატების მხარდაჭერა
  • range-loop-ს ახლა qAsConst()-ის დამატების მხარდაჭერა აქვს
  • function-args-by-ref ახლა ამატებს ნაკლულ refs-ებს, ან const-ref-ებს (ექსპერიმენტული)
  • გამოჩნდა CLAZY_FIXIT_SUFFIX გარემოს ცვლადი

წაიშალა ნაკლებად ცნობილი -DCLAZY_BUILD_UTILS_LIB-ის მხარდაჭერა CMakeLists.txt-ის გასამარტივებლად

clazy დამატების სახელი შეიცვალა ClangLazy.so-დან ClazyPlugin.so-ზე

fully-qualified-moc-types ახლა სლოტის/ჩაწოდებად დაბრუნებულ მნიშვნელობებზეც იძლევა გაფრთხილებას, რადგან QML-ისთვის სრული კვალიფიკაციაა საჭირო.

ამ რელიზში გასწორდა შემდეგი ხარვეზები:

  • გასწორდა ავარიული დასრულება (clang assert) ფუნქციაში raw-environment-function
1.4 2018-09-23

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • ახალი შემოწმებები:
  • connect-by-name
  • skipped-base-method
  • qstring-varargs
  • fully-qualified-moc-types
  • qt-keywords, Fixit-ის ჩათვლით
  • qhash-with-char-pointer-key
  • wrong-qevent-cast
  • static-pmf
  • raw-environment-function
  • empty-qstringliteral
  • auto-unexpected-qstringbuilder ახლა ასევე გაგაფრთხილებთ ლამბდებზე, რომლებიც QStringBuilder-ს აბრუნებენ

წარმადობის ოპტიმიზაციები

დაემატა -header-filter=<regex> პარამეტრი clazy-standalone-ისთვის. მხოლოდ თავსართებს, რომლებიც რეგგამოსს დაემთხვევა

ექნებათ გაფრთხილებები, .cpp ფაილების გარდა თარგმნის ერთეულიდან, რომელიც არასდროს გაიფილტრება.

დაემატა -ignore-dirs=<regex> პარამეტრი clazy-standalone-ს და მისი CLAZY_IGNORE_DIRS გარემოს ცვლადის ეკვივალენტი.

დაემატა გარემოს ცვლადი CLAZY_HEADER_FILTER, რომელიც ამატებს ზემორე ფუნქციონალს ორივეს, clazy-ს და clazy-standalone-ს

unused-non-trivial-variable-მა მიიღო პარამეტრი unused-non-trivial-variable-no-whitelist

unused-non-trivial-variable-მა მიიღო user-blacklist-ის და user-whitelist-ის მხარდაჭერა

container-inside-loop ახლა ხელით შემოწმებაა level2-ის მაგიერ

გადაერქვა სახელი HiddenLevel-ს ManualLevel-ად

connect-3arg-lambda ახლა გასცემს გაფრთხილებას QTimer::singleShot(), ან QMenu::addAction() ფუნქციისთვის ლამბდას გადაცემისას

კონტექსტის ობიექტის გარეშე

old-style-connect გაგაფრთხილებთ, თუ QMenu::addAction() და QMessageBox::open() მეტისმეტად დაბალია

1.3 2017-11-26

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • ახალი შემოწმებები:
  • thread-with-slots
  • connect-3arg-lambda
  • qproperty-without-notify
  • virtual-signal
  • overridden-signal
  • qhash-namespace
  • const-signal-or-slot
  • lambda-unique-connection

missing-qobject-macro ახლა პირველი დონის მაგიერ მეორე დონის შემოწმებაა, რადგან ხალხს შეუძლია, Q_OBJECT წინასწარგანზრახულად გამოიძახოს.

დაემატა პარამეტრი -only-qt, რომელიც clazy-ს აიძულებს, ადრეულ ეტაპზევე გამოეთიშოს არა-Qt ფაილებს. ამ მიზნით Qt-ის ფაილად მიიჩნევა ნებისმიერი ფაილი, რომლისთვისაც -DQT_CORE_LIB ფუნქციაა გადაცემული, რაც ჩვეულებრივ აგების სისტემების უმრავლესობაში ხდება.

დაემატა პარამეტრი -qt-developer. როცა მიმდინარეობს Qt-ის აგება clazy-ით, ის გაითვალისწინებს სპეციალურ პარამეტრებს Qt-ისთვის, რომლებიც ახლა ბევრი არაა, მაგრამ სია გაიზრდება.

1.2 2017-07-08

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • ახალი შემოწმებები:
  • install-event-filter
  • qcolor-from-literal
  • strict-iterators
  • connect-not-normalized

ამ რელიზში გასწორდა შემდეგი ხარვეზები:

  • clazy-standalone გამშვები ფაილი საშუალებას იძლევა, clazy გაეშვას JSON კომპილაციის მონაცემთა ბაზაზე დანატების ნაცვლად. clang-tidy-ს არ აქვს გარე მოდულების ჩატვირთვის მხარდაჭერა(https://github.com/llvm/llvm-project/issues/32086), ამიტომ ეს კარგი გამოსავალია.
  • qt-compat რეჟიმი. საშუალებას იძლევა Qt5-ის სპეციფიკური შემოწმებები გაითიშოს -Xclang -plugin-arg-clazy -Xclang qt4-compat პარამეტრების გადაცემით
  • returning-data-from-temporary ახლა დაბრუნებისას ამოწმებს დროებითი QByteArray-ების char*-ში გარდაქმნას
  • returning-data-from-temporary ახლა ამოწმებს მინიჭებებსაც, არა, მხოლოდ, დაბრუნებულ ოპერატორებს
  • unused-non-trivial-variable ახლა გაგაფრთხილებთ გამოუყენებელი QList, QVector და კიდევ ბევრი სხვა ტიპისთვის
  • ASTMatchers-ზე დაფუძნებული შემოწმებების მხარდაჭერა ახლა უკვე ხელმისაწვდომია
  • clang 3.7-ის მხარდაჭერა შეწყდა ASTMatchers-თან წყაროს შეუთავსებლობის გამო.
  • გამოიყენეთ clazy v1.1 clang >= 3.6-ის მხარდაჭერისთვის
  • სტანდარტულად clazylib.so-ის აგება აღარ ხდება და ხდება, მხოლოდ, ClangLazy.so-ის აგება. გამოიყენეთ -DCLAZY_BUILD_UTILS_LIB=ON დამხმარე ბიბლიოთეკის ჩასართავად თუ ხელსაწყოების შესაქმნელად იყენებთ ფუნქციის clazy-ს მოხერხებულობას რაც სავარაუდოდ ასე არ არის.
  • მოცილებულია პარამეტრი CLAZY_INSTALL_NO_HEADERS. ან მოხდება ბიბლიოთეკის utils და თავსართების დაყენება, ან არაფრის. ნაგულისხმევად არაფრის დაყენება ხდება, დამატებისა და სახელმძღვანელოს გვერდების გარდა.
1.1 2017-02-20

ეს რელიზი ამატებს შემდეგ ფუნქციებს:

  • macOS-ის და Windows-ის მხარდაჭერა
  • ახალი შემოწმებები:
  • child-event-qobject-cast
  • ctor-missing-parent-argument
  • returning-data-from-temporary
  • qt-macros
  • base-class-event
  • connect-non-signal
  • incorrect-emit
  • tr-non-literal
  • გასწორებები ვერსიასთან:
  • clang 4.0
  • Qt 5.9
  • შენიშვნები:
  • 60% წარმადობის გაუმჯობესება
  • გასწორდა ბევრი ცდრუდადებითი
1.0 2016-09-12
0.0.1 2015-06-10
პირველი რელიზი