Racket v9.0
(blog.racket-lang.org)- Racket 9.0 ist ein wichtiges Release, das parallele Threads einführt und die bisherige Unterstützung für Green Threads, futures und places erweitert
- Neue Threads können mit dem Argument
#:poolerzeugt werden; mit#:keep 'resultslassen sich Ergebnisse später überthread-waitabrufen - Der
black-box-Wrapper verhindert, dass der optimierende Compiler bestimmte Operationen entfernt, und erhöht so die Genauigkeit von Benchmarks - Die Funktion
decompile-linkletkann linklets wieder in S-Ausdrücke umwandeln, undprocessor-countwurde so geändert, dass sie die Parallelität zurückgibt - Enthält außerdem verschiedene Updates wie das „natipkg“-Paket für AArch64, eine hinzugefügte Weibull-Verteilung und Verbesserungen an der Dokumentation
Wichtige Änderungen in Racket 9.0
-
In diesem Release wird die Funktion parallele Threads (Parallel Threads) neu eingeführt
- Racket unterstützte bislang Green Threads, futures und places; parallele Threads kommen nun als wichtige Erweiterung hinzu
- Parallele Threads lassen sich über das Argument
#:poolerzeugen; mit#:keep 'resultskönnen Ergebnisse später mitthread-waitabgefragt werden
-
Der
black-box-Wrapper verhindert, dass der optimierende Compiler bestimmte Berechnungen vollständig entfernt- Das ist nützlich, um bei Benchmarks eine genaue Leistungsmessung sicherzustellen
-
Die Funktion
decompile-linkletkann linklets wieder auf S-Ausdrücke (s-expressions) abbilden- Damit lässt sich bei Codeanalyse und Debugging die interne Darstellung wiederherstellen
-
In BC Racket wurde die Funktion
processor-countso geändert, dass sie immer die Anzahl paralleler Prozessoren zurückgibt- Dadurch lässt sich in parallelen Laufzeitumgebungen konsistent die Prozessoranzahl ermitteln
-
Das „natipkg“-Paket für AArch64 wurde neu bereitgestellt und kann für die Paket-Build- und Test-Infrastruktur verwendet werden
Weitere Verbesserungen
- Die Funktion Check Syntax unterstützt jetzt das Verfolgen tiefer verschachtelter Identifikatoren im Feld „origin“ von Syntaxobjekten
- Zur
math-Bibliothek wurde die Weibull-Verteilung hinzugefügt - Enthält zahlreiche Bugfixes und Verbesserungen an der Dokumentation
Community und Mitwirkung
- Zu diesem Release haben mehrere Entwickler beigetragen, darunter Alexander Shopov, Bogdan Popa, Matthew Flatt und Matthias Felleisen
- Racket ist ein communitybasiertes Open-Source-Projekt und heißt neue Beitragende willkommen
- Informationen zur Beteiligung gibt es in racket/README.md
Feedback und Hinweis zur Verbreitung
- Fragen und Diskussionen sind in den Communities Racket Discourse oder Discord möglich
- Nutzer sowie plattformspezifische Paketmanager werden dazu ermutigt, die Release-Neuigkeiten zu teilen
- Offizieller Download: https://download.racket-lang.org
- Release-Ankündigung: https://blog.racket-lang.org/2025/11/racket-v9-0.html
1 Kommentare
Hacker-News-Kommentare
Der Kern dieser Neuigkeit ist, dass Racket jetzt parallele Threads unterstützt
Früher gab es zwar bereits Parallelisierungsmöglichkeiten wie places, aber dieser Ansatz ist deutlich leichtergewichtig und vertrauter
Da ich es mag, mit Racket Dinge zu bauen, freue ich mich darüber, dass sich dadurch der Einsatzbereich von Racket erweitert
places war nicht besonders flexibel. Man konnte Lambdas nicht einfach weitergeben, und
serializable-lambdaverhielt sich ansteckend, sodass man zur Laufzeit keine Funktionen, sondern nur Daten senden konnteDeshalb war es schwierig, eine Struktur zu bauen, die Arbeit auf mehrere places verteilt
Ich hoffe, dass das mit den neuen Concurrency-Funktionen nun möglich ist
Aus diesem Grund habe ich bisher statt Racket GNU Guile verwendet. Guile war bei der Nutzung mehrerer Kerne über futures oder fibers deutlich verlässlicher
Ich habe mit futures selbst ein paralleles Entscheidungsbaum-Modell gebaut und dabei eine nahezu lineare Geschwindigkeitssteigerung erzielt
Ich bin Clojure-Entwickler und mag Lisp-Sprachen. Deshalb würde ich gern wissen, was man mit Racket so macht
Wenn man dieses Video sieht, wirkt Racket vielleicht schwierig, wenn es nicht die erste Sprache ist, aber es ist leicht genug, dass sogar Kinder es lernen können
Ich mag Racket wirklich sehr
Aus Spaß habe ich ein Buch über Racket geschrieben, das man online kostenlos lesen kann
Unter den Scheme-Sprachen würde ich Racket und Gerbil empfehlen
Racket eignet sich mit seiner guten IDE sowie den umfangreichen Standard- und Third-Party-Bibliotheken gut für Einsteiger, und Gerbil ist gut für Systemprogrammierung oder Netzwerk-Utilities
Racket ist wirklich eine großartige Sprache
Es ist eine gute Lisp-Sprache zum Lernen, und ich erinnere mich noch an meine Aufgaben mit der DrRacket-IDE
Ich habe Lisp zum ersten Mal Mitte der 80er ausprobiert und bin später immer wieder darauf zurückgekommen, um neue Denkweisen und Programmiertechniken zu lernen
Auch Racket habe ich mehrfach ausprobiert, aber irgendwie passte die Software selbst nicht zu mir
Vielleicht wäre es in Ordnung, wenn ich konsequent dabei bliebe, aber ich kann mir noch immer nicht vorstellen, ein großes Projekt in Racket zu schreiben
Es war sogar langsamer als Python, und seit der Neuschreibung auf Basis von Chez Scheme hat sich das vielleicht verbessert, aber inzwischen nutze ich schnelles und leichtgewichtiges Common Lisp
Auf Racket aufmerksam geworden bin ich, als ich gesehen habe, dass John Carmack vor 10 Jahren Oculus-bezogene Arbeit mit Racket gemacht hat
Passendes Video
Arc-Wiki-Artikel
Lisp ist an sich schon eine Metasprache, und Racket ist noch meta-er
Man kann es praktisch als Baukasten zum Erstellen von Sprachen bezeichnen
Als ich Racket im PL-Unterricht eingesetzt habe, hatten die Studierenden Schwierigkeiten mit der Lisp-Syntax, weil sie an Java oder Python gewöhnt waren
Deshalb bin ich mir nicht sicher, für wen genau diese Sprache gedacht ist
Im Blog von Bogdan Popa (defn.io) gibt es viele interessante Informationen über Racket
Ich freue mich darauf, die neue Threading-Funktion selbst auszuprobieren
Ich habe Racket ein paarmal ausprobiert, aber die IDE war mir zu wenig intuitiv und zu umständlich
Ich frage mich, ob das ein beabsichtigtes Design ist oder einfach daran liegt, dass es keine bessere Alternative gibt
Racket wird auch in VSCode (Magic Racket, Langserver), Emacs (Racket Mode), Vim usw. gut unterstützt
Siehe die offizielle Dokumentation und das Langserver-Repository
DrRacket hat weiterhin Funktionen wie den Macro Stepper, die andere IDEs nicht haben, und ist deshalb immer noch nützlich
Racket ist eine interessante Sprache
An unserer Universität wird in der CS-Einführungsveranstaltung eine Bildungsversion von Racket verwendet
Manche Studierende hassen es, aber es gibt auch Leute, die es stillschweigend mögen