seed Aperçu
seed est un langage système impératif, typé statiquement et orienté expression. Il cible une lisibilité simple de type Python lorsque cela est possible tout en conservant le contrôle C/Rust-class sur la disposition, l'exécution, la liaison et l'accès matériel de bas niveau.
Le langage n'a pas de GC, de syntaxe à vie, de déroulement des exceptions, d'exécution asynchrone cachée ou de libc obligatoire. Les coûts tels que l'allocation, le clonage profond, la conservation du nombre de références, le blocage, les appels système et le chargement dynamique sont explicites.
Identité actuelle
- nom de la langue :
seed - extension source :
.sd - encodage source : UTF-8
- texte : possédé
stringet empruntéstr, tous deux valables UTF-8 - identifiants : minuscules en forme de serpent ASCII, y compris les noms de types
- constantes : casse du serpent supérieur ASCII
- compilateur : compilateur opérationnel propre LLVM sous
compiler/llvm
Modèle de base
- copier des scalaires ;
- déplacer les ressources possédées ;
- emprunter des vues en lecture seule sans allocation ;
- cloner explicitement ;
- nettoyer les valeurs gérées en direct exactement une fois sur les sorties structurées ;
- utilisez
linear tpour les obligations ponctuelles ; - utiliser
unsafeuniquement autour des opérations brutes auditées ; - utiliser des ADT,
result/option, exhaustifmatch, et?pour les flux récupérables ; - utilisez les bibliothèques structurées
spawnet task/channel ordinaires au lieu de async/await.
Petit noyau et écosystème
Les fichiers, la mise en réseau, les processus, la sérialisation, le formatage, les collections et la synchronisation résident dans des bibliothèques compilées séparément. Les bibliothèques hébergées sont partagées dynamiquement par défaut ; la liaison statique est explicite. Les programmes autonomes, le noyau, les pilotes et les programmes de démarrage utilisent le même langage dans des profils d'exécution restreints.
Limites actuelles
Le compilateur propre implémente les f-strings de phase 1 et de phase 2 pour le texte, les booléens, les entiers, les flottants IEEE-754, les spécificateurs de format et les valeurs statiques. display/debug traits. Il n'implémente pas l'héritage enum, noms nominaux en majuscules, return, # commentaires, intégrés chan<t>/send/recv, une génération détachée, des macros ou un handle au niveau du langage renvoyé directement par spawn. La bibliothèque de tâches fournit des résultats structurés typés. Packages reproductibles, LSP, doc/lint, et les artefacts incrémentiels exacts sont implémentés par Gate 15 outillages.
Gate La portabilité 14 est toujours en cours : Windows x86-64 a exigé une preuve d'exécution de Wine ; macOS x86-64 attend l'exécution native d'Intel et macOS arm64 reste explicitement à liaison croisée uniquement.