NireBryce

reality is the battlefield

the first line goes in Cohost embeds

🐥 I am not embroiled in any legal battle
🐦 other than battles that are legal 🎮

I speak to the universe and it speaks back, in it's own way.

mastodon

email: contact at breadthcharge dot net

I live on the northeast coast of the US.

'non-functional programmer'. 'far left'.

conceptual midwife.

https://cohost.org/NireBryce/post/4929459-here-s-my-five-minut

If you can see the "show contact info" dropdown below, I follow you. If you want me to, ask and I'll think about it.


lcnr
@lcnr

Low effort because I don't have the motivation to write an actual blog post.

focus on cleanup

There's a lot of technical debt in Rust, we should deal with it now.

why?

  • Rust is at a point where it will continue to be relevant for a long time1
  • any new feature we add will only have a comparatively small impact as pretty much all core features are already in place
  • cleaning up the implementation will speed up development in the long term
  • the fewer people are currently using Rust, the easier it is to make tiny breaking changes to clean up the language. so do them early
  • by cleaning up current features, we may cause future additions to be unnecessary, keeping the language smaller and consistent
  • having unsound bugs sucks, we should fix those

what?

  • cleanup the type system, mainly focussing on changes necessary to fix issues with the current system
  • cleanup other areas as well
    • provide a better API for our diagnostics, refactor existing diagnostics methods
      • an example is the ObligationCtxt which should make it easier to interact with the trait system for diagnostics.
    • pattern matching and MIR building
    • pretty much every area could use some work I guess, I am not the expert there though
  • close stale tracking issues
    • the feature isn't too important if nothing happened for a while
    • the language changed since then, original reasoning is probably out of date
    • a lot of in-progress work makes it easy to accidentally stabilize stuff with a suboptimal design
  • improve tooling
    • work on the language is getting less impactful over time
    • lots of major improvements still possible on tools though
    • we're at a point where working on rustfmt and cargo is probably far more impactful than working on rustc or the standard library

That's it

There's a bunch of other stuff which is going on but I don't have anything useful to add there. I either don't care too much or trust the people who are already thinking about these things.


  1. until it is replaced by a language which is even better at combining performance, control, and safety.