As you may or may not know, one of the big work items we are focusing on is overhauling our trait system implementation. The main goals are to be more correct and blisteringly fast. =) Oh, and add a bunch of new features. I am on the lookout for people who want to take part in making this happen. My plan is to periodically post announcements in this thread. I’ll also try to keep the roadmap issue up to date. If you don’t see anything, and you’d like to get involved, please do contact me (e.g. via posting in this thread, or privmsg on IRC or Gitter).
In a nutshell, my plan is to achieve three big goals:
- Factor out trait operations so we can cache them much more effectively.
- Generalize our engine to elegantly handle a wider range of predicates.
- For example, our handling of higher-ranked stuff is quite limited, which not only means that associated types don’t work that well, it also blocks fancy features like Associated Type Constructors.
- Optimize how we handle trait operations internally, maybe even eventually compiling impls and trait definitions into bytecode and executing trait operations in a VM, similar to the Prolog WAM.