notably enable the generator to actually use things from the
environment but currently only when they are directly in the
environment so, eg:
(-> (-> is-eleven?) is-eleven?)
can't be generated (since the contract system doesn't know
about is-eleven? and also doesn't yet know that it can call
the argument thunk)
I broke uses of LDRD and STRD when compacting the set of registers
used by the JIT. The LDRD and STRD instructions are given one
register explicitly, but they implicitly use the next regsister, too,
and the specified register must be even-numbered. Lining up a pair of
registers requires a little shuffling before and after the operation.
Also, the LDRDI and STRD encodings were broken, and the inlined
fl->fx conversion was not right.
Closes PR 14470
Finishes repair started in 8cbcba8ed so that mouse events can be
intercepted for `combo%` and `choice%` objects. DrRacket's
font preference choice relies on intercepting mouse events
to populate the menu, for example.
Reference counting doesn't seem to work, probably because the
relevant widgets are supposed to be private.
When a GUI program is run through `racket` instead of `gracket`, an
extra dance is needed on recent Mac OS X version (10.9, maybe also 10.8)
to make the Racket-based application take over the menu bar.
This is a nice example of why having #<undefined> as a language value is
generally a bad idea. Because in Scheme/Racket, everything that isn't
`refresh?` argument entirely - it was as if its value was always #t. Any
GUI change that was not meant to cause a refresh caused one anyway: a
silent performance error.
It turns out the test was wrong instead of the implementation.
In particular, it reversed the internal/external name and thus
the error it failed with was correct (though not the intention of
the test).