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
Exception: casting operators. Include 'clang/Basic/LLVM.h' when necessary.
Once http://libcxx.llvm.org/ runs on Debian.
To avoid depending on Boost Libraries.
Maybe a configure/compilation option would be useful.
E.g.: in Linux Mint Debian Edition.
I looked over the repo but couldn't find them. The examples folder seems to only contain cpp files.
From violation/4 to violation/3.
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.
See http://clang.llvm.org/docs/LibTooling.html.
JSON file with compilation command for every file can be generated with CMake.
They have 'note' messages with line/column, but llvm-lit tests need a line number for warnings as well.
Maybe some dependecies have not been specified.
E.g.: llvm::SwitchInst::case_default.
With no prefix/sufix.
... 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/.
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 ?
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.
Read http://semver.org/.
Next Crisp release is named 0.02, but the following one will be 0.3.0.
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.
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
Idea: generate a complete report with warning/notes in violation_candidate, an store it as a prolog fact that violation_llvm retrieves.
Add lit.*.cfg files, necessary makefile targets and commentaries on testing code.
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.