From de1006a14d93c7b1a6d2dae318405cb0c9527eaa Mon Sep 17 00:00:00 2001 From: Stephen De Gabrielle Date: Wed, 20 Aug 2025 22:47:41 +0100 Subject: [PATCH 1/3] 8.18 release files --- announcements/v8.18.txt | 61 +++++++++++++++++++++ blog/_src/posts/2025-08-20-racket-v8-18.md | 62 ++++++++++++++++++++++ release-notes/release-notes.rkt | 5 +- 3 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 announcements/v8.18.txt create mode 100644 blog/_src/posts/2025-08-20-racket-v8-18.md diff --git a/announcements/v8.18.txt b/announcements/v8.18.txt new file mode 100644 index 00000000..0ba76e2f --- /dev/null +++ b/announcements/v8.18.txt @@ -0,0 +1,61 @@ + +Racket v8.18 + +---------------------------------------------------------------------- + +- 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! + +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. + +---------------------------------------------------------------------- diff --git a/blog/_src/posts/2025-08-20-racket-v8-18.md b/blog/_src/posts/2025-08-20-racket-v8-18.md new file mode 100644 index 00000000..d345c8a7 --- /dev/null +++ b/blog/_src/posts/2025-08-20-racket-v8-18.md @@ -0,0 +1,62 @@ + Title: Racket v8.18 + Date: 2025-08-20T13:28:24 + Tags: DRAFT + + +---------------------------------------------------------------------- + +We are pleased to announce Racket v8.18 is now available from [https://download.racket-lang.org/](https://download.racket-lang.org). + +## As of this release: + +- The new [`drracket-core`](https://github.com/racket/drracket/commit/ae16d6bc6e00a9498313cff035537ac98ef71194) package provides a version of drracket with a smaller set of dependencies. +- Typed Racket has support for [treelists](https://docs.racket-lang.org/reference/treelist.html). +- The package manager computes [checksums](https://docs.racket-lang.org/pkg/Package_Concepts.html) for packages when required, allowing the use and automatic upgrade of packages without them. +- The [`bitwise-first-bit-set`](https://docs.racket-lang.org/reference/generic-numbers.html#%28def._%28%28quote._~23~25kernel%29._bitwise-first-bit-set%29%29) function returns the smallest bit that is set in the twos-complement representation of the given number. +- The updated [`dynamic-require`](https://docs.racket-lang.org/reference/Module_Names_and_Loading.html#%28def._%28%28quote._~23~25kernel%29._dynamic-require%29%29) 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`](https://docs.racket-lang.org/reference/exns.html#%28def._%28%28quote._~23~25kernel%29._error-module-path-~3estring-handler%29%29) parameter allows the customization of the display of module-paths in error messages. +- Precision of certain [numeric functions](https://docs.racket-lang.org/reference/generic-numbers.html) (`sin`, `cos`, and others) is improved on Windows platforms by using the MSVCRT/UCRT libraries. +- The [`string-append`](https://docs.racket-lang.org/reference/strings.html#%28def._%28%28quote._~23~25kernel%29._string-append%29%29) 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](https://docs.racket-lang.org/reference/tcp.html) 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](https://docs.racket-lang.org/tui-term/index.html) package for related example code. +- The [`#:replace-malformed-surrogate?`](https://docs.racket-lang.org/json/index.html#%28part._.Parsing_.J.S.O.N_.Text_into_.J.S-.Expressions%29) keyword can be used to specify a replacement for malformed unicode surrogates in JSON input +- The [http-client](https://docs.racket-lang.org/http-client/index.html) module no longer sends "Content-Length: 0" for requests without a body. +- The [demodularizer](https://docs.racket-lang.org/raco/demod.html) (`compiler/demod`) can prune more unused assignments +- Several judgment rendering forms in [Redex](https://docs.racket-lang.org/redex/index.html) 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](https://docs.racket-lang.org/math/index.html) has better support for block-diagonal matrices, including both Racket and Typed Racket. +- The [math library](https://docs.racket-lang.org/math/index.html) contains improved implementations of acos and matrix-(cos-)angle. +- The [stepper](https://docs.racket-lang.org/stepper/index.html) again works for [`big-bang`](https://docs.racket-lang.org/teachpack/2htdpuniverse.html#(part._world._interactive)) 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 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. + +**Racket** is a community developed open source project and we welcome new contributors. See [racket/README.md](https://github.com/racket/racket/blob/master/README.md#contributing) +to learn how you can be a part of this amazing project. + +## Feedback Welcome + +Questions and discussion welcome at the Racket community on [Discourse](https://racket.discourse.group/invites/VxkBcXY7yL) or +[Discord](https://discord.gg/6Zq8sH5). + +## 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.18 is now available from https://download.racket-lang.org + +See https://blog.racket-lang.org/2025/08/racket-v8-18.html for the release announcement and highlights. +``` diff --git a/release-notes/release-notes.rkt b/release-notes/release-notes.rkt index 1544c939..3f404ea3 100644 --- a/release-notes/release-notes.rkt +++ b/release-notes/release-notes.rkt @@ -8,7 +8,7 @@ "check-links.rkt") (define major-v 8) -(define minor-v 17) +(define minor-v 18) (define version (~a "v"major-v"."minor-v)) @@ -18,7 +18,8 @@ (define blog-post-url (match* (major-v minor-v) [(8 16) "https://blog.racket-lang.org/2025/01/racket-v8-16.html"] - [(8 17) "https://blog.racket-lang.org/2025/05/racket-v8-17.html"])) + [(8 17) "https://blog.racket-lang.org/2025/05/racket-v8-17.html"] + [(8 18) "https://blog.racket-lang.org/2025/08/racket-v8-18.html"])) From a3ec70315c0292c3eb7fd3225820ced3bd3761fc Mon Sep 17 00:00:00 2001 From: Stephen De Gabrielle Date: Wed, 20 Aug 2025 23:06:51 +0100 Subject: [PATCH 2/3] Update 2025-08-20-racket-v8-18.md --- blog/_src/posts/2025-08-20-racket-v8-18.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/_src/posts/2025-08-20-racket-v8-18.md b/blog/_src/posts/2025-08-20-racket-v8-18.md index d345c8a7..98f7860f 100644 --- a/blog/_src/posts/2025-08-20-racket-v8-18.md +++ b/blog/_src/posts/2025-08-20-racket-v8-18.md @@ -27,7 +27,7 @@ We are pleased to announce Racket v8.18 is now available from [https://download. - The [math library](https://docs.racket-lang.org/math/index.html) has better support for block-diagonal matrices, including both Racket and Typed Racket. - The [math library](https://docs.racket-lang.org/math/index.html) contains improved implementations of acos and matrix-(cos-)angle. - The [stepper](https://docs.racket-lang.org/stepper/index.html) again works for [`big-bang`](https://docs.racket-lang.org/teachpack/2htdpuniverse.html#(part._world._interactive)) programs. -- There are many other repairs and documentation imprevements! +- There are many other repairs and documentation improvements! ## Thank you From 94bc7602b1758399af5d7c61a9bc1dff98b47885 Mon Sep 17 00:00:00 2001 From: Stephen De Gabrielle Date: Wed, 20 Aug 2025 23:08:45 +0100 Subject: [PATCH 3/3] Update v8.18.txt --- announcements/v8.18.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/announcements/v8.18.txt b/announcements/v8.18.txt index 0ba76e2f..2a51afb6 100644 --- a/announcements/v8.18.txt +++ b/announcements/v8.18.txt @@ -43,7 +43,7 @@ Racket v8.18 - 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! +- There are many other repairs and documentation improvements! The following people contributed to this release: