gmarpons / crisp Goto Github PK
View Code? Open in Web Editor NEWA Clang/LLVM add-on to enforce coding rules
License: GNU General Public License v3.0
A Clang/LLVM add-on to enforce coding rules
License: GNU General Public License v3.0
They have 'note' messages with line/column, but llvm-lit tests need a line number for warnings as well.
... and
bool clang::tooling::runToolOnCode ( clang::FrontendAction * ToolAction,
const Twine & Code,
const Twine & FileName = "input.cc"
)
as explained here: http://clang.llvm.org/docs/LibTooling.html.
See $LLVM_SRC_ROOT/utils/unittest/googletest/.
Exception: casting operators. Include 'clang/Basic/LLVM.h' when necessary.
With no prefix/sufix.
Once http://libcxx.llvm.org/ runs on Debian.
To avoid depending on Boost Libraries.
Maybe a configure/compilation option would be useful.
I looked over the repo but couldn't find them. The examples folder seems to only contain cpp files.
I am excited to find this project, I always want to use DSL to describe coding rules, you said "A high-level declarative DSL to easily write new rules is under development", and I wander how is this project's progress ?
From violation/4 to violation/3.
Add lit.*.cfg files, necessary makefile targets and commentaries on testing code.
On branch get_rules_dir_at_runtime.
error: unable to load plugin
'/home/gmarpons/llvm-cmake-debug/projects/crisp/lib/DeclExtractor/libdeclextractor.so':
'/home/gmarpons/llvm-cmake-debug/projects/crisp/lib/DeclExtractor/libdeclextractor.so:
undefined symbol: _ZN4llvm9DebugFlagE'
make[2]: *** [lib/CrispClangPlugin/CMakeFiles/run_clang_decl_extractor.dir/ClangDeclarations.cpp.o] Error 1
E.g.: llvm::SwitchInst::case_default.
E.g.: in Linux Mint Debian Edition.
cmake scripts are not able to find llvm-config when building in Debug mode if LLVM_PATH is not specified in the build command. llvm-config is correctly found when building in Release mode.
This should make possible to build Crisp in Debug mode using a Release-built compiler (clang), thus significantly improving Debug-mode build time.
See #16.
Maybe some dependecies have not been specified.
It's currently a compilation option.
The future run-time option could be a directory to find data (Prolog files), with install dir as default.
If it was a run-time option, one of the two compilations of PrologEngineWrapper during build could be avoided, at least in Release mode, where both compilations are identical except by its data root directory.
This is going to be implemented directly for CMake build process.
Idea: generate a complete report with warning/notes in violation_candidate, an store it as a prolog fact that violation_llvm retrieves.
Read http://semver.org/.
Next Crisp release is named 0.02, but the following one will be 0.3.0.
See http://clang.llvm.org/docs/LibTooling.html.
JSON file with compilation command for every file can be generated with CMake.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.