The bug was a kind of typo: using `&` where `%` was intended to
implement a counter wraparound.
This bug is an even more likely candidate to be resopnsible for the
occassional crashes from the DrRacket easter-egg test.
(cherry picked from commit 6d4c25a322)
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
(cherry picked from commit ffb0dd52c5)
Split 'atomic-interior allocation to separate pages from other 'interior
allocation, and do not page-protect 'atomic-interior memory. Otherwise,
atomic-interior memory passed from one place to another --- especially
via the `#:in-original-place?` option on foreign functions --- can crash
due to triggering a write barrier in the wrong place.
Commit c18f6e8d6d, which changed some cross-place arguments to Pango and
Cairo to be 'atomic-interior, exposed the problem.
Some indentation is left bad intentionally to minimize the diff.
Merge to v6.0.1
The intent is to provide a minimal bridge between the current Racket
and one where `(letrec ([x x]) x)` no longer works.
Merge to v6.0.1
(cherry picked from commit 83a573ccd8)
As suggested by Robby and Eli here:
http://lists.racket-lang.org/users/archive/2013-March/056771.html
both `plot-frame' and `plot' (when `plot-new-window?' is #t) now create
frames in the caller's eventspace. Doing so fixes the problem talked
about in that thread, and seems like good behavior overall.
Plots created a separate eventspace because of the issue raised here:
http://lists.racket-lang.org/users/archive/2012-April/051485.html
in which a user was flummoxed by the fact that framed plots don't draw
during read loops in which events can't be processed, and the suggested
solution wasn't easy or obvious. Users may get Plot's old behavior by
(parameterize ([current-eventspace (make-eventspace)])
(plot ...))
which, though still not obvious, is at least easy.
Related to PR 13535: from the user's feedback, plots having their own
eventspaces may cause framed plots to render at the wrong size
initially, and may partly cause them to not redraw when their frame
is resized. Hopefully the eventspace change fixes one or both
problems.
If not, maybe this will: 2d-plot-snip% and 3d-plot-snip%, which
descend from image-snip%, now properly call the superclass method
within their `resize' overrides, so their editors will be notified
of the change and hopefully redraw them.