- change delim-cont to generate a store as well
- add version of rvm that works with #:satisfying
- add version of list-machine that works with #:satisfying
- new rewrites for the above
- infrastructure to wire all of this together
Instead of just taking the maximum value of any of the baselines in the
beside case, look for the largest difference between the bottom and
the baseline and take the location of that image's baseline as the combined
baseline. If the differences are equal, take the one that is furthest away
from the top
closes PR 14760
it was buggy and fixing the bug makes it identical to write
mode, so instead of that, lets just make there not be a print mode
also, minor edits and Rackety
Generalize `udp-send-to`, etc., to try each possibility of
a resolved address (instead of just the first one) like
`udp-connect!` does. This matters, for example, when using
"localhost" as an address, when the machine resolves "locahost"
to both "127.0.0.1" and "::1", and when the socket is created
for the second one that would be tried.
Also, detect and discard asynchronous ICMP errors.
The right way to render to pixmaps is to create a GLX pixmap wrapper
and render to *that*. Almost nobody does this - including libgtkgl -
and it's almost never a problem. But it causes crashes on my system
in indirect rendering mode.
This commit changes three things.
1. OpenGL on Linux no longer requires libgtkgl, only libGL, which
comes preinstalled on many (most? almost all?) systems.
2. Rendering to pixmaps is done properly, via a GLX pixmap wrapper.
3. Direct rendering is done whenever possible, even for pixmaps.
The closure could be allocated as uninitialized memory with the
expectation that it would be filled right away, but boxing values
to put in the closure could expose the uninitialized memory to
the GC. Fix the problem by boxing before allocating closures.
On 10.9 and later, `racket/gui` now disables App Nap. Otherwise, a
program like
#lang racket/base
(require racket/class
racket/gui/base)
(define T 0.05)
(let loop ([prev (current-inexact-milliseconds)])
(sleep T)
(define now (current-inexact-milliseconds))
(define delta (- now prev))
(when (delta . > . (* 2000 T))
(printf "long wait ~a at ~a\n" delta now))
(loop now))
will start to report a wait of more than 10 seconds, as App Nap
puts the process to sleep.
Relatedly, when `racket/gui` is started via plain `racket` (as opposed
to GRacket), then it starts in "accessory" mode instead of "regular"
mode, which means that the application does not appear in the dock
or have a menu bar. As soon as a frame is shown or a root menu bar
is created, the application is promoted to "regular" mode. This works
in 10.7 and later.