The release announcement sketch that I have so far is below. Please
mail me new items and/or edits.
Please phrase announcements using complete sentences and avoid the
word "now".
----------------------------------------------------------------------
Racket 9.2 uses Unicode 17.0 for character and string operations.
Typed Racket has repaired the types of asin and acos. This may
cause existing programs not to type check.
This release includes internal support for a more static "ffi2" FFI
(to be used in a future package).
The terminal-file-position function counts bytes written to ports
connected to a terminal, such as stdin and stderr.
The match form rejects non-linear patterns with mismatched
ellipsis depth.
Cross-phase persistent modules allow more types of quoted data.
The #%foreign-inline core syntactic form provides unsafe access to
facilities provided at the linklet layer by a Racket
implementation.
The implementations of member, memw, when, unless, let/ec,
and cond are rewritten to use only racket/kernel syntax
The impersonator-property-predicate-procedure? function identifies
procedures created by make-impersonator-property.
Polymorphic Struct types are printed using type arguments (e.g., (Array Byte)) rather than exposing an internal representation.
The stepper's display of numbers better matches the language
settings.
Scribble documents that do not use the Racket-manual style get an initial-scale of 1.0, instead of the manual style's 0.8, but this
can be configured using the initial-scale property.
By default, margin notes appear inline for narrow displays in all
styles, not just in the Racket-manual style.
Big-bang programs distributed as .dmg files correctly handle the close-on-stop feature.
There are many other repairs and documentation improvements!
The following people contributed to this release:
Alexander Shopov, Alexis King, Asilo, Bert De Ketelaere, Bob Burger,
Bogdan Popa, Chung-chieh Shan, François-René Rideau, Gustavo
Massaccesi, Ilya Klyuchnikov, Jade Sailor, Jamie Taylor, John
Clements, Jonathan Simpson, LS_Hower, Matthew Flatt, Matthias
Felleisen, Mike Sperber, Pavel Panchekha, Philippe Meunier, RMOlive,
Robby Findler, Roman Klochkov, Sam Tobin-Hochstadt, Shu-Hung You,
Tejas Sanap, Vincent Lee, and Wing Hei Chan.
These are what the links are expected to be. I took the links from Racket changing pre-release to docs and removing doc/ to get what I believe will be the correct address when the upgrade is published.
Racket 9.2 uses Unicode 17.0 for character and string operations.
Typed Racket has repaired the types of asin and acos. This may
cause existing programs not to type check.
This release includes internal support for a more static "ffi2" FFI
(to be used in a future package).
The terminal-file-position function counts bytes written to ports
connected to a terminal, such as stdin and stderr.
The match form rejects non-linear patterns with mismatched
ellipsis depth.
Cross-phase persistent modules allow more types of quoted data.
The #%foreign-inline core syntactic form provides unsafe access to
facilities provided at the linklet layer by a Racket
implementation.
The implementations of member, memw, when, unless, let/ec,
and cond are rewritten to use only racket/kernel syntax
Polymorphic Struct types are printed using type arguments (e.g., (Array Byte)) rather than exposing an internal representation.
The Stepper's display of numbers better matches the language
settings.
Scribble documents that do not use the Racket-manual style get an initial-scale of 1.0, instead of the manual style's 0.8, but this
can be configured using the initial-scale property.
By default, margin notes appear inline for narrow displays in all
styles, not just in the Racket-manual style.
Big-bang programs distributed as .dmg files correctly handle the close-on-stop feature.
- Racket 9.2 uses Unicode 17.0 for character and string operations.
- Typed Racket has repaired the types of `asin` and `acos`. This may
cause existing programs not to type check.
- This release includes internal support for a more static "ffi2" FFI
(to be used in a future package).
- The [`terminal-file-position`](https://docs.racket-lang.org/reference/port-buffers.html#%28def._%28%28quote._~23~25kernel%29._terminal-file-position%29%29) function counts bytes written to ports
connected to a terminal, such as `stdin` and `stderr`.
- The [`match`](https://docs.racket-lang.org/reference/match.html#%28form._%28%28lib._racket%2Fmatch..rkt%29._match%29%29) form rejects non-linear patterns with mismatched
ellipsis depth.
- Cross-phase persistent modules allow more types of `quote`d data.
- The [`#%foreign-inline`](https://docs.racket-lang.org/reference/foreign-inline.html#%28form._%28%28quote._~23~25kernel%29._~23~25foreign-inline%29%29) core syntactic form provides unsafe access to
facilities provided at the linklet layer by a Racket
implementation.
- The implementations of `member`, `memw`, `when`, `unless`, `let/ec`,
and `cond` are rewritten to use only [racket/kernel](https://docs.racket-lang.org/reference/Kernel_Forms_and_Functions.html) syntax
- The [`impersonator-property-predicate-procedure?`](https://docs.racket-lang.org/reference/chaperones.html#%28def._%28%28quote._~23~25kernel%29._impersonator-property-predicate-procedure~3f%29%29) function identifies
procedures created by `make-impersonator-property`.
- Polymorphic Struct types are printed using type arguments (e.g., `
(Array Byte)`) rather than exposing an internal representation.
- [The Stepper](https://docs.racket-lang.org/stepper/index.html)'s display of numbers better matches the language
settings.
- [Scribble](https://docs.racket-lang.org/scribble/index.html) documents that do not use the Racket-manual style get an
`initial-scale` of 1.0, instead of the manual style's 0.8, but this
can be configured using the `initial-scale` property.
- By default, margin notes appear inline for narrow displays in all
styles, not just in the Racket-manual style.
- [Big-bang](https://docs.racket-lang.org/teachpack/2htdpuniverse.html) programs distributed as .dmg files correctly handle the
`close-on-stop` feature.
- Racket 9.2 uses Unicode 17.0 for character and string operations.
- Typed Racket has repaired the types of `asin` and `acos`. This may
cause existing programs not to type check.
- This release includes internal support for a more static "ffi2" FFI
(to be used in a future package).
- The [`terminal-file-position`](https://docs.racket-lang.org/reference/port-buffers.html#%28def._%28%28quote._~23~25kernel%29._terminal-file-position%29%29) function counts bytes written to ports
connected to a terminal, such as `stdin` and `stderr`.
- The [`match`](https://docs.racket-lang.org/reference/match.html#%28form._%28%28lib._racket%2Fmatch..rkt%29._match%29%29) form rejects non-linear patterns with mismatched
ellipsis depth.
- Cross-phase persistent modules allow more types of `quote`d data.
- The [`#%foreign-inline`](https://docs.racket-lang.org/reference/foreign-inline.html#%28form._%28%28quote._~23~25kernel%29._~23~25foreign-inline%29%29) core syntactic form provides unsafe access to
facilities provided at the linklet layer by a Racket
implementation.
- The implementations of `member`, `memw`, `when`, `unless`, `let/ec`,
and `cond` are rewritten to use only [racket/kernel](https://docs.racket-lang.org/reference/Kernel_Forms_and_Functions.html) syntax
- The [`impersonator-property-predicate-procedure?`](https://docs.racket-lang.org/reference/chaperones.html#%28def._%28%28quote._~23~25kernel%29._impersonator-property-predicate-procedure~3f%29%29) function identifies
procedures created by `make-impersonator-property`.
- In Typed Racket, polymorphic `Struct` types are printed using type arguments (e.g., `
(Array Byte)`) rather than exposing an internal representation.
- [The Stepper](https://docs.racket-lang.org/stepper/index.html)'s display of numbers better matches the language
settings.
- [Scribble](https://docs.racket-lang.org/scribble/index.html) documents that do not use the Racket-manual style get an
`initial-scale` of 1.0, instead of the manual style's 0.8, but this
can be configured using the `initial-scale` property.
- By default, margin notes appear inline for narrow displays in all
styles, not just in the Racket-manual style.
- [Big-bang](https://docs.racket-lang.org/teachpack/2htdpuniverse.html) programs distributed as .dmg files correctly handle the
`close-on-stop` feature.
Perhaps also for the match change say something? (Not sure what on this one but perhaps a link to the issue? Something like "A potentially backwards-incompatible change, see [link] for details"?
- The [`match`](https://docs.racket-lang.org/reference/match.html#%28form._%28%28lib._racket%2Fmatch..rkt%29._match%29%29) form rejects non-linear patterns with mismatched
ellipsis depth. A potentially backwards-incompatible change, see [commit c42ebbf](https://github.com/racket/racket/commit/c42ebbf7bd761e843de77a8311dc3c3b4faa5bdd) for details.
match actually checks that when non-linear patterns (patterns where the same variable is used multiple times) are used with ..., the two parts of the matched value actually are equal. Additionally, match rejects non-linear patterns where one use of the variable is used with ... and another is not.
Typed Racket's types for the asin and acos procedures correctly handle situations where the function produces a complex number, avoid unsound result that were previously possible.