./lang/clang-tools-extra, Extra Clang tools

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 9.0.0, Package name: clang-tools-extra-9.0.0, Maintainer: pkgsrc-users

Extra tools built using Clang's tooling APIs.


Required to run:
[textproc/libxml2] [lang/llvm] [lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: 6977cf7a802a053c57fa74138d3648b563e71e88
RMD160: 43a9fde0f388fe6d021357bb4382bef6d445f279
Filesize: 13215.844 KB

Version history: (Expand)


CVS history: (Expand)


   2019-10-19 15:58:10 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
clang-tools-extra: updated to 9.0.0

9.0.0:
Improvements to clangd
* Background indexing is on by default
When using clangd, it will build an index of your code base (all files listed in \ 
your compile database). This index enables go-to-definition, find-references, \ 
and even code completion to find symbols across your project.
This feature can consume a lot of CPU. It can be disabled using the \ 
--background-index=false flag, and respects -j to use fewer threads. The index \ 
is written to .clangd/index in the project root.

* Contextual code actions
Extract variable, expand auto, expand macro, convert string to raw string. More \ 
to come in the future!

* Clang-tidy warnings are available
These will be produced for projects that have a .clang-tidy file in their source \ 
tree, as described in the clang-tidy documentation.

* Improved diagnostics
Errors from headers are now shown (on the #including line). The message now \ 
indicates if fixes are available. Navigation between errors and associated notes \ 
is improved (for editors that support Diagnostic.relatedInformation).

* Suggested includes
When a class or other name is not found, clangd may suggest to fix this by \ 
adding the corresponding #include directive.

* Semantic highlighting
clangd can push syntax information to the editor, allowing it to highlight e.g. \ 
member variables differently from locals. (requires editor support)
This implements the proposed protocol from \ 
https://github.com/microsoft/vscode-lan … e/pull/367

* Type hierachy
Navigation to base/derived types is possible in editors that support the \ 
proposed protocol from \ 
https://github.com/microsoft/vscode-lan … e/pull/426

* Improvements to include insertion
Only headers with #include-guards will be inserted, and the feature can be \ 
disabled with the --header-insertion=never flag.
Standard library headers should now be inserted more accurately, particularly \ 
for C++ other than libstdc++, and for the C standard library.

* Code completion
Overloads are bundled into a single completion item by default. (for editors \ 
that support signature-help).
Redundant const/non-const overloads are no longer shown.
Before clangd is warmed up (during preamble build), limited identifier- and \ 
index-based code completion is available.

* Format-on-type
A new implementation of format-on-type is triggered by hitting enter: it \ 
attempts to reformat the previous line and reindent the new line. (Requires \ 
editor support).

* Toolchain header detection
Projects that use an embedded gcc toolchain may only work when used with the \ 
corresponding standard library. clangd can now query the toolchain to find these \ 
headers. The compilation database must correctly specify this toolchain, and the \ 
--query-driver=/path/to/toolchain/bin/* flag must be passed to clangd.

* Miscellaneous improvements
Hover now produces richer Markdown-formatted text (for supported editors).
Rename is safer and more helpful, though is still within one file only.
Files without extensions (e.g. C++ standard library) are handled better.
clangd can understand offsets in UTF-8 or UTF-32 through command-line flags or \ 
protocol extensions. (Useful with editors/platforms that don’t speak UTF-16).
Editors that support edits near the cursor in code-completion can set the \ 
textDocument.completion.editsNearCursor capability to true, and clangd will \ 
provide completions that correct . to ->, and vice-versa.

Improvements to clang-tidy

New OpenMP module.
New abseil-duration-addition check.
New abseil-duration-conversion-cast check.
New abseil-duration-unnecessary-conversion check.
New abseil-time-comparison check.
New abseil-time-subtraction check.
New android-cloexec-pipe check.
New android-cloexec-pipe2 check.
New bugprone-branch-clone check.
New bugprone-posix-return check.
New bugprone-unhandled-self-assignment check.
New fuchsia-default-arguments-calls check.
New fuchsia-default-arguments-declarations check.
New google-objc-avoid-nsobject-new check.
New google-readability-avoid-underscore-in-googletest-name check.
New llvm-prefer-isa-or-dyn-cast-in-conditionals check.
New modernize-use-trailing-return-type check.
New objc-super-self check.
New openmp-exception-escape check.
New openmp-use-default-none check.
New readability-convert-member-functions-to-static check.
New alias cert-oop54-cpp to bugprone-unhandled-self-assignment was added.
New alias cppcoreguidelines-explicit-virtual-functions to modernize-use-override \ 
was added.
Added UseAssignment option to cppcoreguidelines-pro-type-member-init
The fuchsia-default-arguments check has been removed.
The google-runtime-int check has been disabled in Objective-C++.
The modernize-use-override now supports OverrideSpelling and FinalSpelling options.
The misc-throw-by-value-catch-by-reference now supports WarnOnLargeObject and \ 
MaxSize options to warn on any large trivial object caught by value.
The Acronyms and IncludeDefaultAcronyms options for the \ 
objc-property-declaration check have been removed.

Improvements to pp-trace
* Added a new option -callbacks to filter preprocessor callbacks. It replaces \ 
the -ignore option.
   2019-08-05 21:06:50 by Adam Ciarcinski | Files touched by this commit (23) | Package updated
Log message:
llvm: updated to 8.0.1

LLVM 8.0.1 is now available! Download it now, or read the release notes.

This release contains bug-fixes for the LLVM 8.0.0 release. This
release is API and ABI compatible with 8.0.0.
   2019-06-02 10:41:18 by Adam Ciarcinski | Files touched by this commit (4) | Package updated
Log message:
clang-tools-extra: updated to 8.0.0

Clang Tools 8.0.0:

Improvements to clangd

clangd now adds namespace qualifiers in code completion, for example, if you \ 
type “vec”, the list of completions will include “std::vector”.

When a global index is available, clangd will use it to augment the results of \ 
“go to definition” and “find references” queries. Global index also \ 
enables global code completion, which suggests symbols that are not imported in \ 
the current file and automatically inserts the missing #include directives.

clangd stores the symbol index on disk in a new compact binary serialization \ 
format. It is 10x more compact than YAML and 40% more compact than gzipped YAML.

clangd has a new efficient symbol index suitable for complex and fuzzy queries \ 
and large code bases (e.g., LLVM, Chromium). This index is used for code \ 
completion, go to definition, and cross-references. The architecture of the \ 
index allows for complex and fuzzy retrieval criteria and sophisticated scoring.

clangd has a new LSP extension that communicates information about activity on \ 
clangd’s per-file worker thread. This information can be displayed to users to \ 
let them know that the language server is busy with something. For example, in \ 
clangd, building the AST blocks many other operations.

clangd has a new LSP extension that allows the client to supply the compilation \ 
commands over LSP, instead of finding compile_commands.json on disk.

clangd has a new LSP extension that allows the client to request fixes to be \ 
sent together with diagnostics, instead of asynchronously.

clangd has a new LSP extension that allows the client to resolve a symbol in a \ 
light-weight manner, without retrieving further information (like definition \ 
location, which may require consulting an index).

Improvements to clang-query

A new command line parameter --preload was added to run commands from a file and \ 
then start the interactive interpreter.

The command q can was added as an alias for quit to exit the clang-query interpreter.

It is now possible to bind to named values (the result of let expressions).

It is now possible to write comments in clang-query code. This is primarily \ 
useful when using script-mode. Comments are all content following the # \ 
character on a line.

The new set print-matcher true command now causes clang-query to print the \ 
evaluated matcher together with the resulting bindings.

A new output mode detailed-ast was added to clang-query. The existing dump \ 
output mode is now a deprecated alias for detailed-ast

Output modes can now be enabled or disabled non-exclusively.

Improvements to clang-tidy

New abseil-duration-comparison check.

Checks for comparisons which should be done in the absl::Duration domain instead \ 
of the float of integer domains.

New abseil-duration-division check.

Checks for uses of absl::Duration division that is done in a floating-point \ 
context, and recommends the use of a function that returns a floating-point \ 
value.

New abseil-duration-factory-float check.

Checks for cases where the floating-point overloads of various absl::Duration \ 
factory functions are called when the more-efficient integer versions could be \ 
used instead.

New abseil-duration-factory-scale check.

Checks for cases where arguments to absl::Duration factory functions are scaled \ 
internally and could be changed to a different factory function.

New abseil-duration-subtraction check.

Checks for cases where subtraction should be performed in the absl::Duration domain.

New abseil-faster-strsplit-delimiter check.

Finds instances of absl::StrSplit() or absl::MaxSplits() where the delimiter is \ 
a single character string literal and replaces with a character.

New abseil-no-internal-dependencies check.

Gives a warning if code using Abseil depends on internal details.

New abseil-no-namespace check.

Ensures code does not open namespace absl as that violates Abseil’s \ 
compatibility guidelines.

New abseil-redundant-strcat-calls check.

Suggests removal of unnecessary calls to absl::StrCat when the result is being \ 
passed to another absl::StrCat or absl::StrAppend.

New abseil-str-cat-append check.

Flags uses of absl::StrCat() to append to a std::string. Suggests \ 
absl::StrAppend() should be used instead.

New abseil-upgrade-duration-conversions check.

Finds calls to absl::Duration arithmetic operators and factories whose argument \ 
needs an explicit cast to continue compiling after upcoming API changes.

New bugprone-too-small-loop-variable check.

Detects those for loops that have a loop variable with a “too small” type \ 
which means this type can’t represent all values which are part of the \ 
iteration range.

New cppcoreguidelines-macro-usage check.

Finds macro usage that is considered problematic because better language \ 
constructs exist for the task.

New google-objc-function-naming check.

Checks that function names in function declarations comply with the naming \ 
conventions described in the Google Objective-C Style Guide.

New misc-non-private-member-variables-in-classes check.

Finds classes that not only contain the data (non-static member variables), but \ 
also have logic (non-static member functions), and diagnoses all member \ 
variables that have any other scope other than private.

New modernize-avoid-c-arrays check.

Finds C-style array types and recommend to use std::array<> / \ 
std::vector<>.

New modernize-concat-nested-namespaces check.

Checks for uses of nested namespaces in the form of namespace a { namespace b { \ 
... }} and offers change to syntax introduced in C++17 standard: namespace a::b \ 
{ ... }.

New modernize-deprecated-ios-base-aliases check.

Detects usage of the deprecated member types of std::ios_base and replaces those \ 
that have a non-deprecated equivalent.

New modernize-use-nodiscard check.

Adds [[nodiscard]] attributes (introduced in C++17) to member functions to \ 
highlight at compile time which return values should not be ignored.

New readability-const-return-type check.

Checks for functions with a const-qualified return type and recommends removal \ 
of the const keyword.

New readability-isolate-decl check.

Detects local variable declarations declaring more than one variable and tries \ 
to refactor the code to one statement per declaration.

New readability-magic-numbers check.

Detects usage of magic numbers, numbers that are used as literals instead of \ 
introduced via constants or symbols.

New readability-redundant-preprocessor check.

Finds potentially redundant preprocessor directives.

New readability-uppercase-literal-suffix check.

Detects when the integral literal or floating point literal has non-uppercase \ 
suffix, and suggests to make the suffix uppercase. The list of destination \ 
suffixes can be optionally provided.

New alias cert-dcl16-c to readability-uppercase-literal-suffix added.

New alias cppcoreguidelines-avoid-c-arrays to modernize-avoid-c-arrays added.

New alias cppcoreguidelines-non-private-member-variables-in-classes to \ 
misc-non-private-member-variables-in-classes added.

New alias hicpp-avoid-c-arrays to modernize-avoid-c-arrays added.

New alias hicpp-uppercase-literal-suffix to readability-uppercase-literal-suffix \ 
added.

The cppcoreguidelines-narrowing-conversions check now detects more narrowing \ 
conversions: - integer to narrower signed integer (this is compiler \ 
implementation defined), - integer - floating point narrowing conversions, - \ 
floating point - integer narrowing conversions, - constants with narrowing \ 
conversions (even in ternary operator).

The objc-property-declaration check now ignores the Acronyms and \ 
IncludeDefaultAcronyms options.

The readability-redundant-smartptr-get check does not warn about calls inside \ 
macros anymore by default.

The readability-uppercase-literal-suffix check does not warn about literal \ 
suffixes inside macros anymore by default.
   2019-04-25 09:33:32 by Maya Rashish | Files touched by this commit (620)
Log message:
PKGREVISION bump for anything using python without a PYPKGPREFIX.

This is a semi-manual PKGREVISION bump.