https://blog.racket-lang.org/2025/05/racket-v8-17.html [racket-log] Racket blog 17 May 2025 Racket v8.17 posted by Stephen De Gabrielle --------------------------------------------------------------------- We are pleased to announce Racket v8.17 is now available from https:/ /download.racket-lang.org/. As of this release: * The new drracket-core package provides a version of drracket with a smaller set of dependencies. * Typed Racket has support for treelists. * The package manager computes checksums for packages when required, allowing the use and automatic upgrade of packages without them. * The bitwise-first-bit-set function returns the smallest bit that is set in the twos-complement representation of the given number. * The updated dynamic-require function makes it easier to use syntax bindings by allowing a syntax-thunk (or 'eval) to be used for them. * The error-module-path->string-handler parameter allows the customization of the display of module-paths in error messages. * Precision of certain numeric functions (sin, cos, and others) is improved on Windows platforms by using the MSVCRT/UCRT libraries. * The string-append function has improved performance and reduced memory use for long lists of strings in the Racket CS implementation. Differences are clearly noticeable for lists of length 1 million. * TCP ports use SO_KEEPALIVE, instructing the kernel to send periodic messages while waiting for data to check whether the connection is still responsive. * Racket code using a terminal in Windows can receive mouse events as virtual terminal characters after using SetConsoleMode. (This is also already possible on macOS and Linux.) See the tui-term package for related example code. * The #:replace-malformed-surrogate? keyword can be used to specify a replacement for malformed unicode surrogates in JSON input * The http-client module no longer sends "Content-Length: 0" for requests without a body. * The demodularizer (compiler/demod) can prune more unused assignments. * Several judgment rendering forms in Redex are replaced by functions, allowing more convenient abstraction. * When a distribution includes no teaching languages, DrRacket's language-dialog configuration moves into the preferences dialog and the "Language" menu disappears. * The math library has better support for block-diagonal matrices, including both Racket and Typed Racket. * The math library contains improved implementations of acos and matrix-(cos-)angle. * The stepper again works for big-bang programs. * There are many other repairs and documentation imprevements! Thank you The following people contributed to this release: Alexander Shopov, Andrei Dorian Duma, Bert De Ketelaere, Bob Burger, Bogdan Popa, Bogdana Vereha, Cameron Moy, Chung-chieh Shan, Cutie Deng, D. Ben Knoble, Dario Hamidi, Dominik Pantucek, Gustavo Massaccesi, halfminami, Jacqueline Firth, Jason Hemann, Jens Axel Sogaard, Joel Dueck, John Clements, Jordan Harman, Marc Nieper-Wisskirchen, Matthew Flatt, Matthias Felleisen, Mike Sperber, Noah Ma, owaddell-ib, Philippe Meunier, Robby Findler, Ryan Culpepper, Ryan Ficklin, Sam Phillips, Sam Tobin-Hochstadt, Shu-Hung You, sogaiu, Sorawee Porncharoenwase, Stephen De Gabrielle, Vincent Lee, and Wing Hei Chan. Racket is a community developed open source project and we welcome new contributors. See racket/README.md to learn how you can be a part of this amazing project. Feedback Welcome Questions and discussion welcome at the Racket community on Discourse or Discord. Please share If you can - please help get the word out to users and platform specific repo packagers Racket - the Language-Oriented Programming Language - version 8.17 is now available from https://download.racket-lang.org See https://blog.racket-lang.org/2025/05/racket-v8-17.html for the release announcement and highlights. prev Racket v8.16 Made with Frog, a static-blog generator written in Racket. Source code for this blog.