v8.17
Racket v8.17
Added 6
- The new `drracket-core` package provides a version of drracket with a smaller set of dependencies
- Typed Racket has support for treelists
- The `bitwise-first-bit-set` function returns the smallest bit that is set in the twos-complement representation of the given number
- The `error-module-path->string-handler` parameter allows customization of the display of module-paths in error messages
- Racket code using a terminal in Windows can receive mouse events as virtual terminal characters after using SetConsoleMode
- The `#:replace-malformed-surrogate?` keyword can be used to specify a replacement for malformed unicode surrogates in JSON input
Changed 11
- The package manager computes checksums for packages when required, allowing the use and automatic upgrade of packages without them
- The `dynamic-require` function allows a syntax-thunk (or 'eval) to be used for syntax bindings
- 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
- TCP ports use `SO_KEEPALIVE`, instructing the kernel to send periodic messages while waiting for data to check whether the connection is still responsive
- 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
Fixed 1
- The stepper again works for `big-bang` programs
- The new
drracket-corepackage 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-setfunction returns the smallest bit that is set in the twos-complement representation of the given number. - The updated
dynamic-requirefunction makes it easier to use syntax bindings by allowing a syntax-thunk (or 'eval) to be used for them. - The
error-module-path->string-handlerparameter 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-appendfunction 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-bangprograms. - There are many other repairs and documentation imprevements!
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 Pantůček, Gustavo Massaccesi, halfminami, Jacqueline Firth, Jason Hemann, Jens Axel Søgaard, Joel Dueck, John Clements, Jordan Harman, Marc Nieper-Wißkirchen, 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.