github / stack-graphs

Rust implementation of stack graphs
https://docs.rs/stack-graphs/*/stack_graphs/
Apache License 2.0
772 stars 141 forks source link

Python Old DSL -> New DSL #379

Open BekaValentine opened 10 months ago

BekaValentine commented 10 months ago

We should move Python over to the new DSL and remove the old DSL

hendrikvanantwerpen commented 10 months ago

Summary of the work I've done towards this already.

Two PRs exist for the stack graphs repo:

One PR exists on the Aleph repo:

The main difference between old & new DSL to be aware of when making the switch is the effect of graph pruning in the old DSL. Because of the pruning, the rules didn't have to be careful about which identifiers were definitions and which weren't. Pop nodes were created for many reference identifiers, but pruning ensured they never showed up. The new DSL does not prune, so if a pop is created for a reference, it will show up as a result in the UI when clicking the reference! The second stack graphs PR does work to make the rules more precise in that regard, which is important for a good UI experience.