owned this note changed 2 years ago
Published Linked with GitHub

Polonius review

What do we want to accomplish?

  • EOY 2024 goal and the milestones along the way
  • Resolution to the placeholder question (if possible)

Goals

  • EOY 2023 is we have a location-sensitive prototype that is landed on nightly
    • accepts the tests we want (or important ones)
    • performance is not important
    • don't crash
  • EOY 2024 is "stable on nightly"

  • Rémy's thesis:
    • Most code is simple and doesn't require complex borrow checking w/ location sensitivity
      • or perhaps even NLL
      • evidence: AST borrow check was mostly ok :)

Counterexample (sort of): This is probably fairly common, and was not accepted by AST borrow check, but we don't have to be that dumb

let p = &foo;
if *p {
    foo += 1;
}

Question: how much of a performance regression would we accept?

Jack: How "fast" is NLL today? Is it "as fast as it could be"?

lqd: No, there's room to be faster.

QOTD: "Precise and fast" said nobody ever. -lqd

Less precise analyses

  • Location insensitive is a max of 3% slower
  • Jack: This would be a reasonable floor, we could adopt this as the main solution
  • lqd: our benchmark suite is not complete, though
  • Amanda: could gather data on the cost of increasingly complex analysis

Roadmap

  • Add Niko's graph to the dev guide for onboarding
  • Land PR (location-insensitive analysis behind flag)
  • Gather data on how much sensitivity we need
  • Prototype location sensitive variant (milestone: EOY 2023)
    • Most naive version
  • (a miracle happens)
  • SHIP IT
Select a repo