I'm running into stuck processes via `subprocess`, where the stuck
process is in malloc() for environment variables. I'm not really sure
of the problem, but moving that work before the fork() could
avoid problems related to pages or signal handlers.
Instead of requiring a trip through a page that lists mirrors, show a
direct link to the main-site download.
Also, make alternate distributions like "Racket Minimal" more
accessible.
Use soft links to represent redirections on the web site, where
all redirections needed now are within a site (specifically, the
download site).
Adjust various pages that are essentially for backward
compatibility.
Using site-relative paths that are absolute within the site
avoids problems with files that are moved or used from multiple
contexts, such as "page-not-found.html".
Instead of making separate passes over the expressions,
make a single pass to collect necessary information for
type-checking.
This enables simpler processing of type annotations,
super initialization arguments, and other things.
This commit allows definitions without type annotations
to refer to definitions later in a module that do have
type annotations. For example,
(define (f x) (g 0))
(: g (-> Integer Integer))
(define (g x) (add1 x))
Previously, such cases required shuffling type annotations
and/or definitions around to satisfy the type-checker.
Note that typechecking may still depend on ordering when
there are not enough type annotations in the code.
Closes PR 11544
I tested this using BrowserStack on browsers going back to IE 6 on Windows XP.
It worked everywhere, even though lots of other parts of the (old) web pages didn't.
Use unsafe operations and forced inlining to speed up
MD5 calculation by about x2.25 on 32-bit platforms, and
use all that plus fixnums to speed up by about x7 on
64-bit platforms.
This implementation is still about a factor of 5 off
a C implementation. So, while this was a fun little
experiment, I'll revert this commit and add a binding
to the OpenSSL MD5 implementation, instead.