|
| 1 | +# wg-traits sprint 2020-03-31 .. |
| 2 | + |
| 3 | +**Pulled from https://hackmd.io/kYWsWI9IS0213x0qX_1RDw on 2020/5/14** |
| 4 | + |
| 5 | +* Goal: Rustc integration MVP ([tracking issue](https://github.com/rust-lang/wg-traits/issues/18)) |
| 6 | + * Initial integration work landed |
| 7 | + * Made a lot of progress towards extending chalk to support builtin types and traits |
| 8 | + * Currently using some hacks in rustc for some of them |
| 9 | + * Next steps: |
| 10 | + * Extend chalk to be able to represent all of the Rust types [chalk#368](https://github.com/rust-lang/chalk/issues/368) |
| 11 | + * Connect rustc types to the builtin chalk types |
| 12 | + * Auto trait handling for builtin chalk types |
| 13 | + * Handling int and float literal inference variables |
| 14 | + * Region / outlives integration |
| 15 | + * Bound inference variables, perhaps? |
| 16 | +* Goal: Plan for what const integration looks like ([tracking issue](https://github.com/rust-lang/wg-traits/issues/15)) |
| 17 | + * Held [initial meeting](https://zulip-archive.rust-lang.org/144729wgtraits/23279designmeeting20200407.html) and designed a minimal subset |
| 18 | + * Implementing a [pending PR](https://github.com/rust-lang/chalk/pull/393) which uncovered some interesting questions about how to represent constants |
| 19 | + * Next steps: |
| 20 | + * [Resolve `GenericArg` handling](https://github.com/rust-lang/chalk/issues/452) |
| 21 | + * Land [chalk#393](https://github.com/rust-lang/chalk/pull/393) which will offer basic constant support |
| 22 | + * it has been reviewed and we are working out the [list of test cases](https://hackmd.io/Ah_J6nFQSbuUiVOsH5acLg) |
| 23 | + * next steps: |
| 24 | + * incorporate some mention into the chalk book |
| 25 | +* Goal: Move towards alignment of rustc and chalk types, and towards extracting a shared library ([tracking issue](https://github.com/rust-lang/wg-traits/issues/16)) |
| 26 | + * [Doc from meeting](https://hackmd.io/roRq0qHMQ6CyRJxj_FsPSQ) |
| 27 | + * Extended chalk types to support builtin rust types and traits |
| 28 | + * Refactoring of predicates on rustc side to be interned and match chalk conventions [rust-lang/rust#72055](https://github.com/rust-lang/rust/pull/72055) |
| 29 | + * Next steps: |
| 30 | + * Finalize naming conventions and rename as necessary |
| 31 | + * Create issues around rustc side |
| 32 | +* Goal: basic support for impl Trait ([tracking issue](https://github.com/rust-lang/chalk/issues/335)) |
| 33 | + * basic support has landed: [PR #324](https://github.com/rust-lang/chalk/pull/324), :tada: |
| 34 | + * working now on adding better generics support |
| 35 | + * [Next steps](https://github.com/rust-lang/chalk/issues/335#issuecomment-615254659) |
| 36 | +* Goal: progress towards removing leak check in rustc ([tracking issue](https://github.com/rust-lang/rust/issues/59490)) |
| 37 | + * Landed [#70950](https://github.com/rust-lang/rust/pull/70950) which aligns NLL with lexical checker |
| 38 | + * but to truly remove leak check we have to resolve some back-compat interactions |
| 39 | + * Next steps: |
| 40 | + * rustc refactoring to move leak check to occur later, which unblocks lazy norm and a few other changes |
| 41 | + * explore a smarter variant of leak check that takes into account implied bounds and is able to continue accepting wasm-bindgen |
| 42 | +* Goal: exploration and research |
| 43 | + * exploring recursive solver (flodiebold) |
| 44 | + * initial version has landed and been integrated into rust-analyzer |
| 45 | + * Follow-up items: |
| 46 | + * fix coinduction [chalk#399](https://github.com/rust-lang/chalk/issues/399) |
| 47 | + * revisiting the chalk-solve crate structure |
| 48 | + * documenting how it works in chalk-book |
| 49 | + * comparison between it and SLG checker |
| 50 | + * explore converting semantic-to-syntactic equality |
| 51 | + * [draft PR opened](https://github.com/rust-lang/chalk/pull/401) |
| 52 | + * create a chalk file from any given program |
| 53 | + * [draft PR opened](https://github.com/rust-lang/chalk/pull/430) and it's starting to work |
| 54 | +* Goal: increase Chalk performance (very open-ended) |
| 55 | + * Create a set of benchmarks |
| 56 | + * no progress |
| 57 | + * Add tracing support |
| 58 | + * opened a [draft PR](https://github.com/rust-lang/chalk/pull/409) |
| 59 | + * Track memory usage and try to decrease as necessary |
| 60 | + * no progress |
| 61 | +* Goal: add more to Chalk book |
| 62 | + * Added [chalk big picture](http://rust-lang.github.io/chalk/book/#high-level-view-of-how-chalk-works) material |
| 63 | + * Moved content from [rustc-dev-guide](https://rustc-dev-guide.rust-lang.org/traits/chalk-overview.html) |
| 64 | + * Added [table tracking the well-known traits](http://rust-lang.github.io/chalk/book/clauses/well_known_traits.html#current-state) |
| 65 | + * Next steps: |
| 66 | + * glossary and notation for common terms |
| 67 | + * the `?0` notation |
| 68 | + * the `^0` notation |
| 69 | + * the `!0` notation |
| 70 | + * what is a "bound variable", an "inference variable", and a "placeholder variable", and what do they *mean* semantically |
0 commit comments