_version_: Racket version checking
==================================

The version collection contains several version-related pieces that
are used by Racket.  First, the "check.ss" module provides a single
function:

> (check-version)

This procedure checks the currently available version on the Racket
website (doanload.racket-lang.org), and returns a value that indicates
your current state -- one of these:

  * `ok
    You're fine.
  * `(ok-but ,version)
    You have a fine stable version, but note that there is a newer
    alpha version available
  * `(newer ,version)
    You have an old version, please upgrade to `version'
  * `(newer ,version ,alpha)
    You have an old-but-stable version, please upgrade to `version';
    you may consider also the newer alpha version
  * `(error ,message [,additional-info])
    An error occurred, the message is a string that indicates the
    error.
    The third (optional) value is a string that can be shown as the
    system error that happened.  This string will always be
    parenthesized, so `message' is a short error and
    `(string-append message " " additional-info)' is a verbose one.

The second functionality that is provided by this collection is in the
_patchlevel_ module.  This module provides a single value:

> patchlevel

which is an integer that indicates the current patch level.  This is
normally zero, but may be updated by patches to DrRacket.


Finally, the "tool.rkt" makes DrRacket use both features:

* the patchlevel appears as a version `pN' suffix in DrRacket (but the
  binary version as reported by `(version)' is not changed);

* it is possible to periodically check whether a new Racket
  distribution is available for download.
