# Racket v8.16 draft release notes

**URL:** <https://racket.discourse.group/t/racket-v8-16-draft-release-notes/3518>\
**Category:** Internals\
**Tags:** release-management, release\
**Created:** [January 27, 2025, 5:09am UTC](https://racket.discourse.group/t/racket-v8-16-draft-release-notes/3518 "2025-01-27T05:09:28Z")\
**Posts on this page:** 1\
**Showing post:** 5

<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:** [February 2, 2025, 8:42pm UTC](https://racket.discourse.group/t/racket-v8-16-draft-release-notes/3518/5 "2025-02-02T20:42:23Z")

</div>

How about this?

* * *

- Expanded support for immutable and mutable treelists

- The `serialize-structs` module allows the minimization of  
dependencies by providing only a handful of core forms

- The `flbit-field` function allows access to the binary  
representation of IEEE floating-point numbers.

- The top-left search box in the documentation works once more.

- The XML reader uses a different library that is 2x-3x faster on  
inputs with large CDATA blocks, and disables contract checks to  
obtain a 25% speedup on large documents generally.

- The pregexp syntax includes "\X" to match a grapheme cluster,  
following Perl and PCRE.

- The `read-json*` and `write-json*` functions allow customization of  
the Racket representation of JSON elements, eliminating the need for  
a separate "translation" pass.

- New port I/O functions

- A revised representation of pointers improves the performance of foreign  
function calls.

- In anticipation of the fifteenth RacketCon, the `fifteenth` function  
returns the fifteenth element of a list.

- Racket has an improved multi-line convention for error messages.

- The `db` library allows `prepare` on virtual statements.

- The `student-t` distribution is part of the `math/distributions`  
library.

- Expeditor supports customizing the prompt, using the `prompt`  
argument to `call-with-expeditor`.

- There is a guide to adding internationalization for a new (human)  
language.

- `#lang htdp/asl` incorporates [Graphical Debugger](https://docs.racket-lang.org/drracket/debugger.html#%28part._.Debugger_.Buttons%29) support.

- There is lots of new documentation, and many defects repaired!

The following people contributed to this release:

a11ce, Alex Knauth, Alexander Shopov, Alexis King, Andrew  
Mauer-Oats, Anthony Carrico, Bert De Ketelaere, Bob Burger, Bogdan  
Popa, D. Ben Knoble, David Van Horn, Gustavo Massaccesi, halfminami,  
Hao Zhang, Jacqueline Firth, Jinser Kafka, JJ, John Clements, Jörgen  
Brandt, Kraskaska, lafirest, Laurent Orseau, lukejianu, Marc  
Nieper-Wißkirchen, Matthew Flatt, Matthias Felleisen, mehbark, Mike  
Sperber, Noah Ma, Onorio Catenacci, Oscar Waddell, Pavel Panchekha,  
payneca, Robby Findler, Sam Phillips, Sam Tobin-Hochstadt, Shu-Hung  
You, Sorawee Porncharoenwase, Stephen De Gabrielle, Wing Hei Chan,  
Yi Cao, and ZhangHao.

* * *

---

_[View the full topic](https://racket.discourse.group/t/racket-v8-16-draft-release-notes/3518)._
