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

**URL:** <https://racket.discourse.group/t/racket-version-8-9-is-now-available-from-https-download-racket-lang-org/1941>\
**Category:** Announcements\
**Tags:** release\
**Created:** [May 12, 2023, 8:03am UTC](https://racket.discourse.group/t/racket-version-8-9-is-now-available-from-https-download-racket-lang-org/1941 "2023-05-12T08:03:08Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [May 12, 2023, 8:03am UTC](https://racket.discourse.group/t/racket-version-8-9-is-now-available-from-https-download-racket-lang-org/1941/1 "2023-05-12T08:03:08Z")

</div>

## Racket version 8.9

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

 ![image](https://global.discourse-cdn.com/free1/uploads/racket/original/2X/3/361e646aae076f26e14b517b9d59ee2bae8b3023.png)

## 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&nbsp;Beginning Student with List Abbreviations](https://docs.racket-lang.org/htdp-langs/beginner-abbr.html?q=signatures#%28part._beginner-abbr-signatures%29))

- 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&nbsp;Equality](https://docs.racket-lang.org/reference/Equality.html#%28mod-path._racket%2Fhash-code%29))

- 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&nbsp;Running Racket or GRacket](https://docs.racket-lang.org/reference/running-sa.html#%28part._configure-expand%29))

- `stream-cons` supports multiple values. (cf. [4.17.2&nbsp;Streams](https://docs.racket-lang.org/reference/streams.html#%28form._%28%28lib._racket%2Fstream..rkt%29._stream-cons%29%29))

- `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&nbsp;Unit Contracts](https://docs.racket-lang.org/reference/unitcontracts.html#%28form._%28%28lib._racket%2Funit..rkt%29._unit%2Fc%29%29))

- `racket/class` provides the `dynamic-instantiate` procedure for instantiating a class with a dynamic list of by-name initialization arguments. (cf. [6.3&nbsp;Creating Objects](https://docs.racket-lang.org/reference/objcreation.html#%28def._%28%28lib._racket%2Fprivate%2Fclass-internal..rkt%29._dynamic-instantiate%29%29))

- TCP output block buffering implies TCP\_NODELAY. (cf. [15.3.1&nbsp;TCP](https://docs.racket-lang.org/reference/tcp.html#%28def._%28%28lib._racket%2Ftcp..rkt%29._tcp-connect%29%29))

- 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.

## Download

Official installers for Racket on many platforms are available from [https://download.racket-lang.org/](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

- If you are new to Racket try our [Getting started guide](https://docs.racket-lang.org/getting-started/index.html).

- If you are upgrading from 8.8 you may want to run [`raco pkg migrate 8.8`](https://docs.racket-lang.org/pkg/cmdline.html#%28part._raco-pkg-migrate%29) after you [Configure Command Line for Racket](https://github.com/racket/racket/wiki/Configure-Command-Line-for-Racket)

**Questions and feedback about the release are welcome here on [Discourse](https://racket.discourse.group/).**

[![Racket Discourse](https://img.shields.io/discourse/users?label=Discuss%20on%20Racket%20Discourse&logo=racket&server=https%3A%2F%2Fracket.discourse.group)](https://racket.discourse.group/) [![Racket Discord](https://img.shields.io/discord/571040468092321801?label=Chat%20on%20Racket%20Discord&logo=racket)](https://discord.gg/6Zq8sH5)

---

<div class="post-metadata">

**Author:** ![xgqt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/xgqt/32/592_2.png) [@xgqt](https://racket.discourse.group/u/xgqt)\
**Post date:** [May 12, 2023, 11:38am UTC](https://racket.discourse.group/t/racket-version-8-9-is-now-available-from-https-download-racket-lang-org/1941/2 "2023-05-12T11:38:09Z")

</div>

Updated in Gentoo: [repo/gentoo.git - Official Gentoo ebuild repository](https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8b62b1b852ed2306e8168cf8780e72a204824e6c) :racket:

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [May 12, 2023, 1:41pm UTC](https://racket.discourse.group/t/racket-version-8-9-is-now-available-from-https-download-racket-lang-org/1941/3 "2023-05-12T13:41:59Z")

</div>

Announcement has been shared

- [https://www.reddit.com/r/Racket/comments/13fklac/racket\_version\_89\_is\_now\_available/?utm\_source=share&utm\_medium=web2x&context=3](https://www.reddit.com/r/Racket/comments/13fklac/racket_version_89_is_now_available/?utm_source=share&utm_medium=web2x&context=3)

- [https://www.reddit.com/r/lisp/comments/13fkpd4/racket\_version\_89\_is\_now\_available/?utm\_source=share&utm\_medium=web2x&context=3](https://www.reddit.com/r/lisp/comments/13fkpd4/racket_version_89_is_now_available/?utm_source=share&utm_medium=web2x&context=3)

- [https://www.reddit.com/r/scheme/comments/13fkq3d/racket\_version\_89\_is\_now\_available\_from/?utm\_source=share&utm\_medium=web2x&context=3](https://www.reddit.com/r/scheme/comments/13fkq3d/racket_version_89_is_now_available_from/?utm_source=share&utm_medium=web2x&context=3)

- [https://mastodon.social/@racketlang/110355823391184912](https://mastodon.social/@racketlang/110355823391184912)

- [https://twitter.com/racketlang/status/1657006933990047744?s=20](https://twitter.com/racketlang/status/1657006933990047744?s=20)

- [https://lobste.rs/s/ac7ca0/racket\_version\_8\_9\_is\_now\_available\_from](https://lobste.rs/s/ac7ca0/racket_version_8_9_is_now_available_from)

- [https://news.ycombinator.com/item?id=35913575](https://news.ycombinator.com/item?id=35913575)

- [https://www.facebook.com/groups/436305706723234/permalink/1929500730737050/](https://www.facebook.com/groups/436305706723234/permalink/1929500730737050/)

- [https://www.linkedin.com/feed/update/urn:li:activity:7062778952385191936?utm\_source=share&utm\_medium=member\_desktop](https://www.linkedin.com/feed/update/urn:li:activity:7062778952385191936?utm_source=share&utm_medium=member_desktop)

- [https://www.youtube.com/@racketlang/community](https://www.youtube.com/@racketlang/community)

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/](https://racket-lang.org/)

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [May 12, 2023, 2:29pm UTC](https://racket.discourse.group/t/racket-version-8-9-is-now-available-from-https-download-racket-lang-org/1941/4 "2023-05-12T14:29:13Z")

</div>

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](https://repology.org/project/racket/versions) but it is incomplete and doesn't include important repositories like [Flathub](https://flathub.org/apps/details/org.racket_lang.Racket), [Snap Store](https://snapcraft.io/racket) and [Docker](https://hub.docker.com/r/racket/racket).

In the meantime, the installer [racket-8.9-x86\_64-linux-cs.sh](https://download.racket-lang.org/releases/8.9/installers/racket-8.9-x86_64-linux-cs.sh)[1] available from [https://download.racket-lang.org/releases/8.9/](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](https://download.racket-lang.org/releases/8.9/installers/racket-8.9-x86_64-linux-cs.sh)

---

<div class="post-metadata">

**Author:** ![omendezmorales](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/omendezmorales/32/519_2.png) [@omendezmorales](https://racket.discourse.group/u/omendezmorales)\
**Post date:** [May 12, 2023, 3:54pm UTC](https://racket.discourse.group/t/racket-version-8-9-is-now-available-from-https-download-racket-lang-org/1941/5 "2023-05-12T15:54:39Z")

</div>

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](https://github.com/racket/racket/wiki/Configure-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.

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [May 12, 2023, 4:34pm UTC](https://racket.discourse.group/t/racket-version-8-9-is-now-available-from-https-download-racket-lang-org/1941/6 "2023-05-12T16:34:10Z")

</div>

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](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](https://docs.racket-lang.org/pkg/Package_Concepts.html#%28tech._package._scope%29) for v8.8.

I hope this helps

Stephen :beetle:
