Référence de la bibliothèque opérationnelle
Cette page répertorie les packages seed ordinaires mis en scène par le compilateur opérationnel LLVM de seed/compiler/llvm/libs. Il ne traite pas chaque répertoire de l'arborescence de compatibilité Grove de niveau supérieur comme un package actuel.
Importer et créer un modèle
Les packages de base du référentiel utilisent des importations nues :
use "io"
use "parse"
use "vec"
L'incrément du lanceur build et run les chemins résolvent ces noms, construisent profile/target-compatible natif et .sdi artefacts et réutiliser les générations installées exactes. Le plus étroit check La sous-commande appelle actuellement la vérification directe de la source et ne prépare pas en premier un package nu manquant. Un explicite --static build sélectionne la correspondance statique seed dépendances; la liaison hébergée ordinaire utilise par défaut les artefacts dynamiques compatibles avec le profil.
La disponibilité reste limitée par le manifeste de chaque package et la matrice de capacités cibles canoniques. Un package présent dans l’arborescence source n’ajoute pas de services d’exécution à une cible qui en manque.
Catalogue de packages
| Forfait | Surface publique principale | Rôle |
|---|---|---|
box |
box_new, view, into_inner |
Indirection unique faillible pour les valeurs récursives ou grandes |
byte_buffer |
byte_buffer_new, reserve, push, extend, resize, into_bytes |
Construction d'octets initialisée en fonction de la capacité avec croissance faillible vérifiée |
fibonacci |
fibonacci_i64 |
Fibonacci itératif vérifié sans allocation renvoyant none pour une entrée négative ou un débordement |
file |
write_text, write_stdout, write_stderr, variantes de format |
Wrappers de compatibilité de sortie hébergés basés sur des descripteurs |
format |
bool_text, option_bool_text |
Petits assistants de format texte statique |
io |
input_stream, output_buffer, read/write/all et opérations de formatage |
Typé partiel et hébergé en mémoire tampon I/O avec io_error |
math |
sqrt_*, abs_*, min_*, max_* |
Portable en ligne f32/f64 opérations |
net |
open_ipv4_stream, socket |
Wrapper de socket de flux IPv4 hébergé minimal |
parse |
parse_i*, parse_u*, parse_*_or |
Analyse d'entiers vérifiée avec parse_error typé et valeurs par défaut explicites |
process |
current_id, argument_count, argument, environment, process_fork, process_exec_args, process_exec_args_with_environment, process_change_directory, process_wait |
Vues process/environment sans allocation et primitives de sous-processus hébergés limités |
serialize |
encode_bool, decode_bool |
Surface de sérialisation sûre et représentative minimale |
mobile |
liaisons de plateforme, cycle de vie, saisie, affichage, presse-papiers | Android API 21/29/37 ARM64 AVD et iOS 26.5 Exécution du simulateur ARM64 |
path_file |
file_descriptor, open, read, write, metadata |
Descripteurs de chemin d'accès détenus pour la séquence vérifiée I/O, renommage atomique et verrouillage consultatif |
slice |
slice_split_at_mut, marche arrière, rotation, aides aux fenêtres |
Algorithmes génériques sans allocation sur des tranches typées natives |
sort |
fonctions de tri scalaire et sort_by_key |
Tri par tranches mutables sur place, y compris l'envoi de clés statiques pour les valeurs de déplacement uniquement |
system |
wrappers d'adresses, tables de pages, MMIO, atomiques, allocation de bosses, pinned/DMA valeurs | Abstractions de systèmes autonomes auditées concernant des constructions explicitement dangereuses |
task |
canaux, jointures, résultats saisis, événements, annulations, groupes d'attente, sémaphores, barrières, verrous | Communication et synchronisation structurées basées sur un planificateur |
text |
utf8_next, utf8_count, utf8_validate, split_ascii |
Curseurs scalaires UTF-8 validation/counting sans allocation et jeton délimité par ASCII |
time |
monotonic_ms, wall_time_seconds, wall_time_ms |
Valeurs hébergées du temps écoulé et de l'horloge murale Unix |
vec |
vec, API de file d'attente, d'ensemble, de mappage et de mutation faillible |
Collections génériques avec nettoyage exact et vues vérifiées |
Packages d'application au niveau supérieur Grove l'arbre comprend std-uuid 0,2. Il fournit sans allocation UUID validation de texte, validation stricte RFC 9562 UUIDv7, déterministe uuid_v7_from_parts, et faillible uuid_v7 génération soutenue par des millisecondes d'horloge murale hébergées plus 74 bits du système d'exploitation audité entropy paquet. Les UUID restent des identifiants plutôt que des informations d'identification.
Conventions de propriété et d’erreur
Les packages opérationnels suivent le modèle de propriété du langage :
- les constructeurs qui allouent le retour
result<t, alloc_error>oualloc_result<t>; - les valeurs possédées déplacent et exécutent leur destructeur exactement une fois sur les sorties structurées ;
- emprunté
stret les résultats des tranches sont préservés receiver/input provenance; @mutles méthodes de réception détiennent des prêts exclusifs à portée d'appel et persistent les changements chez l'appelant ;- les assistants consommateurs explicites transfèrent la propriété plutôt que de cacher les clones ;
- la construction du pointeur brut reste
unsafe, même lorsque les méthodes ultérieures sont sûres parce que le wrapper préserve l'invariant audité ; - récupérable I/O et les échecs d'analyse utilisent les ADT du package plutôt que la sentinelle valeurs ou une terminaison implicite du processus.
I/O
Le nouveau code devrait préférer io aux wrappers de compatibilité file plus étroits. La distinction importante est la saisie partielle :
input_stream.read(mut []u8)renvoie un nombre data/EOF tapé ;stdin_read_all()est disponible lorsqu'il est souhaité de conserver l'intégralité de l'entrée ;- les opérations de sortie distinguent une écriture de
write_all; - La chaîne f
format_argspeut être écrite directement sans allouer de propriété. chaîne.
byte_buffer et io partagent le contrat de préfixe initialisé. Les appelants sûrs n’observent jamais la capacité disponible non initialisée.
Grove exécution de la commande
Le package Grove command fournit une exécution enfant basée sur argv limitée pour les applications hébergées. command_run_configured_with_stdin_file a le même contrat de répertoire de travail, d'environnement, de délai d'attente et de limite de capture que command_run_configured, et connecte en outre un fichier d'entrée standard existant à l'entrée standard de l'enfant. Le fichier est ouvert sans suivre un lien symbolique final et tous les descripteurs parent/child conservent un nettoyage exact. Ceci est utile pour les protocoles stdio limités tels que les serveurs de langage sans appeler de shell ni conserver une deuxième copie en mémoire de la requête encadrée.
Collections et tranches
vec<t> est la séquence générique canonique cultivable. Il fournit une capacité faillible et des opérations de poussée, vérifié update/pop, des vues en lecture seule et mutables et un nettoyage exact pour les éléments à déplacement uniquement. Les types de file d’attente, d’ensemble et de mappe utilisent le même modèle de propriété.
Natif []t et mut []t restent les types de séquence empruntés standard. Le slice le package ajoute des algorithmes ; indexation vérifiée, découpage, fill, copy_from, et split_at_mut sont des opérations de base plutôt qu'un ancien emballage de tranches de graisse brute.
Tâches
task est un package ordinaire, pas un ensemble de langages intégrés. Il fournit :
- canaux délimités à propriété partagée ;
- jointures ponctuelles saisies et résultats de tâches
result<t,e>; - événements et annulations ;
- groupes d'attente, sémaphores, barrières et verrous.
Les points de terminaison et les tickets conservent leur linear/exact-cleanup contrats. Direct spawn reste structuré lexicalement, et postfix ? ne peut pas franchir la limite du corps engendré tant que ce corps ABI retours void.
Paquet de systèmes
system cibles déclarées profils autoportants. Les adresses brutes, les pointeurs MMIO, le stockage atomique, les tampons épinglés, les tampons DMA et le stockage de sauvegarde de l'allocateur sont créés via unsafe constructeurs. Les méthodes sûres reposent sur les obligations d’alignement, de durée de vie, d’espace d’adressage, de synchronisation et de propriété de ces constructeurs.
La présence de ce package n'implique pas que toutes les cibles hébergées ou autonomes fournissent tous les services système. Consultez System Primitives et la matrice cible Gate 14.
Grove inventaire des colis
Le plus haut niveau grove/libs/ corpus complété classification G01–G22 : 218 paquets manifestés sont couverts une seule fois par le Grove harnais de portail. Les packages portés exposent les interfaces actuelles élidées par les sources ; les paquets archivés exposent uniquement leurs éléments documentés validation/unavailability frontière. Voir Grove Arbre de compatibilité et Feuille de route de la bibliothèque.
Ridge Paquets v0.3
La pile de base de données locale Ridge v0.3 terminée est divisée en packages Grove ordinaires :
| Forfait | Rôle |
|---|---|
ridge |
B+Tree stockage, WAL, MVCC, contraintes, backup/recovery, l'intégrité et le vide |
ridge_sql |
Multicolonne délimitée SQL, transactions, index, planificateur, déversement, JSON, analyses et observabilité |
ridge_pgwire |
Serveur pgwire Loopback TLS/password et protocole étendu de texte délimité |
ridge_timeseries |
Clés temporelles composites persistantes, range/bucket/rate/retention/downsampling opérations |
ridge_fulltext |
Persistant normalisé terms/positions, boolean/prefix/phrase recherche, sous-ensemble BM25, faits saillants |
ridge_vector |
Correction des vecteurs f32, top-k exact, HNSW persistant délimité, filtres, recall/memory limites |
ridge_ops |
Archive de limite de validation PITR, exercices de restauration, migrations, maintenance, health/metrics/logs/quotas |
Il s'agit de contrats limités de base de données locale, et non PostgreSQL services de parité ou de cluster. Voir Ridge Base de données et le Ridge document de capacité pour les formes et exclusions exactes prises en charge.
Sources de vérité
- source du package et manifestes :
seed/compiler/llvm/libs/*/; - opérations connues du compilateur : Core Built-ins et Standard Libraries;
- contrats de propriété : Propriété;
- mise en œuvre et limites cibles : Statut actuel.