Racket v9.0
(blog.racket-lang.org)- Racket 9.0 est une version majeure qui introduit les threads parallèles (Parallel Threads), en étendant la prise en charge existante des green threads, des futures et des places
- Les nouveaux threads peuvent être créés avec l’argument
#:pool, et avec le réglage#:keep 'results, il est possible de récupérer les résultats plus tard viathread-wait - Le wrapper
black-boxempêche le compilateur d’optimisation de supprimer certaines opérations, ce qui améliore la précision des benchmarks - La fonction
decompile-linkletpeut reconvertir un linklet en S-expression, etprocessor-counta été modifiée pour renvoyer le nombre de traitements parallèles - Diverses mises à jour sont incluses, comme le package « natipkg » pour AArch64, l’ajout de la distribution de Weibull et des améliorations de la documentation
Principaux changements de Racket 9.0
-
Cette version introduit une nouvelle fonctionnalité de threads parallèles (Parallel Threads)
- Racket prenait déjà en charge les green threads, les futures et les places, mais les threads parallèles constituent une extension majeure supplémentaire
- Les threads parallèles peuvent être créés via l’argument
#:pool, et avec#:keep 'results, leurs résultats peuvent être récupérés plus tard avecthread-wait
-
Le wrapper
black-boxempêche le compilateur d’optimisation d’éliminer complètement certains calculs- Il est utile pour garantir des mesures de performance précises lors de l’exécution de benchmarks
-
La fonction
decompile-linkletpermet de remapper un linklet en S-expression- Elle offre la possibilité de restaurer la représentation interne pour l’analyse du code et le débogage
-
Dans BC Racket, la fonction
processor-counta été modifiée pour toujours renvoyer le nombre de processeurs parallèles- Cela permet de vérifier de manière cohérente le nombre de processeurs dans un environnement d’exécution parallèle
-
Le package « natipkg » pour AArch64 est désormais distribué, afin d’être utilisé dans l’infrastructure de build et de test des packages
Améliorations supplémentaires
- La fonctionnalité Check Syntax prend désormais en charge le suivi d’identifiants imbriqués plus profondément dans le champ « origin » des objets de syntaxe
- La bibliothèque
mathajoute la distribution de Weibull - De nombreuses corrections de bugs et améliorations de la documentation sont incluses
Communauté et participation
- Plusieurs développeurs ont contribué à cette version, dont Alexander Shopov, Bogdan Popa, Matthew Flatt et Matthias Felleisen
- Racket est un projet open source porté par sa communauté, et accueille volontiers de nouveaux contributeurs
- Les modalités de participation sont disponibles dans racket/README.md
Retours et relais de l’annonce
- Les questions et discussions peuvent avoir lieu sur les communautés Racket Discourse ou Discord
- Les utilisateurs et les gestionnaires de paquets selon les plateformes sont encouragés à relayer l’annonce de la version
- Téléchargement officiel : https://download.racket-lang.org
- Annonce de la version : https://blog.racket-lang.org/2025/11/racket-v9-0.html
1 commentaires
Avis Hacker News
L’essentiel de cette annonce, c’est que Racket prend désormais en charge les threads parallèles
Il existait déjà des méthodes de parallélisation comme places, mais cette approche est bien plus légère et familière
Comme j’aime créer des choses avec Racket, je me réjouis de voir son champ d’usage s’élargir grâce à cela
places manquait de souplesse. On ne pouvait pas facilement transmettre des lambdas, et
serializable-lambdafonctionnait de manière contagieuse, si bien qu’au moment de l’exécution on ne pouvait envoyer que des données, pas des fonctionsDu coup, il était difficile de construire une architecture qui répartit le travail entre plusieurs place
J’espère que ce sera possible avec cette nouvelle fonctionnalité de concurrence
Jusqu’ici, c’est pour cette raison que j’utilisais GNU Guile plutôt que Racket. Avec ses futures ou ses fibers, Guile exploitait les multicœurs de manière bien plus fiable
J’ai moi-même construit un modèle parallèle d’arbre de décision avec des futures, et j’ai obtenu un gain de vitesse presque linéaire
Je suis développeur Clojure, donc j’aime la famille Lisp. J’aimerais savoir ce que vous construisez avec Racket
Quand on regarde cette vidéo, on voit que Racket peut sembler difficile si ce n’est pas votre premier langage, mais qu’il reste assez simple pour être appris par des enfants
J’aime vraiment beaucoup Racket
J’ai écrit pour le plaisir un livre sur Racket, lisible gratuitement en ligne
Parmi les langages de la famille Scheme, je recommande Racket et Gerbil
Racket convient bien aux débutants grâce à son IDE, à ses bibliothèques standard et tierces très riches, tandis que Gerbil est excellent pour la programmation système ou les utilitaires réseau
Racket est vraiment un langage formidable
C’est un bon langage de la famille Lisp pour apprendre, et j’ai encore en mémoire mes devoirs faits avec l’IDE DrRacket
J’ai expérimenté Lisp pour la première fois au milieu des années 80, et j’y suis revenu de temps en temps depuis pour découvrir de nouvelles façons de penser et de nouvelles techniques de programmation
J’ai aussi essayé Racket plusieurs fois, mais il y avait quelque chose dans le logiciel lui-même qui ne me convenait pas
Peut-être qu’en l’utilisant régulièrement cela irait mieux, mais j’ai encore du mal à imaginer écrire un gros projet en Racket
C’était encore plus lent que Python. Peut-être que cela s’est amélioré depuis la réécriture sur Chez Scheme, mais aujourd’hui j’utilise un Common Lisp rapide et léger
J’ai découvert Racket en voyant que John Carmack avait fait du travail lié à Oculus avec Racket il y a 10 ans
Vidéo associée
Article Wikipédia sur Arc
Lisp est en soi un métalangage, et Racket l’est encore plus
On pourrait pratiquement parler d’un kit de fabrication de langages
Quand j’ai utilisé Racket pour enseigner un cours de PL, les étudiants, habitués à Java ou Python, avaient du mal avec la syntaxe Lisp
Du coup, je ne sais pas très bien à qui ce langage s’adresse exactement
Le blog de Bogdan Popa (defn.io) contient beaucoup d’informations intéressantes sur Racket
J’ai hâte d’essayer moi-même la nouvelle fonctionnalité de threading
J’ai essayé Racket plusieurs fois, mais l’IDE m’a semblé trop peu intuitif et maladroit
Je me demande si c’est un choix de design assumé, ou simplement le résultat de l’absence de meilleure alternative
Racket est aussi bien pris en charge dans VSCode (Magic Racket, Langserver), Emacs (Racket Mode), Vim, etc.
Vous pouvez consulter la documentation officielle et le dépôt Langserver
DrRacket reste intéressant grâce à des fonctions absentes des autres IDE, comme le macro stepper
Racket est un langage amusant
Dans notre université, on utilise une version pédagogique de Racket pour les cours d’introduction à l’informatique en première année
Certains étudiants détestent ça, mais d’autres l’apprécient discrètement