New Racket version 5.3.0.12.
Use `secref' instead of a direct link to docs.racket-lang.org.
Some web page tweaks.

* The main page's title appears in search results, so use "The Racket
  Language" instead of "Racket".  Additional minor tweaks to a few more
  titles to make them presentable as search results.

* Add a `#:description' keyword to make it easy to add it to pages.  Add
  such texts to the main page, downloads, community, learning, people,
  and mailing list pages.

* Add a <meta name="robots" content="NOODP" /> to the front page, to
  avoid getting the ODP (dmoz) blurb, hopefully the new and improved
  description(s) will be used instead.  (If not, this should be
  reverted.)
Some usual code shuffling for internal definitions.
Add rel="nofollow" to short example links.

The examples make up the majority of the front page, and it turns out
that google used some of these links in "sitelinks" in search result.
These links should be the main entry points, and we ended up having such
gems as "Printf" be there.  They provide a way to "demote" URLS so they
won't show there, but doing that for one link means that another will
pop in (and there's a limit of a 100 such demotions).  So add this in an
attempt to make it not consider them as things that can be used in the
sitelinks.  This might be reverted if it doesn't help.

(Note that this is discouraged as a way to "sculpt pagerank", but the
purpose here is not to affect how they crawl the web pages and make page
reputation flow, but only to cover up for a missing feature that ends up
with horrible sitelinks.  The pages are scanned anyway from the doc
pages.)
Improve resource-files code.

Makes it easy to add more files without more bindings.
More files for all sites.

Two verification files for google/bing website tools, and also add a
no-op robots.txt file to avoid error-log lines.
Update types of string-join and add-between.
fix optimizer for impersonated continuation mark keys

The optimizer can no longer reduce
  (with-continuation-mark _id _v-expr _expr)
to just
  _expr
when _v-expr and _expr are simple enough, because _id
might be bound to a continuation mark key with an
impersonator that checks the result of _v-expr.

The loss of an optimization can have a significant affect on
errortrace of microbenchmarks, such as

 (for ([i (in-range 10000000)])
   i)
misc clean-up
fix problems with references to bindings at higher phases
errortrace: hack to recover `with-continuation-mark' optimization
avoid a compiler warning
BSL and BSL+: fix an error message
fix potential bad interaction of module caching and JIT assumption

The JIT wants to detect calls to functions bound to module-level
variables that are always instantiated to a procedure of a particular
arity, in which case it can avoid some checks.  The problem is that
bytecode and JITted code can be shared via the module cache across
namespaces that use different modules to implement a particular module
path or that enable the JIT differently.  In particular, starting with
one that has a procedure binding and then using one (in a different
namespace) that has a non-procedure binding could lead to a crash.

Defend against this possibility by never treating imported variables
as constant in that sense. The JIT detects imported variables through
a new import map in the prefix.

This change may slow code. My guess is that it will have no
performance impact in practice, due to cross-module inlining,
although I can construct a microbenchmark that slows by 20%.
scribble/eval: remove bogus top-level `namespace-require'
racket/draw: avoid callback-based PNG writing

Doc rendering has been occasionally crashing in Pixman/Cairo. It might
have something to do with a non-atomic callback, so let's try avoiding
that, first. (If that doesn't work, the next step is to avoid using
Cairo in a multi-threaded way, for which this is a first step, too.)
doc clarifications
fix and improve some syntax-error messages for `struct'
added interactions to all but one beginner functions to illustrate what they do