Skip to content

Commit dd7d8b9

Browse files
committed
new 8.18 bullets, a bit of refactoring
1 parent 412ccee commit dd7d8b9

File tree

2 files changed

+56
-74
lines changed

2 files changed

+56
-74
lines changed

release-notes/release-notes.rkt

Lines changed: 39 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
;; the markdown used for the blog post.
66

77
(require "render-release-notes.rkt"
8-
"check-links.rkt")
8+
"check-links.rkt"
9+
)
910

1011
(define major-v 8)
11-
(define minor-v 17)
12+
(define minor-v 18)
1213

1314
(define version (~a "v"major-v"."minor-v))
1415

@@ -18,7 +19,8 @@
1819
(define blog-post-url
1920
(match* (major-v minor-v)
2021
[(8 16) "https://blog.racket-lang.org/2025/01/racket-v8-16.html"]
21-
[(8 17) "https://blog.racket-lang.org/2025/05/racket-v8-17.html"]))
22+
[(8 17) "https://blog.racket-lang.org/2025/05/racket-v8-17.html"]
23+
[(8 18) "https://blog.racket-lang.org/2025/08/racket-v8-18.html"]))
2224

2325

2426

@@ -33,75 +35,47 @@
3335
(define dr-core-url
3436
"https://github.com/racket/drracket/commit/ae16d6bc6e00a9498313cff035537ac98ef71194")
3537

36-
(define bfs-url
37-
(rur "generic-numbers.html#%28def._%28%28quote._~23~25kernel%29._bitwise-first-bit-set%29%29"))
38-
3938

