tree 23ff7d675d5618bdbbea37cbe5ada859441a603d
parent 3340922df189bddcbaad17dc3927d51a76bcd5ed
author Travis Cross <tc@traviscross.com> 1744843352 +0000
committer Travis Cross <tc@traviscross.com> 1746030045 +0000

Remove apologies about the Reference

Right now the Reference, in its README and introduction, contains a
number of warnings and caveats that amount to apologies about the
document.  These have outlived their usefulness and should be removed.
The Reference is the reference on Rust.  It's the product of an
enormous amount of careful work by many people.  It's a good document,
and we don't need to apologize about it.

In particular, these apologies don't need to be the very first things
we say about the document.  We don't need to warn people off from it.
Given how we frame it at the moment, a reader could reasonably think,
"well, if that's all its own authors think of this document, why
should I waste my time with it?", and anecdotally, this is something
that I've observed people reflecting back to us.

Let's stop this negative cueing.

Does the Reference have bugs or omissions?  Sure.  It always will.  So
does and will our compiler.  We can simply point people to our issue
tracker in a note; we don't need for this to be a warning, and we
don't need to elaborate.

Do we need to say the Reference is non-normative?  No.  We treat it
with all the care and respect that we would any normative document,
and we have for many years.  We author it in normative language, and
we take care to ensure that the substance of this normative language
accords with normative lang team decisions.  The lang team directly
FCPs changes to the Reference when those changes affect the guarantees
that are made by the language.

Do we need to say that our descriptions of the language are
"informal"?  No, not in general.  We work to describe things as
precisely and correctly as we can.  While such statements might not be
"formal" ones, neither are they "informal".

Do we need to say that it's not a specification?  No.  What is a
specification anyway?  We'd have to answer that before saying that
it's not one.

The Reference is the Reference.  That's all we need to say.  The text
speaks for itself.  Let's remove those things that have outlived their
usefulness to us.
