Skip to content
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

The Flowistry Todo List #33

Open
13 of 22 tasks
willcrichton opened this issue Feb 16, 2022 · 0 comments
Open
13 of 22 tasks

The Flowistry Todo List #33

willcrichton opened this issue Feb 16, 2022 · 0 comments

Comments

@willcrichton
Copy link
Owner

willcrichton commented Feb 16, 2022

Features

  • Windows support
  • Editor support
    • Vim
    • IntelliJ
    • Emacs
  • IDE extension options
    • Disable prefetch at startup
  • Source mapping improvements
    • fn <name> should not be greyed out
    • param: T should not grey out : T when param is relevant
    • return should not be greyed out when return expression is relevant
  • Tests
    • Add integration tests that run Flowistry on real repos (i.e. git clone > cargo flowistry ...)
  • Add feature to fold all code not in a focus region

Bugs

Performance

For reference, here's a subset of slow calls when running the command in rust-lang/rust:

focus compiler/rustc_typeck/src/check/op.rs 21361

Screen Shot 2022-02-16 at 11 13 25 AM

  • Create a benchmark to track Flowistry performance. Should include granular information on which pieces are bottlenecks.
    • Program with many lifetimes (in inputs / in body) to stress alias analysis
    • Program with many instructions to stress infoflow analysis
    • Program with giant data structures to test any code relying on Place::interior_*
  • Possible opportunities for optimization:
    • Loading TyCtxt can take a while, e.g. 2.5s for rustc_typeck. What's causing this? Can it be made more incremental?
    • Polonius is slow, are there any low hanging fruit we can upstream into datafrog?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant