Racket v8.9
----------------------------------------------------------------------
Racket version 8.9 is now available from
https://racket-lang.org/
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.
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.
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.
https://docs.racket-lang.org/reference/running-sa.html#%28part._configure-expand%29)
* `stream-cons` supports multiple values. (cf.
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.
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.
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.
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.
Feedback Welcome
----------------------------------------------------------------------
|