2019 Roadmap Progress?

[Sorry I fat-fingered the post button before finishing]

We did not seem to get much feedback from the compiler team beyond nnethercote's post (which is awesome and much needed btw), but here are some things I have picked up via lurking:

  • Infra:

  • Parsing and lexing:

  • Macros:

    • petrochenkov been steadily reducing technical debt, with lots of progress made on unifying proc_macros and macro_rules and on hygiene
  • Type system:

    • Const generics is making steady progress: report
    • Niko is working on lazy normalization and universes, which should unblock a ton of other stuff: https://github.com/rust-lang/rust/pull/65232
    • Chalk made a lot of progress earlier, and it seems that effort is being redoubled now
  • Borrow checker

  • MIR

    • Many refactorings have happened here that will enable more powerful analyses and more MIR optimizations later (e.g. Place 2.0). I'm not sure of all the details here, but better MIR optimization means we give LLVM better IR, which means faster codegen
  • Const eval

    • A new dataflow framework is currently in progress that will enable more things in const fns.
  • Codegen

    • Now using LLVM 9. I believe this includes a bunch of fixes that make it possible for us to communicate more info to LLVM. Not really sure of the details though
  • Parallel compilation

    • A lot of auditing and code review has happened here, and a plan has been roughly established for moving forward in a data-driven manner. There is still a long road ahead, but progress is being made, especially in the form of refactorings and design meetings
  • async/await MVP is shipping in November: https://blog.rust-lang.org/inside-rust/2019/10/07/AsyncAwait-WG-Focus-Issues.html

  • There have been a ton of other things (way too many to remember)

    • most of the working groups seem to be making some sort of progress
    • Tons of bugs fixed and lots of tech debt paid down.
    • miri continues to make progress and is becoming a useful tool for checking soundness of unsafe code
    • rust-analyzer continues to make progress including the integration of chalk and making macros work (roughly)
    • several design meetings (which you can find on zulip)
    • the Inside Rust blog started: https://blog.rust-lang.org/inside-rust/
42 Likes