4039
(define bullets
4140
(list
4241

43-
@bullet{The new @link[dr-core-url]{`drracket-core`} package provides a version of drracket with
44-
a smaller set of dependencies.}
45-
46-
@bullet{Typed Racket has support for @link[(rur "treelist.html")]{treelists}.}
47-
48-
@bullet{The package manager computes @link[(dur "pkg/Package_Concepts.html")]{checksums} for packages when required,
49-
allowing the use and automatic upgrade of packages without them.}
50-
51-
@bullet{The @link[bfs-url]{`bitwise-first-bit-set`} function returns the smallest bit that is
52-
set in the twos-complement representation of the given number.}
53-
54-
@bullet{The updated @link[(rur "Module_Names_and_Loading.html#%28def._%28%28quote._~23~25kernel%29._dynamic-require%29%29")]{`dynamic-require`} function makes it easier to use
55-
syntax bindings by allowing a syntax-thunk (or 'eval) to be used for them.}
56-
57-
@bullet{The @link[(rur "exns.html#%28def._%28%28quote._~23~25kernel%29._error-module-path-~3estring-handler%29%29")]{`error-module-path->string-handler`} parameter allows the customization
58-
of the display of module-paths in error messages.}
42+
@bullet{The racket-lang.org website no longer distributes Racket BC bundles, but
43+
it includes pre-built bundles for two flavors of ARM linux, AArch64 and 32-bit ARMv6 VFP.}
44+
45+
@bullet{XML structures are serializable.}
5946

60-
@bullet{Precision of certain @link[(rur "generic-numbers.html")]{numeric functions} (`sin`, `cos`, and others) is
61-
improved on Windows platforms by using the MSVCRT/UCRT libraries.}
62-
63-
@bullet{The @link[(rur "strings.html#%28def._%28%28quote._~23~25kernel%29._string-append%29%29")]{`string-append`} function has improved performance and reduced memory
64-
use for long lists of strings in the Racket CS implementation.
65-
Differences are clearly noticeable for lists of length 1 million.}
66-
67-
@bullet{@link[(rur "tcp.html")]{TCP ports} use `SO_KEEPALIVE`, instructing the kernel to send periodic
68-
messages while waiting for data to check whether the connection
69-
is still responsive.}
70-
71-
@bullet{Racket code using a terminal in Windows can receive mouse events as
72-
virtual terminal characters after using SetConsoleMode. (This is also
73-
already possible on macOS and Linux.) See the
74-
@link["https://docs.racket-lang.org/tui-term/index.html"]{tui-term} package
75-
for related example code.}
47+
@bullet{Scribble's HTML generation conforms better to modern standards.}
7648

77-
@bullet{The @link[(dur "json/index.html#%28part._.Parsing_.J.S.O.N_.Text_into_.J.S-.Expressions%29")]{`#:replace-malformed-surrogate?`} keyword can be used to specify
78-
a replacement for malformed unicode surrogates in JSON input}
7949

80-
@bullet{The @link[(dur "http-client/index.html")]{http-client} module no longer sends "Content-Length: 0" for
81-
requests without a body.}
50+
@bullet{Racket uses Unicode 16.0 for character and string operations.}
51+
52+
@bullet{The `redex-check` default generation strategy
53+
always uses random generation to supplement the enumerator.}
8254

83-
@bullet{The @link[(dur "raco/demod.html")]{demodularizer} (`compiler/demod`) can prune more unused assignments.}
55+
@bullet{DrRacket supports the use of shift-tab to go backward to previous
56+
indentation positions.}
8457

85-
@bullet{Several judgment rendering forms in @link[(dur "redex/index.html")]{Redex} are replaced by functions, allowing
86-
more convenient abstraction.}
58+
@bullet{The macro stepper supports the string-constants library,
59+
allowing internationalization of the stepper itself.}
8760

88-
@bullet{When a distribution includes no teaching languages, DrRacket’s language-dialog
89-
configuration moves into the preferences dialog and the “Language” menu disappears.}
61+
@bullet{The `struct` form supports `#:properties prop-alist-expr`, making it more convenient
62+
to attach multiple property values to a structure type.}
9063

91-
@bullet{The @link[(dur "math/index.html")]{math library} has better support for block-diagonal matrices, including
92-
both Racket and Typed Racket.}
64+
@bullet{The distro-build package has new infrastructure for build farms
65+
using docker images.}
9366

94-
@bullet{The @link[(dur "math/index.html")]{math library} contains improved implementations of acos and
95-
matrix-(cos-)angle.}
67+
@bullet{The `expt` function produces a more accurate result when its
68+
first argument is a flonum and its second argument is an exact integer
69+
that has no equivalent flonum representation than it did in prior versions.}
9670

97-
@bullet{The @link[(dur "stepper/index.html")]{stepper} again works for @link[(dur "teachpack/2htdpuniverse.html#(part._world._interactive)")]{`big-bang`} programs.}
71+
@bullet{TCP ports use `SO_KEEPALIVE` correctly.}
9872

99-
@bullet{There are many other repairs and documentation imprevements!
100-
}
73+
@bullet{Unsafe code can use “uninterruptible mode” instead of “atomic mode” to allow futures to run concurrently while preventing interruptions from other threads.}
74+
10175

76+
@bullet{The `net/imap` library supports IMAP's `move` operation.}
10277

103-
104-
@;{ @sub-bullet{@link[(rur "treelist.html#%28part._.Mutable_.Treelists%29")]{Mutable treelists} are @link[(rur "serialization.html")]{serializable}.}}
78+
@bullet{There are many other repairs and documentation improvements!}
10579

10680

10781

@@ -110,13 +84,14 @@
11084
))
11185

11286
(define contributors
113-
(list "Alexander Shopov" "Andrei Dorian Duma" "Bert De Ketelaere" "Bob Burger" "Bogdan Popa"
114-
"Bogdana Vereha" "Cameron Moy" "Chung-chieh Shan" "Cutie Deng" "D. Ben Knoble" "Dario Hamidi"
115-
"Dominik Pantůček" "Gustavo Massaccesi" "halfminami" "Jacqueline Firth" "Jason Hemann"
116-
"Jens Axel Søgaard" "Joel Dueck" "John Clements" "Jordan Harman" "Marc Nieper-Wißkirchen"
117-
"Matthew Flatt" "Matthias Felleisen" "Mike Sperber" "Noah Ma" "owaddell-ib" "Philippe Meunier"
118-
"Robby Findler" "Ryan Culpepper" "Ryan Ficklin" "Sam Phillips" "Sam Tobin-Hochstadt" "Shu-Hung You"
119-
"sogaiu" "Sorawee Porncharoenwase" "Stephen De Gabrielle" "Vincent Lee" "Wing Hei Chan"))
87+
'("Bob Burger"
88+
"Bogdan Popa" "Brad Lucier" "Carl Gay" "Chloé Vulquin" "D. Ben Knoble" "Gustavo Massaccesi"
89+
"Jacqueline Firth" "Jade Sailor" "Jarhmander" "Jason Hemann" "Jens Axel Søgaard" "Joel Dueck"
90+
"John Clements" "jyn" "Jörgen Brandt" "Mao Yifu" "Marc Nieper-Wißkirchen" "Matthew Flatt"
91+
"Matthias Felleisen" "Mike Sperber" "Noah Ma" "paralogismos" "Pavel Panchekha" "Philip McGrath"
92+
"Robby Findler" "Ryan Culpepper" "Sam Tobin-Hochstadt" "Shalok Shalom" "Steve Byan"
93+
"Vincent Lee" "Wing Hei Chan" "ZC Findler"))
94+
12095

12196
(define (go)
12297
;; abstraction between these two OBVIOUSLY possible, waiting on this until the first time
@@ -148,7 +123,7 @@
148123
(newline)
149124
(displayln "The following people contributed to this release:")
150125
(newline)
151-
(for-each displayln (render-contributors contributors))
126+
(displayln (render-contributors-md contributors))
152127
(newline)
153128
(displayln markdown-closing-block)
154129
(map displayln share-block))))

release-notes/render-release-notes.rkt

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
txt-render-bullet
99
md-render-bullet
1010
bullet-links
11-
display-lines horizontal-bar render-contributors)
11+
display-lines horizontal-bar
12+
render-contributors
13+
render-contributors-md)
1214

1315
;; yeah, I probably had better things to do than write a little string-reflowing
1416
;; function, sigh.
@@ -29,17 +31,22 @@
2931
(struct linkS (text url) #:transparent)
3032

3133
;; given a list of contributors, return a list of strings suitable for inclusion
32-
;; in the release notes
34+
;; in the txt release notes
3335
(define (render-contributors contributors)
3436
(string-reflow
35-
(apply
36-
string-append
37-
(append
38-
(add-between (all-but-last contributors) ", ")
39-
(list
40-
", and "
41-
(last contributors)
42-
".")))))
37+
(render-contributors-md contributors)))
38+
39+
;; given a list of contributors, return a list of strings suitable for inclusion
40+
;; in the markdown release notes
41+
(define (render-contributors-md contributors)
42+
(apply
43+
string-append
44+
(append
45+
(add-between (all-but-last contributors) ", ")
46+
(list
47+
", and "
48+
(last contributors)
49+
"."))))
4350

4451
(define (all-but-last l)
4552
(reverse (rest (reverse l))))

0 commit comments

Comments
 (0)