wg-traits sprint.next

Chalk

See also +rustc-chalk integration 

Goal: extend chalk to cover bits of Rust it doesn’t cover
  • trait objects (2 tasks)
  • specialization (many tasks, but an obvious first step)

Goal: validate search strategy
  • predicate order selection (relatively easy)
  • non-enumerable clauses (hard)
  • explain how chalk-engine works — 1 or 2 more zoom calls
  • explain and write-up proposal

Goal: refactoring and improving chalk itself
  • good naming for crates, separate tests and repl out more cleanly
  • API comments — set a goal to have #[deny(missing_docs)]

Goal: rustc-chalk interation improvements
  • get to the bottom of inference failure problems (on this PR)
  • consider some kind of mode to let us run more broadly against run-pass (e.g., disabling region integration, or running in tandem with the existing solver)

Goal: lazy-norm and const
  • get a clear explanation of what goes wrong when we change 

Engineering Tasks
Dep?
Estimated Time
finish domain-goal matching (chalk#216)

“easy-ish”
specialization: adjust lowering rules (chalk#219)

“easy-ish”
add smart predicate order selection hooks (chalk#193)

very easy
experiment in chalk-solve with ordering hooks (?T: Sized)
193
easy
extend chalk-engine with non-enumerable clauses (chalk#217)

hard
run tests with chalk-rustc and try to examine / categorize failures

medium
insert rules “on the fly” for dyn Trait and impl Trait (chalk#218)
216
easy
fix tests on nightly (chalk#220)


Design Tasks


prep mentoring instructions for next time


region constraints-- how to make progress here?


implied bounds, trait objects


Documentation and Learning Tasks


cover


Lazy normalization / consts

Still unclear to me exactly what the problem is around const generics. My attempts to reinstate lazy generics ran aground on what appears to be “half-solutions” in Rustc. Would probably be good to find someone to investigate. Maybe varkor?