À propos du projet

Promise est un langage de programmation statiquement typé conçu pour l'efficacité des agents IA — et écrit par des agents IA. Il propose une propriété explicite (inspirée de Rust), une concurrence de style goroutine (inspirée de Go), une gestion algébrique des erreurs, des génériques et une correspondance de motifs exhaustive, sans effets cachés. **Fonctionnalités clés :** - Propriété et emprunt avec `&` (partagé), `~` (mutable) et `*` (pointeurs bruts) - Gestion algébrique des erreurs via `!`, `?^`, `?!` et gestionnaires basés sur la correspondance de motifs - Génériques avec contraintes de type - Énumérations avec données et correspondance de motifs exhaustive - Interpolation de chaînes et concurrence de style goroutine (`go expr` renvoie `Task[T]`) - Générateurs avec `yield` et `yield*` - Annotations méta pour des métadonnées déclaratives - Pas de macros ni de compilation conditionnelle — tout le code est entièrement visible **Catalogue mono-versionné :** L'écosystème est livré sous forme de versions « epoch » atomiques (par ex., `2026.0`). Pas de versions par paquet ni de fichiers de verrouillage. Chaque module est testé ensemble comme une unité. **Modules de la bibliothèque standard implémentés :** `io`, `json`, `os`, `net`, `tls`, `path`, `math`, `strings`, `time`, `http`, `gzip`, `crypto`, `encoding`. Prévu : `ai`, `auth`, `cloud`, `markdown`, `mcp`, `msgpack`, `sandbox`, `schema`, `term`, `toml`, `yaml`. **Chaîne d'outils autonome :** Le compilateur est un seul binaire (~15 Mo) qui regroupe la bibliothèque standard, les modules du catalogue et le runtime. Il configure sa propre chaîne d'outils LLVM 22 sous `~/.promise`. **Compilation LLVM native** pour Linux, macOS, Windows et WASM. **Utilisation :** ```sh promise build file.pr # compile en exécutable promise run file.pr # compile et exécute promise exec 'code' # exécution en ligne promise test file.pr # exécute les tests promise check file.pr # vérification de type uniquement ``` **La compilation depuis les sources** nécessite Go 1.22+, Java (pour ANTLR4), clang et LLVM 22+. Promise est construit à l'aide du Bounded-Autonomy Software Engineering (BASE), une méthodologie où les humains définissent l'intention durable et les critères de qualité tandis que les agents IA gèrent l'implémentation. En août 2026, le projet comprend 18 869 tests couvrant le compilateur et le langage. **Statut :** En développement actif, non destiné à une utilisation en production. Le compilateur est fonctionnel de bout en bout, mais attendez-vous à des imperfections et à des plantages. **Licence :** Apache-2.0 ou MIT.