NLL: Migration + Retrospective
Audience
NLL developers primarily
Key People
RalfJung, MatthewJasper, pnkfelix
When
Tuesday, 14:00-15:00
Where
Gainsboro
Meeting Style
Discussion
Deliverables
  • Review of migration plan
  • Short retrospective on the process
Homework to do before meeting
Agenda
  • Migration plan
  • Current plan is “migrate mode” on 2015 for 1.34 (beta cut on W/C 2018-02-25), 167636

  • Open issues blocking enabling migrate mode
  • Matches (PR #57609)  - change in match lowering to MIR, could be a breaking change.
  • #57170 - promoted aren’t type-checked currently. Has open PR.
  • #58127 - migrate mode is not applying to “nice region errors”. The error is also a completeness issue.
  • #58178 - ~80x perf regression on code generated by GLL.
  • Plan for migration:
  • Fix above issues
  • Make -Zborrowck=migrate -Ztwo-phase-borrows the default on all editions, remove -Zborrowck=ast
  • Cleanup PRs to remove -Zborrowck=compare, -Ztwo-phase-borrows and running MIR type checking outside of NLL.
  • Change compare mode to use -Zborrowck=mir - will show differences in “free region errors”.
  • Triage and fix issues blocking changing to full NLL
  • Enable -Zborrowck=mir on both editions.
  • Possible additional step: change -Zborrowck=migrate warnings to be a lint, make that lint deny-by-default.
  • Potential additional step: fix other peoples projects to address the future-compatibility issues
  • Retrospective

Notes

Migration Plan
  • migration mode:
  • run MIR checker, run also the AST checker:
  • if MIR checker thinks code is ok, accept the code
  • if MIR checker gives error, run AST checker:
  • if AST checker is happy: report warnings
  • else: return MIR errors
  • currently 2018 only
  • first step is to enable for 2015
  • eventually the plan is to go from migration to “full NLL”
  • unknown whether to enable for all editions or not
  • this is a “future compatibility warning” situation, so we would decide to do it based on crater runs etc
  • issues blocking migration
  • (see agenda)
  • how to migrate
  • (see agenda)
  • question mark:
  • would it make sense to have 2018 be “full NLL” before 2015?
  • just for more limited exposure