Présentation de la conférence

Le sixième RacketCon se tiendra les 3 et 4 octobre 2026 à Oakland, Californie, au Broadway Gallery Suite. L’événement, ouvert à tous les intéressés par le langage Racket, propose des sessions en présentiel et en streaming, avec une inscription anticipée avant le 13 septembre. Les enregistrements seront mis en ligne sur YouTube après la conférence.

Innovations techniques présentées

Typage progressif avec inférence locale – Fred Fu (PhD, Indiana University) expose les limites de l’inférence de type locale de Typed Racket lorsqu’un macro génère des lambda non annotés. Son prototype combine le typage d’occurrence et la sous‑typage algébrique pour inférer les types des paramètres lambda, évitant ainsi la réécriture manuelle des macros. Cette approche repose sur l’analyse du flux de contrôle et la propagation de contraintes algébriques, ce qui réduit le taux de rejet conservateur du système.

Pille, un langage orienté bas‑niveau – Lucas Myers (PhD, Northwestern University) introduit Pille, dérivé de Rhombus, qui compile via LLVM au lieu du VM Racket. En contournant la machine virtuelle, Pille améliore les performances sur des cibles contraintes comme les microcontrôleurs, tout en conservant la puissance des macros Rhombus. Le processus d’« enforestation » de Rhombus est grafté sur un cœur minimal, offrant un compromis entre métaprogrammation élevée et exécution native.

Treason, IDE résilient aux macros défectueuses – Mike Delmonaco (AWS) présente Treason, un prototype qui poursuit l’expansion macro même en présence d’erreurs. Le mécanisme clé, l’expansion sous‑expression guidée par des annotations de classe syntaxique, permet de récupérer des informations partielles pour alimenter les services IDE (autocomplétion, navigation). Cette récupération repose sur un modèle de spécification qui sépare la syntaxe de la sémantique, limitant l’impact des erreurs de macro sur l’expérience développeur.

Herbie, amélioration de la précision flottante – Pavel Panchekha (University of Utah) rappelle que les erreurs d’arrondi varient selon la formulation algébrique. Herbie, compilateur écrit en Racket, explore l’espace des réécritures symboliques pour identifier la version la plus précise d’une expression flottante. Le processus utilise des modèles d’erreur basés sur l’analyse de conditionnement numérique et applique des transformations comme la factorisation ou la rationalisation, démontrant une réduction notable des écarts par rapport aux valeurs exactes sur des benchmarks mathématiques.

Gestionnaires d’effets avec cio – JJ (programmeur et linguiste) décrit cio, une bibliothèque non typée d’effets pour Racket et Guile Scheme. Les gestionnaires d’effets, similaires aux continuations délimitées, offrent un contrôle non local via un petit nombre de primitives. L’implémentation de cio repose sur la capture de continuations et la propagation d’un contexte d’effet, tout en conservant la pureté logique grâce à la séparation entre invocation et implémentation. Les limites évoquées concernent la surcharge de la pile d’appels et la complexité de débogage dans des programmes fortement imbriqués.

Impacts et perspectives

Ces contributions renforcent la position de Racket comme laboratoire de recherche sur les langages extensibles. L’inférence de type améliorée pourrait être intégrée à Typed Racket, réduisant la friction entre macros et typage statique. Pille montre que la métaprogrammation peut coexister avec des exigences de performance native, ouvrant la voie à des DSL systèmes. Treason propose un modèle d’IDE résilient qui pourrait inspirer d’autres environnements de développement. Herbie, déjà utilisé dans des projets scientifiques, confirme l’intérêt d’une optimisation automatisée de la précision numérique. Enfin, cio illustre comment les abstractions de contrôle avancées peuvent être exposées aux programmeurs sans sacrifier la lisibilité. Chaque projet reste toutefois à l’épreuve du déploiement à grande échelle, notamment en termes de stabilité du runtime et de compatibilité avec les outils existants.