CodeQL: the libraries and queries that power security researchers around the world, as well as code scanning in GitHub Advanced Security
Перейти к файлу
Jonas Jensen 66e7c26d4e C++: Replace FastTC with iteration in ignoreExpr
Before, `ignoreExprAndDescendants` and its related predicates had this
timing on Wireshark.

    #TranslatedElement::getRealParent#ffPlus#swapped ......... 25.7s
    TranslatedElement::ignoreExprAndDescendants#f ............ 16.9s
    TranslatedElement::getRealParent#ff ...................... 7.2s
    TranslatedElement::ignoreExpr#f .......................... 4.8s
    TranslatedElement::ignoreExpr#f#antijoin_rhs ............. 3.2s
    TranslatedElement::getRealParent#ff_10#higher_order_body . 2.2s

After, it looks like this

    TranslatedElement::ignoreExprAndDescendants#f ............ 23.4s (executed 9 times)
    TranslatedElement::getRealParent#ff ...................... 6.3s
    TranslatedElement::ignoreExpr#f#antijoin_rhs ............. 4.8s
    TranslatedElement::ignoreExpr#f .......................... 3.7s
    TranslatedElement::getRealParent#ff_10#join_rhs .......... 2.5s
    project#TranslatedElement::getRealParent#ff .............. 1.3s
2019-02-03 16:55:12 +01:00
change-notes Merge pull request #840 from esben-semmle/js/propagate-sound-avalue 2019-02-01 09:23:43 +00:00
config C++: Remove infeasible edges to reachable blocks 2018-12-14 12:13:22 -08:00
cpp C++: Replace FastTC with iteration in ignoreExpr 2019-02-03 16:55:12 +01:00
csharp Merge pull request #759 from calumgrant/cs/interface-tostring 2019-01-31 12:03:49 -08:00
docs Merge pull request #581 from jf205/metadata-guide 2018-12-12 12:55:20 +00:00
java Update link text 2019-01-30 09:44:07 +00:00
javascript Merge pull request #839 from asger-semmle/field-propwrite 2019-02-01 10:56:25 +00:00
python Merge pull request #849 from jf205/locations 2019-01-30 11:06:22 +00:00
.editorconfig Normalize all text files to LF 2018-09-23 16:24:31 -07:00
.gitattributes .gitattributes: DLLs are binary 2018-11-30 18:05:02 +00:00
.gitignore Don't .gitignore .vs/VSWorkspaceSettings.json 2018-09-26 15:52:44 +02:00
.lgtm.yml Update lgtm.yml file to exclude Python source in query and test folders. 2018-11-20 14:57:36 +00:00
CODEOWNERS C++: Add C++ analysis team to CODEOWNERS 2018-10-24 11:58:37 +02:00
CODE_OF_CONDUCT.md Introduce code of conduct 2018-08-07 12:19:02 +01:00
CONTRIBUTING.md Update CONTRIBUTING.md and README.md to link the the QL Style Guide. 2018-08-20 11:06:22 +01:00
COPYRIGHT QL code and tests for C#/C++/JavaScript. 2018-08-02 17:53:23 +01:00
LICENSE QL code and tests for C#/C++/JavaScript. 2018-08-02 17:53:23 +01:00
README.md Update CONTRIBUTING.md and README.md to link the the QL Style Guide. 2018-08-20 11:06:22 +01:00

README.md

Semmle QL

This open source repository contains the standard QL libraries and queries that power LGTM, and the other products that Semmle makes available to its customers worldwide.

How do I learn QL and run queries?

LGTM has extensive documentation on getting started with writing QL. You can use the interactive query console or the QL for Eclipse plugin to try out your queries on any open-source project that's currently being analyzed.

Contributing

We welcome contributions to our standard library and standard checks. Do you have an idea for a new check, or how to improve an existing query? Then please go ahead and open a pull request! Before you do, though, please take the time to read our contributing guidelines and QL style guide.

License

The LGTM queries are licensed under Apache License 2.0 by Semmle.