|
5 | 5 | ;; the markdown used for the blog post.
|
6 | 6 |
|
7 | 7 | (require "render-release-notes.rkt"
|
8 |
| - "check-links.rkt") |
| 8 | + "check-links.rkt" |
| 9 | + ) |
9 | 10 |
|
10 | 11 | (define major-v 8)
|
11 |
| -(define minor-v 17) |
| 12 | +(define minor-v 18) |
12 | 13 |
|
13 | 14 | (define version (~a "v"major-v"."minor-v))
|
14 | 15 |
|
|
18 | 19 | (define blog-post-url
|
19 | 20 | (match* (major-v minor-v)
|
20 | 21 | [(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"])) |
22 | 24 |
|
23 | 25 |
|
24 | 26 |
|
|
33 | 35 | (define dr-core-url
|
34 | 36 | "https://github.com/racket/drracket/commit/ae16d6bc6e00a9498313cff035537ac98ef71194")
|
35 | 37 |
|
36 |
| -(define bfs-url |
37 |
| - (rur "generic-numbers.html#%28def._%28%28quote._~23~25kernel%29._bitwise-first-bit-set%29%29")) |
38 |
| - |
39 | 38 |
|
40 | 39 | (define bullets
|
41 | 40 | (list
|
42 | 41 |
|
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.} |
59 | 46 |
|
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.} |
76 | 48 |
|
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} |
79 | 49 |
|
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.} |
82 | 54 |
|
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.} |
84 | 57 |
|
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.} |
87 | 60 |
|
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.} |
90 | 63 |
|
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.} |
93 | 66 |
|
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.} |
96 | 70 |
|
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.} |
98 | 72 |
|
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 | + |
101 | 75 |
|
| 76 | + @bullet{The `net/imap` library supports IMAP's `move` operation.} |
102 | 77 |
|
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!} |
105 | 79 |
|
106 | 80 |
|
107 | 81 |
|
|
110 | 84 | ))
|
111 | 85 |
|
112 | 86 | (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 | + |
120 | 95 |
|
121 | 96 | (define (go)
|
122 | 97 | ;; abstraction between these two OBVIOUSLY possible, waiting on this until the first time
|
|
148 | 123 | (newline)
|
149 | 124 | (displayln "The following people contributed to this release:")
|
150 | 125 | (newline)
|
151 |
| - (for-each displayln (render-contributors contributors)) |
| 126 | + (displayln (render-contributors-md contributors)) |
152 | 127 | (newline)
|
153 | 128 | (displayln markdown-closing-block)
|
154 | 129 | (map displayln share-block))))
|
|
0 commit comments