You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: blog/_src/posts/2025-01-31-racket-v8-16.md
+18-17
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
Title: Racket v8.16
2
2
Date: 2025-03-02T11:09:00Z-08:00
3
-
Tags: release-announcement, DRAFT
3
+
Tags: release-announcement
4
4
Authors: John Clements, Stephen De Gabrielle
5
5
6
6
@@ -13,30 +13,31 @@ We are pleased to announce Racket v8.16 is now available from [https://download.
13
13
## As of this release:
14
14
15
15
- Racket has expanded support for immutable and mutable treelists:
16
-
- A variety of new treelist utility functions are available: [`treelist-filter`](https://pre-release.racket-lang.org/doc/reference/treelist.html#%28def._%28%28lib._racket%2Ftreelist..rkt%29._treelist-filter%29%29), [`treelist-flatten`](https://pre-release.racket-lang.org/doc/reference/treelist.html#%28def._%28%28lib._racket%2Ftreelist..rkt%29._treelist-flatten%29%29), et cetera.
17
-
- The [`mutable-treelist-prepend!`](https://pre-release.racket-lang.org/doc/reference/treelist.html#%28def._%28%28lib._racket%2Fmutable-treelist..rkt%29._mutable-treelist-prepend%21%29%29) function allows prepending to mutable treelists.
18
-
-[Mutable treelists](https://pre-release.racket-lang.org/doc/reference/treelist.html#%28part._.Mutable_.Treelists%29) are [serializable](https://pre-release.racket-lang.org/doc/reference/serialization.html).
19
-
- The [`serialize-structs`](https://pre-release.racket-lang.org/doc/reference/serialization.html#%28mod-path._racket%2Fserialize-structs%29) module allows the minimization of dependencies by providing only a handful of core forms.
20
-
- The [`flbit-field`](https://pre-release.racket-lang.org/doc/reference/flonums.html#%28def._%28%28lib._racket%2Fflonum..rkt%29._flbit-field%29%29) function allows access to the binary representation of IEEE floating-point numbers.
21
-
- The top-left search box in the [documentation](https://pre-release.racket-lang.org/doc/index.html) works once more.
22
-
- The [XML reader](https://pre-release.racket-lang.org/doc/xml/index.html#%28part._.Reading_and_.Writing_.X.M.L%29) is 2-3x faster on inputs with long CDATA and comments, and avoids some internal contract checks to obtain a 25% speedup on large documents generally.
23
-
- The [pregexp syntax includes "\X" to match a grapheme cluster](https://pre-release.racket-lang.org/doc/reference/regexp.html#(part._regexp-syntax)), following Perl and PCRE.
24
-
- The [`read-json*`](https://pre-release.racket-lang.org/doc/json/index.html#%28def._%28%28submod._%28lib._json%2Fmain..rkt%29._for-extension%29._read-json%2A%29%29) and [`write-json*`](https://pre-release.racket-lang.org/doc/json/index.html#%28def._%28%28submod._%28lib._json%2Fmain..rkt%29._for-extension%29._write-json%2A%29%29) functions allow customization of the Racket representation of JSON elements, eliminating the need for a separate "translation" pass.
16
+
- A variety of new treelist utility functions are available: [`treelist-filter`](https://docs.racket-lang.org/reference/treelist.html#%28def._%28%28lib._racket%2Ftreelist..rkt%29._treelist-filter%29%29), [`treelist-flatten`](https://docs.racket-lang.org/reference/treelist.html#%28def._%28%28lib._racket%2Ftreelist..rkt%29._treelist-flatten%29%29), et cetera.
17
+
- The [`mutable-treelist-prepend!`](https://docs.racket-lang.org/reference/treelist.html#%28def._%28%28lib._racket%2Fmutable-treelist..rkt%29._mutable-treelist-prepend%21%29%29) function allows prepending to mutable treelists.
18
+
-[Mutable treelists](https://docs.racket-lang.org/reference/treelist.html#%28part._.Mutable_.Treelists%29) are [serializable](https://docs.racket-lang.org/reference/serialization.html).
19
+
- The [`serialize-structs`](https://docs.racket-lang.org/reference/serialization.html#%28mod-path._racket%2Fserialize-structs%29) module allows the minimization of dependencies by providing only a handful of core forms.
20
+
- The [`flbit-field`](https://docs.racket-lang.org/reference/flonums.html#%28def._%28%28lib._racket%2Fflonum..rkt%29._flbit-field%29%29) function allows access to the binary representation of IEEE floating-point numbers.
21
+
- The top-left search box in the [documentation](https://docs.racket-lang.org/index.html) works once more.
22
+
- The [XML reader](https://docs.racket-lang.org/xml/index.html#%28part._.Reading_and_.Writing_.X.M.L%29) is 2-3x faster on inputs with long CDATA and comments, and avoids some internal contract checks to obtain a 25% speedup on large documents generally.
23
+
- The [pregexp syntax includes "\X" to match a grapheme cluster](https://docs.racket-lang.org/reference/regexp.html#(part._regexp-syntax)), following Perl and PCRE.
24
+
- The [`read-json*`](https://docs.racket-lang.org/json/index.html#%28def._%28%28submod._%28lib._json%2Fmain..rkt%29._for-extension%29._read-json%2A%29%29) and [`write-json*`](https://docs.racket-lang.org/json/index.html#%28def._%28%28submod._%28lib._json%2Fmain..rkt%29._for-extension%29._write-json%2A%29%29) functions allow customization of the Racket representation of JSON elements, eliminating the need for a separate "translation" pass.
25
25
- Racket has new port I/O functions:
26
-
- The [`open-input-nowhere`](https://pre-release.racket-lang.org/doc/reference/port-lib.html#%28def._%28%28lib._racket%2Fport..rkt%29._open-input-nowhere%29%29) function creates an empty input port.
27
-
- The [`pipe-port?`](https://pre-release.racket-lang.org/doc/reference/pipeports.html#%28def._%28%28quote._~23~25kernel%29._pipe-port~3f%29%29) function makes it possible to determine whether a port is created by [`make-pipe`](https://pre-release.racket-lang.org/doc/reference/pipeports.html#%28def._%28%28quote._~23~25kernel%29._make-pipe%29%29).
28
-
- The [`port-file-stat`](https://pre-release.racket-lang.org/doc/reference/file-ports.html#%28def._%28%28quote._~23~25kernel%29._port-file-stat%29%29) function allows gathering information about the file that is the source or target of a file-stream port.
29
-
- A [revised representation](https://racket.discourse.group/t/fixnum-slow-despite-docs/3409/6) of pointers improves the performance of foreign function calls. As a result, [`ptr-ref`](https://pre-release.racket-lang.org/doc/foreign/foreign_pointer-funcs.html#%28def._%28%28quote._~23~25foreign%29._ptr-ref%29%29) and [`ptr-set!`](https://pre-release.racket-lang.org/doc/foreign/foreign_pointer-funcs.html#%28def._%28%28quote._~23~25foreign%29._ptr-set%21%29%29) are substantially faster.
26
+
- The [`open-input-nowhere`](https://docs.racket-lang.org/reference/port-lib.html#%28def._%28%28lib._racket%2Fport..rkt%29._open-input-nowhere%29%29) function creates an empty input port.
27
+
- The [`pipe-port?`](https://docs.racket-lang.org/reference/pipeports.html#%28def._%28%28quote._~23~25kernel%29._pipe-port~3f%29%29) function makes it possible to determine whether a port is created by [`make-pipe`](https://docs.racket-lang.org/reference/pipeports.html#%28def._%28%28quote._~23~25kernel%29._make-pipe%29%29).
28
+
- The [`port-file-stat`](https://docs.racket-lang.org/reference/file-ports.html#%28def._%28%28quote._~23~25kernel%29._port-file-stat%29%29) function allows gathering information about the file that is the source or target of a file-stream port.
29
+
- A [revised representation](https://racket.discourse.group/t/fixnum-slow-despite-docs/3409/6) of pointers improves the performance of foreign function calls. As a result, [`ptr-ref`](https://docs.racket-lang.org/foreign/foreign_pointer-funcs.html#%28def._%28%28quote._~23~25foreign%29._ptr-ref%29%29) and [`ptr-set!`](https://docs.racket-lang.org/foreign/foreign_pointer-funcs.html#%28def._%28%28quote._~23~25foreign%29._ptr-set%21%29%29) are substantially faster.
30
30
- In anticipation of the fifteenth [RacketCon](https://con.racket-lang.org), the [`fifteenth`](https://pre-release.racket-lang.org/doc/reference/pairs.html#%28def._%28%28lib._racket%2Flist..rkt%29._fifteenth%29%29) function returns the fifteenth element of a list.
31
31
- Racket has an improved multi-line convention for error messages.
32
-
- The [`db` library](https://pre-release.racket-lang.org/doc/db/index.html) allows [`prepare`](https://pre-release.racket-lang.org/doc/db/query-api.html#%28def._%28%28lib._db%2Fbase..rkt%29._prepare%29%29) on virtual statements.
33
-
- The [`student-t` distribution](https://pre-release.racket-lang.org/doc/math/Real_Distribution_Families.html#%28part._.Student-t_.Distributions%29) is part of the [`math/distributions` library](https://pre-release.racket-lang.org/doc/math/dist.html).
34
-
-[Expeditor](https://pre-release.racket-lang.org/doc/expeditor/index.html) supports customizing the prompt, using the [`#:prompt` keyword argument to `call-with-expeditor`](https://pre-release.racket-lang.org/doc/expeditor/Expeditor_API.html#%28def._%28%28lib._expeditor%2Fmain..rkt%29._call-with-expeditor%29%29).
32
+
- The [`db` library](https://docs.racket-lang.org/db/index.html) allows [`prepare`](https://docs.racket-lang.org/db/query-api.html#%28def._%28%28lib._db%2Fbase..rkt%29._prepare%29%29) on virtual statements.
33
+
- The [`student-t` distribution](https://docs.racket-lang.org/math/Real_Distribution_Families.html#%28part._.Student-t_.Distributions%29) is part of the [`math/distributions` library](https://docs.racket-lang.org/math/dist.html).
34
+
-[Expeditor](https://docs.racket-lang.org/expeditor/index.html) supports customizing the prompt, using the [`#:prompt` keyword argument to `call-with-expeditor`](https://docs.racket-lang.org/expeditor/Expeditor_API.html#%28def._%28%28lib._expeditor%2Fmain..rkt%29._call-with-expeditor%29%29).
35
35
- There is a [guide to adding internationalization for a new (human) language.](https://racket.discourse.group/t/advent-2024-day-translate-drracket-interface-in-your-language/3407)
36
36
- Optimizations to racket/profile improve asymptotic speed for very large call graphs.
37
37
- The `#lang htdp/asl` language incorporates [Graphical Debugger](https://docs.racket-lang.org/drracket/debugger.html#%28part._.Debugger_.Buttons%29) support.
38
38
- There is lots of new documentation, and many defects repaired!
39
39
40
+
40
41
The following people contributed to this release:
41
42
42
43
a11ce, Alex Knauth, Alexander Shopov, Alexis King, Andrew
0 commit comments