Racket v8.4 release thread

The release process for v8.4 will begin in about a week.  If you
have any new features that you want in and are relatively close to
to being done, now is a good time to do that.

Upcoming dates:
- 7th:  Branch day, merge window starts
- 15th: Merge window ends, testing starts
- 22nd: Testing ends




Thank you @jbclements !

I think this PR is quite ready to merge: Add the optional parameter try-order? to hash->list. by scolobb · Pull Request #4025 · racket/racket · GitHub , after many very relevant contributions from the people around.

Looks like this is now merged, thanks!

1 Like

Branch day tomorrow, possibly as early as 10 AM PST. Let me know if I should wait!

1 Like
The release process for v8.4 has begun: release checkpoints have
been created for all packages in the main distribution, and release
branches have been created when necessary. You can go on using
`master` branches as usual. The main Racket repo's is now bumped to
v8.4.0.1 (to avoid having two different trees with the same version).

If you have any bug-fixes and changes (including history updates)
that need to go in the release then make sure to specify that in the
commit message by using the word `merge` or `release` or mail the
relevant repo manager [1]) the commit SHA1s. Do not push commits
directly to `release` branches.

Please make sure that code that you're responsible for is as stable
as possible, and let me know if there is any new work that should
not be included in this release.


The time between now and the end of the merge window is for fixing
new errors that prevent proper functioning of major components and
that show up during the preparation for a release. You can also
finalize piece of work that is not yet complete, but please avoid
merging new features.

Note that nightly builds will go on as usual (starting from
v8.4.0.1 and going up as usual), and pre-release builds will be
available shortly at


Please tell me if you think that this release is significant enough
that it should be announced on the users list for wider testing.

[1] https://github.com/racket/racket/wiki/release-repo-managers

Upcoming dates:
- 15th: Merge window ends, testing starts
- 22nd: Testing ends
Testing for the v8.4 release
  (using the v8.3.900 release candidate build)

Search for your name on the checklist page to find relevant items, either
reply when you finish an item (please indicate which item/s is/are done),
or check it off yourself on the checklist page. Also, if you have any
commits that should have been picked, make sure that the changes are in.

Be sure to finish your testing by the 24th. Otherwise the release
will move on without your input.

The checklist page is at:

Release candidates are at:

Please use these installers (or source bundles) -- don't test from
your own git clone (don't test the `master' branch by mistake!).
To get the tests, you can do this:

  cd ...racket-root...
  ./bin/raco pkg install -i --auto main-distribution-test
1 Like
    The release announcement sketch that I have so far is below.  Please
    mail me new items and/or edits.

    Please phrase announcements using complete sentences and avoid the
    word "now".

   * Command-line Racket provides a new expression editor by default for
     its read-eval-print loop (REPL). The new REPL is based on the Chez
     Scheme expression editor, but extended to use the same
     language-sensitive syntax coloring and indentation tools as DrRacket.

     To make Racket's REPL go back to the old editline/readline-based
     editor, use the command

       ,input readline

     and then restart Racket. Get back to the new expression editor with

       ,input expeditor

     To toggle color mode for the new expression editor, use one of the
     following, which does not require restarting Racket:

       ,color #false
       ,color #true

    * Typed Racket includes a kind system.
    * Racket has a `file-or-directory-stat` for unified information about
      file-system objects.
    * Racket on Chez has faster multiplication and division for some
    * Web server: The files dispatcher supports all standard caching-related
      HTTP response headers (e.g., Cache-Control).
    * Web server: A new dispatcher captures the common pattern of processing
      HTTP requests and responses in a layered fashion.
    * The Web Server supports use of the Cache-Control header, and includes
      a new wrapping dispatcher.
    * Expander: add "portal" syntax to support new forms of syntax object
    * Documentation search is improved.
    * Some hash operations support an optional `try-order?` argument
    * The plot-metrics interface has documentation.
    * Fonts support OpenType feature settings.
    * The Gui library has improved support for Wayland.
    * The computation of quadratic roots is further improved.
    * Change `set/c` to support random generation
    * add coloring and indentation support to the interations window
    * allow languages to specify which characters are parentheses, and
      adapt the keybindings based on them
    * Many other bug repairs and other improvements!

The following people contributed to this release:

Alex Harsányi, Alex Knauth, Alexander Shopov, Alexis King, Andrew
Mauer-Oats, Andy Keep, Ayman Osman, Ben Greenman, Bob Burger, Bogdan
Popa, Cameron Moy, D. Ben Knoble, Fred Fu, Greg Hendershott, Gustavo
Massaccesi, Jamie Taylor, Jarhmander, Jesse Alama, Joel Dueck, John
Clements, Jordan Johnson, Laurent Orseau, Leif Andersen, Marc Burns,
Matthew Flatt, Matthias Felleisen, Mike Engelhart, Mike Sperber, Noah
Ma, Oscar Waddell, Pavel Panchekha, Philip McGrath, rgkirch, Robby
Findler, Sam Tobin-Hochstadt, Sergiu Ivanov, Sorawee Porncharoenwase,
Stefan Schwarzer, Stephen De Gabrielle, Tony Garnock-Jones, Viko Riféo,
and Zachary Mao

    Link to package regressions issue for the 8.4 release:


