SBCL Fibers – Lightweight Cooperative Threads
Le document décrit un projet expérimental de fibres légères en SBCL, des threads coopératifs en espace utilisateur en développement actif. L’objectif est de préserver la sécurité avec le GC de SBCL, d’intégrer transparentement le code existant et d’obtenir un bas coût de commutation tout en tenant compte de la scalabilité. Les fibres sont créées avec make-fiber, soumises à un groupe d’ordonnanceurs et réparties sur plusieurs carriers grâce au travail en volée (work stealing). La gestion mémoire et GC repose sur une architecture à deux listes, une conservation conservatrice des piles et une TLS overlay pour sauvegarder les variables dynamiques sans détruire le binding stack. Le système prévoit des backends I/O multiplateformes (epoll/kqueue/poll fallback), du stack pooling, et une intégration avec Hunchentoot, avec des détails de performances et de portabilité sur x86-64, ARM64, PPC et RISCV.