Loading...
NLL: Migration + Retrospective
Audience
NLL developers primarily
Key People
RalfJung
, MatthewJasper, pnkfelix
When
T
uesday, 14:00-15:00
Where
Gainsboro
Meeting Style
D
iscussion
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
Please turn on JavaScript to use Paper in all of its awesomeness. ^_^
Notes