Skip to content

Resolve Aliased and Constant Vectors #1636

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 52 commits into from
May 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
caa0356
test(resolve): test for vector with alias - #1499
gigalasr Apr 30, 2025
106edac
build(deps): bump vite from 6.2.6 to 6.3.4 in the npm_and_yarn group …
dependabot[bot] Apr 30, 2025
685303b
[skip ci] doc: update generated wiki pages (wiki/Capabilities,wiki/Da…
actions-user Apr 30, 2025
cebb05b
doc: onboarding wiki article and general improvements (#1590)
Ellpeck May 1, 2025
4ef2d21
[skip ci] doc: update generated wiki pages (wiki/Interface,wiki/Linti…
actions-user May 1, 2025
f9ca0c4
perf: try to improve cfg construction and union
EagleoutIce May 1, 2025
285ffe4
[skip ci] doc: update generated wiki pages (wiki/Dataflow Graph,wiki/…
actions-user May 1, 2025
19018bd
feat(cfg): mid marker for `for` loops (#1610)
EagleoutIce May 1, 2025
acecaab
[skip ci] doc: update generated wiki pages (wiki/Interface)
actions-user May 1, 2025
061354c
refactor: fix edquidistant typo (#1611)
EagleoutIce May 2, 2025
4d95918
[skip ci] doc: update generated wiki pages (wiki/Interface)
actions-user May 2, 2025
a46bd49
Improve Capabilities Page Readability (#1612)
EagleoutIce May 2, 2025
5b06ca9
ci: fix label order (#1614)
MaxAtoms May 2, 2025
85b9199
[skip ci] doc: update generated wiki pages (wiki/Interface)
actions-user May 2, 2025
4493dcb
refactor: open capabilities by default (#1617)
EagleoutIce May 2, 2025
e5ff7fe
[skip ci] doc: update generated wiki pages (wiki/Capabilities,wiki/In…
actions-user May 2, 2025
0724007
doc: mention positron extension (#1618)
EagleoutIce May 2, 2025
dd3a86d
[skip ci] doc: update generated wiki pages (wiki/Interface,README)
actions-user May 2, 2025
53cc34b
doc(setup): min node version (#1619)
EagleoutIce May 2, 2025
4046a1e
[skip ci] doc: update generated wiki pages (wiki/Interface,wiki/Onboa…
actions-user May 2, 2025
51dbf1f
doc(readme): fill out readme form (#1620)
EagleoutIce May 2, 2025
b2ce8b6
[skip ci] doc: update generated wiki pages (wiki/Interface,README)
actions-user May 2, 2025
3e68821
refactor: replace basic reporters (#1621)
EagleoutIce May 3, 2025
9bf0dd2
[skip ci] doc: update generated wiki pages (wiki/Interface)
actions-user May 3, 2025
9b3d9d0
feat(lax-source): provide replacement options (#1625)
EagleoutIce May 3, 2025
35ca678
[skip ci] doc: update generated wiki pages (wiki/Interface)
actions-user May 3, 2025
28e2fae
feat-fix: drop all now returns the basename as well (#1626)
EagleoutIce May 3, 2025
74321e6
[skip ci] doc: update generated wiki pages (wiki/Interface)
actions-user May 3, 2025
25cdf94
Ensuring no todo markers on main (#1628)
EagleoutIce May 3, 2025
38642c6
[skip ci] doc: update generated wiki pages (wiki/Interface)
actions-user May 3, 2025
a0eb673
feat-fix: call context and happens before don't need to use the slow …
Ellpeck May 3, 2025
c81942e
[skip ci] doc: update generated wiki pages (wiki/Interface)
actions-user May 3, 2025
94d2eba
Doc: the new CFG (#1631)
EagleoutIce May 5, 2025
8796e40
[skip ci] doc: update generated wiki pages (wiki/Capabilities,wiki/Da…
actions-user May 5, 2025
f124ecd
feat(replacement): add handler for replacement operator - #1499
gigalasr May 6, 2025
017a0a4
feat(builtin-replacement): use handler for replacement operator - #1499
gigalasr May 6, 2025
ec2eb9f
test(events): add tests for side effect handlers - #1499
gigalasr May 6, 2025
875966f
test(resolve): add simple tests for resolve vector - #1499
gigalasr May 6, 2025
c7a9ad4
feat(resolve): resolve simplest cases of vectors - #1499
gigalasr May 6, 2025
d6c10ca
feat(cfg): generics for normalized ast deco (#1635)
EagleoutIce May 6, 2025
3900e7b
[skip ci] doc: update generated wiki pages (wiki/Interface,wiki/Contr…
actions-user May 6, 2025
ef58f05
feat(resolve): vector in vecotr, vector with alias - #1499
gigalasr May 6, 2025
4474c96
refactor(resolve): move alias tracking and resolve to new folder - #1499
gigalasr May 10, 2025
f1283ca
feat(config): add new handler for resolve - #1499
gigalasr May 10, 2025
2423534
feat-fix(apply): shift in anonymous arguments as well
EagleoutIce May 10, 2025
e0ba80e
Merge remote-tracking branch 'origin/main' into 1499-resolve-vector-s…
gigalasr May 10, 2025
af39bd9
Merge remote-tracking branch 'origin/main' into 1499-resolve-vector-s…
gigalasr May 10, 2025
750f33a
Merge remote-tracking branch 'origin/main' into 1499-resolve-vector-s…
gigalasr May 10, 2025
2304e52
refactor(resolve): resolve by id instead of identifier - #1499
gigalasr May 12, 2025
34358e2
refactor(dep-qry): resolve vectors - #1500
gigalasr May 12, 2025
b68e8a4
feat-fix: replacement cleaner
EagleoutIce May 14, 2025
1d0f910
feat-fix(resolve): aliased c function - #1499
gigalasr May 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ For more information on how to clone and work with a repository, please see [Git

## Git-Hooks

Before you commit, please enable the project-specific git-hooks by running:
Before you commit, please enable the project-specific git-hooks. You can do so through the `setup:dev` script as documented in the [onboarding wiki article](https://github.com/flowr-analysis/flowr/wiki/Onboarding), or through the following command:

```shell
git config --local core.hooksPath .githooks/
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/broken-links-and-wiki.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ jobs:
update_page wiki/"Control Flow Graph" wiki:cfg
update_page wiki/"Linting and Testing" wiki:linting-and-testing
update_page wiki/"Core" wiki:core
update_page wiki/"Onboarding" wiki:onboarding
update_page wiki/"FAQ" wiki:faq
update_page README gen:readme

# check for an update in the versions! (including the updated name information)
Expand Down
24 changes: 24 additions & 0 deletions .github/workflows/qa.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,30 @@ jobs:
- name: "👩‍🏫 Run linter"
run: bash .github/workflows/scripts/run-flowr-command.sh lint-local

lint-main:
needs: [ debug ]
name: "👩‍🏫 Linting on Main"
if: ${{ (github.event_name == 'pull_request' && github.event.pull_request.base.ref == 'main') || github.base_ref == 'main' }}
runs-on: ubuntu-22.04
steps:
- name: "🛒 Checkout Repository"
uses: actions/checkout@v4
with:
submodules: true

- name: "🌍 Load Versions to Use"
id: doc-global-versions
run: bash .github/workflows/scripts/global-configuration.sh

- name: "⬇️ Use Node.js"
uses: actions/setup-node@v4
with:
node-version: ${{ env.ACTION_NODE_VERSION }}
registry-url: "https://registry.npmjs.org/"

- name: "👩‍🏫 Run linter"
run: bash .github/workflows/scripts/run-flowr-command.sh lint

test:
needs: [ debug ]
name: "⚗️ Test Suite (coverage)"
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,10 @@ jobs:
r-version: [ '4.4.0', '4.3.2', '4.2.3', '4.0.0', '3.6.0' ]
os: [ ubuntu-latest ]
include:
- os: macos-latest
r-version: '4.4.0'
- os: windows-latest
r-version: '4.4.0'
- r-version: '4.4.0'
os: macos-latest
- r-version: '4.4.0'
os: windows-latest
runs-on: ${{ matrix.os }}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.r-version }}-${{ matrix.os }}
Expand Down
96 changes: 79 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@
[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/eagleoutice/flowr?logo=docker&logoColor=white&label=dockerhub)](https://hub.docker.com/r/eagleoutice/flowr)
[![latest tag](https://badgen.net/github/tag/flowr-analysis/flowr?label=latest&color=purple)](https://github.com/flowr-analysis/flowr/releases/latest)
[![Marketplace](https://badgen.net/vs-marketplace/v/code-inspect.vscode-flowr)](https://marketplace.visualstudio.com/items?itemName=code-inspect.vscode-flowr)
[![Marketplace](https://badgen.net/open-vsx/version/code-inspect/vscode-flowr?label=Positron/Open%20VSX)](https://open-vsx.org/extension/code-inspect/vscode-flowr)
[![DOI](https://zenodo.org/badge/624819038.svg)](https://zenodo.org/doi/10.5281/zenodo.13319290)

_flowR_ is a sophisticated, static [dataflow analyzer](https://en.wikipedia.org/wiki/Data-flow_analysis) for the [R programming language](https://www.r-project.org/).
_flowR_ is a sophisticated, static [dataflow analyzer](https://en.wikipedia.org/wiki/Data-flow_analysis) for the [R programming language](https://www.r-project.org/),
available for [VSCode](https://marketplace.visualstudio.com/items?itemName=code-inspect.vscode-flowr), [Positron](https://open-vsx.org/extension/code-inspect/vscode-flowr), [RStudio](https://github.com/flowr-analysis/rstudio-addin-flowr),
and [Docker](https://hub.docker.com/r/eagleoutice/flowr).
It offers a wide variety of features, for example:

* 🍕 **program slicing**\
Expand Down Expand Up @@ -104,7 +107,7 @@ It offers a wide variety of features, for example:


You can investigate flowR's analyses using the [REPL](https://github.com/flowr-analysis/flowr/wiki/Interface#using-the-repl).
Commands like <span title="Description (Repl Command, starred version): Returns the URL to mermaid.live; Base Command: Get mermaid code for the dataflow graph of R code, start with 'file://' to indicate a file (aliases: :d*, :df*)">`:dataflow*`</span> allow you to view a dataflow graph for a given R script.
Commands like <span title="Description (Repl Command, starred version): Returns the URL to mermaid.live; Base Command: Get mermaid code for the dataflow graph, start with 'file://' to indicate a file (aliases: :d*, :df*)">`:dataflow*`</span> allow you to view a dataflow graph for a given R script.

Let's have a look at the following example:

Expand Down Expand Up @@ -140,7 +143,7 @@ It offers a wide variety of features, for example:


```text
https://mermaid.live/view#base64:eyJjb2RlIjoiZmxvd2NoYXJ0IEJUXG4gICAgMChbXCJgIzkxO1JTeW1ib2wjOTM7IHRlc3RcbiAgICAgICgwKVxuICAgICAgKjEuMS00KmBcIl0pXG4gICAgMShbXCJgIzkxO1JTeW1ib2wjOTM7IHRlc3RmaWxlc1xuICAgICAgKDEpXG4gICAgICAqMS42LTE0KmBcIl0pXG4gICAgMltbXCJgIzkxO1JCaW5hcnlPcCM5MzsgL1xuICAgICAgKDIpXG4gICAgICAqMS4xLTE0KlxuICAgICgwLCAxKWBcIl1dXG4gICAgMyhbXCJgIzkxO1JTeW1ib2wjOTM7IGV4YW1wbGUuUlxuICAgICAgKDMpXG4gICAgICAqMS4xNi0yNCpgXCJdKVxuICAgIDRbW1wiYCM5MTtSQmluYXJ5T3AjOTM7IC9cbiAgICAgICg0KVxuICAgICAgKjEuMS0yNCpcbiAgICAoMiwgMylgXCJdXVxuICAgIDIgLS0+fFwicmVhZHMsIGFyZ3VtZW50XCJ8IDBcbiAgICAyIC0tPnxcInJlYWRzLCBhcmd1bWVudFwifCAxXG4gICAgNCAtLT58XCJyZWFkcywgYXJndW1lbnRcInwgMlxuICAgIDQgLS0+fFwicmVhZHMsIGFyZ3VtZW50XCJ8IDMiLCJtZXJtYWlkIjp7ImF1dG9TeW5jIjp0cnVlfX0=
https://mermaid.live/view#base64:eyJjb2RlIjoiZmxvd2NoYXJ0IEJUXG4gICAgMChbXCJgIzkxO1JTeW1ib2wjOTM7IHRlc3RcbiAgICAgICgwKVxuICAgICAgKjEuMS00KmBcIl0pXG4gICAgMShbXCJgIzkxO1JTeW1ib2wjOTM7IHRlc3RmaWxlc1xuICAgICAgKDEpXG4gICAgICAqMS42LTE0KmBcIl0pXG4gICAgMltbXCJgIzkxO1JCaW5hcnlPcCM5MzsgL1xuICAgICAgKDIpXG4gICAgICAqMS4xLTE0KlxuICAgICgwLCAxKWBcIl1dXG4gICAgYnVpbHQtaW46X1tcImBCdWlsdC1Jbjpcbi9gXCJdXG4gICAgc3R5bGUgYnVpbHQtaW46XyBzdHJva2U6Z3JheSxmaWxsOmxpZ2h0Z3JheSxzdHJva2Utd2lkdGg6MnB4LG9wYWNpdHk6Ljg7XG4gICAgMyhbXCJgIzkxO1JTeW1ib2wjOTM7IGV4YW1wbGUuUlxuICAgICAgKDMpXG4gICAgICAqMS4xNi0yNCpgXCJdKVxuICAgIDRbW1wiYCM5MTtSQmluYXJ5T3AjOTM7IC9cbiAgICAgICg0KVxuICAgICAgKjEuMS0yNCpcbiAgICAoMiwgMylgXCJdXVxuICAgIDIgLS0+fFwicmVhZHMsIGFyZ3VtZW50XCJ8IDBcbiAgICAyIC0tPnxcInJlYWRzLCBhcmd1bWVudFwifCAxXG4gICAgMiAtLi0+fFwicmVhZHNcInwgYnVpbHQtaW46X1xuICAgIGxpbmtTdHlsZSAyIHN0cm9rZTpncmF5O1xuICAgIDQgLS0+fFwicmVhZHMsIGFyZ3VtZW50XCJ8IDJcbiAgICA0IC0tPnxcInJlYWRzLCBhcmd1bWVudFwifCAzXG4gICAgNCAtLi0+fFwicmVhZHNcInwgYnVpbHQtaW46X1xuICAgIGxpbmtTdHlsZSA1IHN0cm9rZTpncmF5OyIsIm1lcm1haWQiOnsiYXV0b1N5bmMiOnRydWV9fQ==
```


Expand All @@ -162,6 +165,9 @@ It offers a wide variety of features, for example:
(2)
*1.1-8*
(0, 1)`"]]
built-in:_-["`Built-In:
#60;#45;`"]
style built-in:_- stroke:gray,fill:lightgray,stroke-width:2px,opacity:.8;
4{{"`#91;RNumber#93; 1
(4)
*2.12*`"}}
Expand Down Expand Up @@ -208,14 +214,23 @@ It offers a wide variety of features, for example:
(18)
*6.14-16*
(16, 17)`"]]
built-in:-["`Built-In:
#45;`"]
style built-in:- stroke:gray,fill:lightgray,stroke-width:2px,opacity:.8;
19[["`#91;RExpressionList#93; (
(19)
*6.13*
(18)`"]]
built-in:_["`Built-In:
(`"]
style built-in:_ stroke:gray,fill:lightgray,stroke-width:2px,opacity:.8;
20[["`#91;RBinaryOp#93; #58;
(20)
*6.11-17*
(13, 19)`"]]
built-in::["`Built-In:
#58;`"]
style built-in:: stroke:gray,fill:lightgray,stroke-width:2px,opacity:.8;
24(["`#91;RSymbol#93; sum
(24, :may:36+)
*7.10-12*`"])
Expand Down Expand Up @@ -265,12 +280,18 @@ It offers a wide variety of features, for example:
(36)
*6.1-9.1*
(12, 20, 35)`"]]
built-in:for["`Built-In:
for`"]
style built-in:for stroke:gray,fill:lightgray,stroke-width:2px,opacity:.8;
38{{"`#91;RString#93; #34;Sum#58;#34;
(38)
*11.5-10*`"}}
40(["`#91;RSymbol#93; sum
(40)
*11.13-15*`"])
built-in:sum["`Built-In:
sum`"]
style built-in:sum stroke:gray,fill:lightgray,stroke-width:2px,opacity:.8;
42{{"`#91;RString#93; #34;
#34;
(42)
Expand All @@ -279,6 +300,9 @@ It offers a wide variety of features, for example:
(44)
*11.1-22*
(38, 40, 42)`"]]
built-in:cat["`Built-In:
cat`"]
style built-in:cat stroke:gray,fill:lightgray,stroke-width:2px,opacity:.8;
46{{"`#91;RString#93; #34;Product#58;#34;
(46)
*12.5-14*`"}}
Expand All @@ -297,87 +321,121 @@ It offers a wide variety of features, for example:
0 -->|"defined-by"| 2
2 -->|"argument"| 1
2 -->|"returns, argument"| 0
2 -.->|"reads"| built-in:_-
linkStyle 4 stroke:gray;
3 -->|"defined-by"| 4
3 -->|"defined-by"| 5
5 -->|"argument"| 4
5 -->|"returns, argument"| 3
5 -.->|"reads"| built-in:_-
linkStyle 9 stroke:gray;
6 -->|"defined-by"| 7
6 -->|"defined-by"| 8
8 -->|"argument"| 7
8 -->|"returns, argument"| 6
8 -.->|"reads"| built-in:_-
linkStyle 14 stroke:gray;
9 -->|"defined-by"| 10
9 -->|"defined-by"| 11
11 -->|"argument"| 10
11 -->|"returns, argument"| 9
11 -.->|"reads"| built-in:_-
linkStyle 19 stroke:gray;
12 -->|"defined-by"| 20
16 -->|"reads"| 9
18 -->|"reads, argument"| 16
18 -->|"reads, argument"| 17
18 -.->|"reads"| built-in:-
linkStyle 24 stroke:gray;
19 -->|"returns, argument"| 18
19 -.->|"reads"| built-in:_
linkStyle 26 stroke:gray;
20 -->|"reads, argument"| 13
20 -->|"reads, argument"| 19
20 -.->|"reads"| built-in::
linkStyle 29 stroke:gray;
24 -->|"reads"| 0
24 -->|"reads"| 23
24 -->|"CD-True"| 36
linkStyle 25 stroke:gray,color:gray;
linkStyle 32 stroke:gray,color:gray;
25 -->|"reads"| 12
25 -->|"CD-True"| 36
linkStyle 27 stroke:gray,color:gray;
linkStyle 34 stroke:gray,color:gray;
26 -->|"reads, argument"| 24
26 -->|"reads, argument"| 25
26 -.->|"reads"| built-in:_
linkStyle 37 stroke:gray;
26 -->|"CD-True"| 36
linkStyle 30 stroke:gray,color:gray;
linkStyle 38 stroke:gray,color:gray;
27 -->|"reads"| 6
27 -->|"CD-True"| 36
linkStyle 32 stroke:gray,color:gray;
linkStyle 40 stroke:gray,color:gray;
28 -->|"reads, argument"| 26
28 -->|"reads, argument"| 27
28 -.->|"reads"| built-in:_
linkStyle 43 stroke:gray;
28 -->|"CD-True"| 36
linkStyle 35 stroke:gray,color:gray;
linkStyle 44 stroke:gray,color:gray;
23 -->|"defined-by"| 28
23 -->|"defined-by"| 29
29 -->|"argument"| 28
29 -->|"returns, argument"| 23
29 -.->|"reads"| built-in:_-
linkStyle 49 stroke:gray;
29 -->|"CD-True"| 36
linkStyle 40 stroke:gray,color:gray;
linkStyle 50 stroke:gray,color:gray;
31 -->|"reads"| 3
31 -->|"reads"| 30
31 -->|"CD-True"| 36
linkStyle 43 stroke:gray,color:gray;
linkStyle 53 stroke:gray,color:gray;
32 -->|"reads"| 12
32 -->|"CD-True"| 36
linkStyle 45 stroke:gray,color:gray;
linkStyle 55 stroke:gray,color:gray;
33 -->|"reads, argument"| 31
33 -->|"reads, argument"| 32
33 -.->|"reads"| built-in:_
linkStyle 58 stroke:gray;
33 -->|"CD-True"| 36
linkStyle 48 stroke:gray,color:gray;
linkStyle 59 stroke:gray,color:gray;
30 -->|"defined-by"| 33
30 -->|"defined-by"| 34
34 -->|"argument"| 33
34 -->|"returns, argument"| 30
34 -.->|"reads"| built-in:_-
linkStyle 64 stroke:gray;
34 -->|"CD-True"| 36
linkStyle 53 stroke:gray,color:gray;
linkStyle 65 stroke:gray,color:gray;
35 -->|"argument"| 29
35 -->|"returns, argument"| 34
35 -.->|"reads"| built-in:_
linkStyle 68 stroke:gray;
35 -->|"CD-True"| 36
linkStyle 56 stroke:gray,color:gray;
linkStyle 69 stroke:gray,color:gray;
36 -->|"reads, argument"| 12
36 -->|"reads, argument"| 20
36 -->|"argument, non-standard-evaluation"| 35
36 -.->|"reads"| built-in:for
linkStyle 73 stroke:gray;
40 -->|"reads"| 0
40 -->|"reads"| 23
40 -.->|"reads"| built-in:sum
linkStyle 76 stroke:gray;
44 -->|"argument"| 38
44 -->|"reads, argument"| 40
44 -->|"argument"| 42
44 -.->|"reads"| built-in:cat
linkStyle 80 stroke:gray;
48 -->|"reads"| 3
48 -->|"reads"| 30
52 -->|"argument"| 46
52 -->|"reads, argument"| 48
52 -->|"argument"| 50
52 -.->|"reads"| built-in:cat
linkStyle 86 stroke:gray;
```


(The analysis required _22.08 ms_ (including parse and normalize, using the [r-shell](https://github.com/flowr-analysis/flowr/wiki/Engines) engine) within the generation environment.)
(The analysis required _22.6 ms_ (including parse and normalize, using the [r-shell](https://github.com/flowr-analysis/flowr/wiki/Engines) engine) within the generation environment.)



Expand All @@ -392,12 +450,16 @@ It offers a wide variety of features, for example:

If you want to use flowR and the features it provides, feel free to check out the:

- [Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=code-inspect.vscode-flowr): provides access to flowR directly in VS Code (or [vscode.dev](https://vscode.dev/))
- [Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=code-inspect.vscode-flowr)/[Positron](https://open-vsx.org/extension/code-inspect/vscode-flowr): provides access to flowR directly in VS Code and Positron (or [vscode.dev](https://vscode.dev/))
- [RStudio Addin](https://github.com/flowr-analysis/rstudio-addin-flowr): integrates flowR into [RStudio](https://posit.co/downloads/)
- [R package](https://github.com/flowr-analysis/flowr-r-adapter): use flowR in your R scripts
- [Docker image](https://hub.docker.com/r/eagleoutice/flowr): run flowR in a container, this also includes [flowR's server](https://github.com/flowr-analysis/flowr/wiki/Interface#communicating-with-the-server)
- [NPM package](https://www.npmjs.com/package/@eagleoutice/flowr): include flowR in your TypeScript and JavaScript projects


If you are already using flowR and want to give feedback, please consider filling out our [feedback form](https://docs.google.com/forms/d/e/1FAIpQLScKFhgnh9LGVU7QzqLvFwZe1oiv_5jNhkIO-G-zND0ppqsMxQ/viewform).


## ⭐ Getting Started

To get started with _flowR_ and its features, please check out the [Overview](https://github.com/flowr-analysis/flowr/wiki/Overview) wiki page.
Expand Down Expand Up @@ -427,7 +489,7 @@ as well as the deployed [code documentation](https://flowr-analysis.github.io/fl

## 🚀 Contributing

We welcome every contribution! Please check out the [contributing guidelines](https://github.com/flowr-analysis/flowr/tree/main/.github/CONTRIBUTING.md) for more information.
We welcome every contribution! Please check out the [developer onboarding](https://github.com/flowr-analysis/flowr/wiki/Onboarding) section in the wiki for all the information you will need.

### Contributors

Expand Down
Loading