This change solves a long-standing problem that reencoded output
was not flushed on exit, especially in the case that the
current output port is reencoded.
This provides approximately 6% speedup on
`racket -l math/scribblings/math.scrbl` and about
14% speedup on the `new-metrics` test.
Mostly this involves threading #f through the whole
of the inference process. There are several new
macros in `typed-racket/infer/fail` which are useful
for comprehensively using Maybe-monad style
programming in Racket. Of particular note is `%`,
which satisfies (% f e ...) => (and e ... (f e ...))
but with the obvious fixes.
This commit also weakens several contracts which
caused the build of DrRacket and/or `math` to fail
when contracts were enabled.
If you have anything user-specific installed, the `raco setup` generates
a user-specific documentation page. Visiting that page sets a cookie
(actually, browser local storage, when supported) that redirects searches
and "top" to the user-specific page.
The main installation-specific page now tells you when a redirect is
in place, and it gives you the option of forgetting it (which is handy
if you've removed your user-specific documentation directory, for example).
database in more convenient ways
- add a "update cache" button to online check syntax error message when
a missing module exn is raised, but there are no suggestions
- add an "update cache" link to the missing module exn printout
Allows universe and world programs to specify which port they want to
communicate on. If omitted, universe and world use the default port
number. This enables multiple universe instances to run on the same
machine. For example:
(require 2htdp/universe 2htdp/image)
;; Run two client-server pairs
(define (run)
(launch-many-worlds (server 8080)
(client 8080)
(server 8081)
(client 8081)))
;; Port -> #f
(define (server p)
(define noop (make-bundle #f '() '()))
(universe #f
(port p)
(on-new (λ (_u _iw) noop))
(on-msg (λ (_u _iw _msg) noop))))
;; Port -> #f
(define (client p)
(big-bang #f
(port p)
(on-tick values)
(to-draw (λ (_) (empty-scene 400 400)))
(register LOCALHOST)))