Show HN: Salt – a systems language with Z3 theorem proving in the compiler
Salt est un langage système qui combine vérifications formelles au moment de la compilation avec une génération de code MLIR pour obtenir des performances comparables à clang -O3 sur des benchmarks équivalents. La compilation utilise Z3 pour prouver les contrats requires/ensures aux appels et retours, ce qui permet d'éliminer les vérifications à l'exécution quand la preuve réussit et de rapporter des contre-exemples sinon. Le modèle mémoire repose sur des arènes vérifiées pour éviter la collecte de déchets et l'empreinte du borrow checker, tandis que les opérations non vérifiées sont confinées dans des blocs unsafe explicites. La distribution comprend un écosystème complet écrit en Salt — noyau KeuOS, moteur d'inférence Basalt, magasin Lettuce, moteur graphique FACET et benchmarks C10M — montrant la viabilité pratique du langage. Le gestionnaire de paquets sp fournit compilation incrémentale et vérification inter-paquets des contrats, et les auteurs publient méthodologie et données brutes des mesures de performance.