> rustdoc, being a part of the Rust distribution,
> has the same stability guarantees that Rust does:
> once it gains a feature, it will never go away. We
> (well, not me I don't really work on rustdoc, to be
> clear) need the capacity to try out new features
> without committing to them, same as features in the
> language.
I guess I expect rustdoc and rustc to be much less tightly coupled, so that I could use (for example) stable rustc and nightly rustdoc on the same code.In the current model, I can't use nightly rustdoc features without also using nightly rustc, because the annotations are processed by both systems.
You could imagine an alternate model where rustc stabilizes `#[doc(...)]` and leaves everything in there up to rustdoc's interpretation, and nightly rustdoc might enable new parameters to the #[doc] annotation.
> Neither of these support namespacing though, right?
That's correct. I meant that mostly in terms of "package registries are not a new and untested idea". It's like using strings for file paths: not obviously a bad idea, turns out to be unworkable for obscure reasons, and as a new language Rust got to avoid that particular mistake. It feels like crates.io didn't (/ doesn't) have a similar process of avoiding known mistakes. > This shouldn't change based on if you're using Cargo
> or not; if it's re-building dependencies every time
> you touch a file, that is a bug.
Given a crate with a hundred files, each one fairly independent of the other (i.e. a broad shallow build graph), changing one requires (if I understand rustc correctly) recompiling them all. Otherwise the `crate::` references can't be type-checked.