@eagleoutice/flowr 2.9.9 → 2.9.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -29
- package/abstract-interpretation/absint-visitor.d.ts +16 -14
- package/abstract-interpretation/absint-visitor.js +91 -46
- package/abstract-interpretation/data-frame/shape-inference.d.ts +2 -5
- package/abstract-interpretation/data-frame/shape-inference.js +4 -5
- package/abstract-interpretation/domains/abstract-domain.d.ts +4 -4
- package/abstract-interpretation/domains/abstract-domain.js +8 -8
- package/abstract-interpretation/domains/mapped-abstract-domain.d.ts +12 -5
- package/abstract-interpretation/domains/mapped-abstract-domain.js +47 -23
- package/abstract-interpretation/domains/state-abstract-domain.d.ts +30 -1
- package/abstract-interpretation/domains/state-abstract-domain.js +130 -4
- package/control-flow/cfg-simplification.d.ts +1 -0
- package/control-flow/cfg-simplification.js +1 -0
- package/control-flow/extract-cfg.js +33 -15
- package/control-flow/semantic-cfg-guided-visitor.js +1 -0
- package/dataflow/environments/built-in.d.ts +4 -0
- package/dataflow/environments/built-in.js +17 -5
- package/dataflow/environments/default-builtin-config.d.ts +4 -8
- package/dataflow/environments/default-builtin-config.js +8 -5
- package/dataflow/environments/reference-to-maybe.d.ts +8 -0
- package/dataflow/environments/reference-to-maybe.js +46 -3
- package/dataflow/eval/resolve/alias-tracking.d.ts +1 -1
- package/dataflow/eval/resolve/alias-tracking.js +4 -5
- package/dataflow/eval/resolve/resolve.js +8 -7
- package/dataflow/graph/graph.d.ts +1 -1
- package/dataflow/graph/graph.js +9 -10
- package/dataflow/graph/unknown-side-effect.js +3 -1
- package/dataflow/info.d.ts +4 -0
- package/dataflow/info.js +2 -2
- package/dataflow/internal/linker.d.ts +2 -2
- package/dataflow/internal/linker.js +52 -27
- package/dataflow/internal/process/functions/call/argument/make-argument.js +2 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +15 -6
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +2 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-s-seven-new-generic.js +4 -4
- package/dataflow/internal/process/functions/call/built-in/built-in-source.js +22 -11
- package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +22 -19
- package/dataflow/internal/process/functions/call/known-call-handling.js +0 -2
- package/documentation/wiki-absint.js +7 -8
- package/linter/rules/dead-code.js +1 -1
- package/linter/rules/seeded-randomness.js +1 -1
- package/linter/rules/unused-definition.js +1 -1
- package/package.json +7 -7
- package/project/plugins/file-plugins/files/flowr-description-file.d.ts +4 -0
- package/project/plugins/file-plugins/files/flowr-description-file.js +4 -0
- package/queries/catalog/call-context-query/call-context-query-executor.js +1 -1
- package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +1 -1
- package/queries/catalog/df-shape-query/df-shape-query-format.js +3 -3
- package/r-bridge/lang-4.x/ast/model/processing/decorate.js +23 -17
- package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +18 -17
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +31 -13
- package/statistics/features/supported/data-access/data-access.js +2 -2
- package/util/mermaid/ast.js +1 -1
- package/util/mermaid/dfg.js +6 -5
- package/util/version.js +1 -1
package/util/mermaid/ast.js
CHANGED
|
@@ -31,7 +31,7 @@ function normalizedAstToMermaid(ast, { prefix = 'flowchart TD\n', markStyle = in
|
|
|
31
31
|
}
|
|
32
32
|
if (n.info.parent !== undefined && (!includeOnlyIds || includeOnlyIds.has(n.info.parent))) {
|
|
33
33
|
const context = n.info;
|
|
34
|
-
const roleSuffix = context.role === "
|
|
34
|
+
const roleSuffix = context.role === "el-c" /* RoleInParent.ExpressionListChild */ || context.role === "call-arg" /* RoleInParent.FunctionCallArgument */ || context.role === "param" /* RoleInParent.FunctionDefinitionParameter */ ? `-${context.index}` : '';
|
|
35
35
|
output += ` n${n.info.parent} -->|"${context.role}${roleSuffix}"| n${n.info.id}\n`;
|
|
36
36
|
}
|
|
37
37
|
if (n.type === type_1.RType.ExpressionList && n.grouping !== undefined) {
|
package/util/mermaid/dfg.js
CHANGED
|
@@ -134,6 +134,7 @@ function printEnvironmentToLines(env) {
|
|
|
134
134
|
function vertexToMermaid(info, mermaid, id, idPrefix, mark, includeOnlyIds) {
|
|
135
135
|
const fCall = info.tag === vertex_1.VertexType.FunctionCall;
|
|
136
136
|
const { open, close } = mermaidNodeBrackets(info.tag);
|
|
137
|
+
const origId = id;
|
|
137
138
|
id = (0, mermaid_1.escapeId)(id);
|
|
138
139
|
if (info.environment && mermaid.includeEnvironments) {
|
|
139
140
|
if (info.environment.level > 0 || info.environment.current.memory.size !== 0) {
|
|
@@ -157,17 +158,17 @@ function vertexToMermaid(info, mermaid, id, idPrefix, mark, includeOnlyIds) {
|
|
|
157
158
|
if (mark?.has(id)) {
|
|
158
159
|
mermaid.nodeLines.push(` style ${idPrefix}${id} ${mermaid.markStyle.vertex} `);
|
|
159
160
|
}
|
|
160
|
-
if (
|
|
161
|
+
if (mermaid.rootGraph.unknownSideEffects.values().some(l => (0, node_id_1.normalizeIdToNumberIfPossible)(l) === (0, node_id_1.normalizeIdToNumberIfPossible)(origId))) {
|
|
161
162
|
mermaid.nodeLines.push(` style ${idPrefix}${id} stroke:red,stroke-width:5px; `);
|
|
162
163
|
}
|
|
163
|
-
const edges = mermaid.rootGraph.
|
|
164
|
+
const edges = mermaid.rootGraph.outgoingEdges((0, node_id_1.normalizeIdToNumberIfPossible)(origId));
|
|
164
165
|
if (edges === undefined) {
|
|
165
166
|
mermaid.nodeLines.push(' %% No edges found for ' + id);
|
|
166
167
|
return;
|
|
167
168
|
}
|
|
168
|
-
const artificialCdEdges = (info.cds ?? []).map(x => [x.id, { types: new Set([x.when ? 'CD-True' : 'CD-False']) }]);
|
|
169
|
+
const artificialCdEdges = (info.cds ?? []).map(x => [x.id, { types: new Set([x.when ? 'CD-True' : 'CD-False']), file: x.file }]);
|
|
169
170
|
// eslint-disable-next-line prefer-const
|
|
170
|
-
for (let [target, edge] of [...edges
|
|
171
|
+
for (let [target, edge] of [...edges, ...artificialCdEdges]) {
|
|
171
172
|
if (includeOnlyIds && !includeOnlyIds.has(target)) {
|
|
172
173
|
continue;
|
|
173
174
|
}
|
|
@@ -178,7 +179,7 @@ function vertexToMermaid(info, mermaid, id, idPrefix, mark, includeOnlyIds) {
|
|
|
178
179
|
if (!mermaid.presentEdges.has(edgeId)) {
|
|
179
180
|
mermaid.presentEdges.add(edgeId);
|
|
180
181
|
const style = (0, built_in_1.isBuiltIn)(target) ? '-.->' : '-->';
|
|
181
|
-
mermaid.edgeLines.push(` ${idPrefix}${id} ${style}|"${[...edgeTypes].map(e => typeof e === 'number' ? edge_1.DfEdge.typeToName(e) : e).join(', ')}"| ${idPrefix}${target}`);
|
|
182
|
+
mermaid.edgeLines.push(` ${idPrefix}${id} ${style}|"${[...edgeTypes].map(e => typeof e === 'number' ? edge_1.DfEdge.typeToName(e) : e).join(', ')}${'file' in edge && edge.file ? `, from: ${edge.file}` : ''}"| ${idPrefix}${target}`);
|
|
182
183
|
if (mermaid.mark?.has(id + '->' + target)) {
|
|
183
184
|
// who invented this syntax?!
|
|
184
185
|
mermaid.edgeLines.push(` linkStyle ${mermaid.presentEdges.size - 1} ${mermaid.markStyle.edge}`);
|
package/util/version.js
CHANGED
|
@@ -6,7 +6,7 @@ exports.printVersionInformation = printVersionInformation;
|
|
|
6
6
|
const semver_1 = require("semver");
|
|
7
7
|
const assert_1 = require("./assert");
|
|
8
8
|
// this is automatically replaced with the current version by release-it
|
|
9
|
-
const version = '2.9.
|
|
9
|
+
const version = '2.9.10';
|
|
10
10
|
/**
|
|
11
11
|
* Retrieves the current flowR version as a new {@link SemVer} object.
|
|
12
12
|
*/
|