Racket version 8.9 is now available from https://download.racket-lang.org/

Racket version 8.9

Racket version 8.9 is now available from https://download.racket-lang.org/


What's new

As of this release:

  • The HtDP student languages come with checked signatures. Programmers can express signatures in a formal notation, and these signatures are checked at run-time (in a performance-neutral manner). The addition of this formal language associates meaning with several names that had no meaning before. — This feature is experimental, and we may amend or retract it later. (cf. 2 Beginning Student with List Abbreviations)

  • Switching into and out of dark mode is handled better on Mac OS and Linux.

  • Racket uses Unicode 15.0 for character and string operations.

  • The racket/hash-code library provides support for combining hash codes. (cf. 4.1 Equality)

  • A language module can have a configure-expand submodule that is dynamically required to configure a parameterization before expansion of another module. (cf. 18.1 Running Racket or GRacket)

  • stream-cons supports multiple values. (cf. 4.16.2 Streams)

  • unit/c subcontracts may depend on bindings from any imported or exported signature. Additionally, bindings’ contracts are enforced within subcontracts, and violations blame the contract itself (like ->i). (cf. 7.9 Unit Contracts)

  • racket/class provides the dynamic-instantiate procedure for instantiating a class with a dynamic list of by-name initialization arguments. (cf. 6.3 Creating Objects)

  • TCP output block buffering implies TCP_NODELAY. (cf. 15.3.1 TCP)

  • Submodules and Check Syntax require arrows work better together.

  • Typed Racket's shallow check generation is improved.

  • Many other improvements and bug fixes are included!

Thank you

Thank you to the people who contributed to this release:

Alex Harsányi, Alex Knauth, Alexis King, Ben Greenman, Bert De Ketelaere, Bob Burger, Bogdan Popa, Cadence Ember, D. Ben Knoble, Denis Hirn, dr-neptune, Eli Barzilay, Fred Fu, Gustavo Massaccesi, J. Ryan Stinnett, Jack Firth, Jamie Taylor, Jesse Alama, Jin-Ho King, John Clements, Lazerbeak12345, Mark Hedlund, Masaya Tojo, Matthew Flatt, Matthias Felleisen, Mike Sperber, Philip McGrath, Robby Findler, Ryan Culpepper, Sam Phillips, Sam Tobin-Hochstadt, sarna, Shu-Hung You, Sorawee Porncharoenwase, Stephen De Gabrielle, sxzzsf, Tom Price, Yukai Chou, and Zach O'Brien.


Official installers for Racket on many platforms are available from https://download.racket-lang.org/.

Volunteer maintainers are are working hard, but there may be a short delay before Racket is available via your preferred package manager.

Getting started with Racket 8.9

Questions and feedback about the release are welcome here on Discourse.

Racket Discourse Racket Discord


Updated in Gentoo: repo/gentoo.git - Official Gentoo ebuild repository :racket:

Announcement has been shared

Any upvotes etc. greatly appreciated.

PS apologies for not including a text description of image in top post: cartoon line art of old style terminal with racket logo on screen and voice bubble with text: Download Racket v8.9 now at https://racket-lang.org/

Thank you @xgqt ! Lucky Gentoo Linux users are amongst the first to get v8.9 on day one!

For other linux distributions please be patient - everyone is a volunteer so it may take some time for other distros to update their package repositories. There is a list at https://repology.org/project/racket/versions but it is incomplete and doesn't include important repositories like Flathub, Snap Store and Docker.

In the meantime, the installer racket-8.9-x86_64-linux-cs.sh[1] available from https://download.racket-lang.org/releases/8.9/ should work on most distributions, including relatively old distributions.

After downloading the installer file, run it with
sh racket-8.9-x86_64-linux-cs.sh
to install, possibly adding sudo to the start of the command to install to a location that requires administrator access.

Aside: if anyone is able to update or - worst case - remove badly out of date packages that would be greatly appreciated.

Best regards,
Stephen :beetle:

[1] https://download.racket-lang.org/releases/8.9/installers/racket-8.9-x86_64-linux-cs.sh

Thanks @spdegabrielle ,

I wonder if you'd have experience with the upgrading from 8.8 in Ubuntu.
I've followed the instructions about configuring first the Command line for Racket, but when executing raco pkg migrate 8.8, I receive:
No packages from "8.8" to install
My $PATH variable looks like:
/usr/games /usr/local/games /snap/bin /snap/racket/current/usr/bin

Thanks for your help.

1 Like

I’m taking a guess here but from your PATH it looks like you installed Racket wit a SNAP package. I believe Snap is still at v8.8 so it is expected that raco pkg migrate 8.8 to do nothing.

I’d suggest

  1. upgrading with the installer at https://download.racket-lang.org/releases/8.9/installers/racket-8.9-x86_64-linux-cs.sh

  2. set the path to the install location (I’d just launch DrRacket and let it do it)

  3. Run raco pkg migrate 8.8 to install packages that were previously installed in user package scope for v8.8.

I hope this helps

Stephen :beetle: