Nowadays it is really tolerable.
Thank you. I appreciate the description of what was tried and didn't work or didn't work as well as hoped. We need more of this so I don't waste time (or you don't too).
Interesting insight into the cost of Result-based error handling.
The time to compile a new parser ought to be much less than feeding literally all tokens into a runtime macro-definition interpreter.
Similar infrastructure might help with generics type calculus.
I bet Rust syntax and some complex and divergents ways of typing are major implications on how Rust compile (you can see why, when comparing to Pascal). Also, modules, macros must be, IMHO, major faults here.
The other things: San, Quote, Serde? That stuff must be bring home. At minimum, the bare traits and some basic machinery.
Other thing: The orphan rule means exist a lot of places with redundant code to tie types that cause extra compilation efforts (because n-crates must pull n-crates to impl traits!).
I don't think it's reasonable to expect Rust to explore removing language features though.
- Exist 2 ways to do macros.
- Exist different ways to annotate traits (impl and the long way)
- Alias work, but not everywhere
- The module system is too complicated
- You have pub and pub(crate). The second must have been the default for types on a crate because the way how things are because modules
- The trait system is full of "but" that make it not as simple to use in practice (ej: Is too common traits require extra work because this or that rule in THIS case must be appeased, and also, is where is more obvious things are in disconnect with the rest of the lang)
This as the most obvious.
Similar to how in this article they compiled a whole bunch of rust projects and flagged up the areas that were slow to compile for specific crates, does anyone do analysis that says this dependency shows up in a lot of hot paths when running benchmarks or test code and then get someone to apply this kind of systems level thinking to it?
It seems at least one fix was for a hashing library dependency and may have wider benefits, but surely that applies to more things too?