4 posts were split to a new topic: I think "state" of big-bang in 2htdp/universe does not work properly

Hi - On Ubuntu 21-10 running on x86-64 I see two bugs with a just downloaded and built

Minor - when I exit the Dr Racket GUI I get a Gdk-WARNING.

$ ./drracket

(drracket:41659): Gdk-WARNING **: 18:08:29.577: losing last reference to undestroyed window


Less minor when I try to run OpenGL Rosetta stone code I get this error.

$ ./drracket
exception raised by error display handler: internal error: attempt to deschedule the current thread in atomic mode; original exception raised: exception raised by exception handler: internal error: tried to deschedule a descheduled thread; original exception raised: internal error: attempt to deschedule the current thread in atomic mode
internal error: tried to reschedule a scheduled thread
internal error: terminated in atomic mode!

OpenGL Rosetta Stone is:

#lang racket/gui
(require sgl/gl)
(define (resize w h)
  (glViewport 0 0 w h))
(define (draw-opengl)
  (glClearColor 0.0 0.0 0.0 0.0)
  (glShadeModel GL_SMOOTH)
  (glMatrixMode GL_PROJECTION)
  (glOrtho 0.0 1.0 0.0 1.0 -1.0 1.0)
  (glMatrixMode GL_MODELVIEW)
  (glBegin GL_TRIANGLES)
  (glColor3f 1 0 0)
  (glVertex3d 0.25 0.25 0.0)
  (glColor3f 0 1 0)
  (glVertex3d 0.75 0.25 0.0)
  (glColor3f 0 0 1)
  (glVertex3d 0.75 0.75 0.0)
(define my-canvas%
  (class* canvas% ()
    (inherit with-gl-context swap-gl-buffers)
    (define/override (on-paint)
      (with-gl-context (λ() (draw-opengl) (swap-gl-buffers))))
    (define/override (on-size width height)
      (with-gl-context (λ() (resize width height))))
    (super-instantiate () (style '(gl)))))
(define win (new frame% [label "Racket Rosetta Code OpenGL example"]
                        [min-width 200] [min-height 200]))
(define gl  (new my-canvas% [parent win]))
(send win show #t)




Thanks for your note. I'm curious to know whether these issues crop up on the release candidate or not. If you have time, you might consider doing a fresh compile with the source available at


to find out whether the issue affects the release.

Also, do you know whether this issue occurs with the 8.3 release?


Thanks, I'm building the pre-release version.

When I build the windows one I get the following error.

Downloading https://pre-release.racket-lang.org/pkgs/draw-win32-x86_64-3.zip
unzip: unexpected EOF
C:\Users\rdoneelbr\racket\collects\pkg\private\stage.rkt:115:0: stage-package/info
[repeats 1 more time]
C:\Users\rdoneelbr\racket\collects\pkg\private\install.rkt:141:0: install-packages
C:\Users\rdoneelbr\racket\collects\racket\file.rkt:440:0: call-with-file-lock
body of (submod "C:\Users\rdoneelbr\racket\collects\pkg\main.rkt" main)
body of "C:\Users\rdoneelbr\racket\collects\raco\raco.rkt"
body of "C:\Users\rdoneelbr\racket\collects\raco\main.rkt"

Corporate Desktop, so I can untar the minimal tar file.

Then I run

raco pkg install -i racket-lib

which always has not done anything

and then the step that errors is

raco pkg install --deps search-auto -i main-distribution

which runs fine on and every other install I've tried, but fails here.




Yes, same problem on Ubuntu 21.10 with the pre-release.

Now there is more info though. I have 2 different Ubuntu 21.10 systems, one headless and one with a display.

This fails on the laptop with a display. It does NOT fail on the headless version whether I connect via ssh -Y or via rdp to the Xrdp server.



I checked and when 8.3 was released I did not see this problem. But I was running Linux Mint which is based on the Ubuntu LTS 20.04 release. So different. If you want I can download 8.3 and build it to test.


I believe that building pre-release versions from source on platforms such as Windows runs into issues with catalogs and pre-built binaries. Building from "Minimal Racket" sources may solve this problem. Also, we have independent corroboration that compilation on Windows succeeds for this release. Put differently, I don't believe this is a problem with the release.

Hmm... actually, you may have been using the minimal sources. I don't understand the statement "Corporate Desktop, so I can untar the minimal tar file." ?

Re: the linux failure, I don't have a system to try to replicate this. Perhaps it would make sense to file a bug report for the sgl package?

After more discussion with @dominik.pantucek , it sounds like this might be an issue with a failure at the level of the GL library that you're using, or possibly an issue with the sgl library. Again, it sounds like filing an issue on the sgl library is the right thing to do


Thanks, I submitted the bug.



1 Like