You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: python/ql/lib/CHANGELOG.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
### Minor Analysis Improvements
4
4
5
-
* Added the ability to refer to subscript operations in the API graph. It is now possible to write `response().getMember("cookies").getASubscript()` to find code like `resp.cookies["key"]` (assuming `response` returns an API node for reponse objects).
5
+
* Added the ability to refer to subscript operations in the API graph. It is now possible to write `response().getMember("cookies").getASubscript()` to find code like `resp.cookies["key"]` (assuming `response` returns an API node for response objects).
6
6
* Added modeling of creating Flask responses with `flask.jsonify`.
Copy file name to clipboardExpand all lines: python/ql/lib/change-notes/released/0.6.1.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,5 +2,5 @@
2
2
3
3
### Minor Analysis Improvements
4
4
5
-
* Added the ability to refer to subscript operations in the API graph. It is now possible to write `response().getMember("cookies").getASubscript()` to find code like `resp.cookies["key"]` (assuming `response` returns an API node for reponse objects).
5
+
* Added the ability to refer to subscript operations in the API graph. It is now possible to write `response().getMember("cookies").getASubscript()` to find code like `resp.cookies["key"]` (assuming `response` returns an API node for response objects).
6
6
* Added modeling of creating Flask responses with `flask.jsonify`.
Copy file name to clipboardExpand all lines: python/ql/lib/design.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# The Python libraries
2
2
3
3
The Python libraries are a collection of libraries for analysing Python code.
4
-
Everythng can be imported by importing `python.qll`.
4
+
Everything can be imported by importing `python.qll`.
5
5
6
6
## The analysis layers
7
7
@@ -15,10 +15,10 @@ The analysis is built up in layers. the stack looks like this:
15
15
16
16
## Avoiding non-monotonic recursion
17
17
18
-
Given the many interactivg layers, it is imprtant to decie which predicates are allowed to be mutually recursive in order to avoid non-monotonic recursion when negation is used to express the predicates.
19
-
As an example, we have defined local source as those whcih do not receive local flow. This means that the local flow relation is not allowed to be recursive with anything depending on local sources.
18
+
Given the many interacting layers, it is important to decide which predicates are allowed to be mutually recursive in order to avoid non-monotonic recursion when negation is used to express the predicates.
19
+
As an example, we have defined local source as those which do not receive local flow. This means that the local flow relation is not allowed to be recursive with anything depending on local sources.
20
20
21
-
Some particular reatrictions to keep in mind:
21
+
Some particular restrictions to keep in mind:
22
22
23
23
- Typetracking needs to use a local flow step not including summaries
24
24
- Typetracking needs to use a call graph not including summaries
0 commit comments