À propos du service
TraduitJ'écris du code éprouvé dans Chez Scheme pour des équipes qui ont besoin d'une véritable vitesse native, pas d'un interpréteur qui a l'air bien seulement dans les démos. Au cours des neuf dernières années, j'ai expédié des compilateurs, des outils d'exécution et des services durables dans Chez Scheme, y compris un travail directement sous le backend Racket où Chez Scheme porte la charge principale. Si vous avez un cœur numérique, un analyseur, un moteur de règles ou un pipeline de données qui est trop lent dans un langage de script, je vais le porter vers Chez Scheme et le faire fonctionner presque aussi vite que du C écrit à la main.
Chaque jour, j'utilise la surface complète de R6RS : structure de bibliothèque propre, imports de phase, types d'enregistrement appropriés, hiérarchies de conditions et E/S portables. Je suis à l'aise dans le système de macros — j'écris des transformations hygiéniques avec syntax-rules et des transformateurs syntax-case complets, construis de petits DSL intégrés et démêle des macros désordonnées afin qu'elles s'étendent de manière prévisible et se compilent rapidement. Lorsque la performance compte, je lis le code machine que Chez Scheme génère, ajuste les niveaux d'optimisation, réduit les allocations, applique des spécialisations flonum et fixnum, et appelle des primitives non sécurisées uniquement là où cela est prouvé correct.
L'intégration et l'interopérabilité sont une grande partie de mon travail. Je lie Chez Scheme à C et Rust via son interface de fonction étrangère, fais de Scheme une couche de script à l'intérieur d'un grand hôte, et emballe des fichiers de démarrage et du code objet afin que le déploiement soit un seul artefact. Je gère également les threads, la gestion des ressources de style gardien, la gestion des signaux et l'arrêt en douceur pour les services qui doivent vivre pendant des mois.
Un résultat typique : un module ou un service fonctionnel et mesuré, une suite de tests lisible, des scripts de construction et un court document décrivant l'architecture et les points d'extension. Je profile avant et après, donc les accélérations sont mesurées, pas revendiquées. Envoyez-moi du code lent ou une spécification brute — et je dirai honnêtement si Chez Scheme convient ici et quel gain réel est possible.
Chaque jour, j'utilise la surface complète de R6RS : structure de bibliothèque propre, imports de phase, types d'enregistrement appropriés, hiérarchies de conditions et E/S portables. Je suis à l'aise dans le système de macros — j'écris des transformations hygiéniques avec syntax-rules et des transformateurs syntax-case complets, construis de petits DSL intégrés et démêle des macros désordonnées afin qu'elles s'étendent de manière prévisible et se compilent rapidement. Lorsque la performance compte, je lis le code machine que Chez Scheme génère, ajuste les niveaux d'optimisation, réduit les allocations, applique des spécialisations flonum et fixnum, et appelle des primitives non sécurisées uniquement là où cela est prouvé correct.
L'intégration et l'interopérabilité sont une grande partie de mon travail. Je lie Chez Scheme à C et Rust via son interface de fonction étrangère, fais de Scheme une couche de script à l'intérieur d'un grand hôte, et emballe des fichiers de démarrage et du code objet afin que le déploiement soit un seul artefact. Je gère également les threads, la gestion des ressources de style gardien, la gestion des signaux et l'arrêt en douceur pour les services qui doivent vivre pendant des mois.
Un résultat typique : un module ou un service fonctionnel et mesuré, une suite de tests lisible, des scripts de construction et un court document décrivant l'architecture et les points d'extension. Je profile avant et après, donc les accélérations sont mesurées, pas revendiquées. Envoyez-moi du code lent ou une spécification brute — et je dirai honnêtement si Chez Scheme convient ici et quel gain réel est possible.