Riferimento alla libreria operativa
Questa pagina cataloga i pacchetti seed ordinari gestiti dal compilatore operativo LLVM da seed/compiler/llvm/libs. Non tratta ogni directory nell'albero di compatibilità Grove di livello superiore come un pacchetto corrente.
Importa e crea modello
I pacchetti core del repository utilizzano importazioni semplici:
use "io"
use "parse"
use "vec"
I percorsi incrementali build e run del programma di avvio risolvono questi nomi, creano artefatti profile/target-compatible nativi e .sdi e riutilizzano le esatte generazioni installate. Il sottocomando più ristretto check attualmente invoca il controllo diretto del codice sorgente e non mette prima in scena un pacchetto nudo mancante. Una build --static esplicita seleziona le dipendenze statiche seed corrispondenti; il collegamento ospitato ordinario utilizza gli artefatti dinamici compatibili con il profilo per impostazione predefinita.
La disponibilità rimane vincolata dal manifest di ciascun pacchetto e dalla matrice di capacità di destinazione canonica. Un pacchetto presente nell'albero di origine non aggiunge servizi runtime a una destinazione che ne è priva.
Catalogo dei pacchetti
| Pacchetto | Superficie pubblica principale | Ruolo |
|---|---|---|
box |
box_new, view, into_inner |
Indiretto di proprietà univoca fallibile per valori ricorsivi o di grandi dimensioni |
byte_buffer |
byte_buffer_new, reserve, push, extend, resize, into_bytes |
Costruzione di byte inizializzati in grado di riconoscere la capacità con crescita fallibile controllata |
fibonacci |
fibonacci_i64 |
Fibonacci iterativo controllato senza allocazione che restituisce none per input negativo o overflow |
file |
write_text, write_stdout, write_stderr, varianti formato |
Wrapper di compatibilità dell'output ospitato basati su descrittore |
format |
bool_text, option_bool_text |
Piccoli helper statici in formato testo |
io |
input_stream, output_buffer, read/write/all e operazioni di formato |
Parziale digitato e ospitato nel buffer I/O con io_error |
math |
sqrt_*, abs_*, min_*, max_* |
In linea portatile f32/f64 operazioni |
net |
open_ipv4_stream, socket |
Wrapper stream-socket IPv4 di proprietà minima ospitata |
parse |
parse_i*, parse_u*, parse_*_or |
Analisi degli interi controllata con parse_error digitato e valori predefiniti espliciti |
process |
current_id, argument_count, argument, environment, process_fork, process_exec_args, process_exec_args_with_environment, process_change_directory, process_wait |
Viste process/environment senza allocazione e primitive di sottoprocessi ospitate limitate |
serialize |
encode_bool, decode_bool |
Superficie di serializzazione sicura rappresentativa minima |
mobile |
collegamenti alla piattaforma, ciclo di vita, input, visualizzazione, appunti | Android API 21/29/37 ARM64 AVD e iOS 26.5 Esecuzione simulatore ARM64 |
path_file |
file_descriptor, open, read, write, metadata |
Descrittori di file di percorso posseduti per la sequenziale controllata I/O, ridenominazione atomica e blocco consultivo |
slice |
slice_split_at_mut, inversione, rotazione, aiutanti per finestre |
Algoritmi generici senza allocazione su sezioni tipizzate native |
sort |
funzioni di ordinamento scalare e sort_by_key |
Ordinamento di porzioni modificabili sul posto, incluso l'invio di chiavi statiche per valori di solo spostamento |
system |
wrapper di indirizzi, tabelle di pagina, MMIO, elementi atomici, allocazione bump, pinned/DMA valori | Astrazioni di sistemi indipendenti verificate rispetto alla costruzione esplicita non sicura |
task |
canali, join, risultati digitati, eventi, cancellazioni, gruppi di attesa, semafori, barriere, blocchi | Comunicazione e sincronizzazione strutturate supportate da scheduler |
text |
utf8_next, utf8_count, utf8_validate, split_ascii |
Senza assegnazione UTF-8 scalare validation/counting e cursori token delimitati da ASCII |
time |
monotonic_ms, wall_time_seconds, wall_time_ms |
Valori del tempo trascorso e dell'orologio da parete Unix ospitati |
vec |
vec, API di coda, set, mappa e mutazione fallibile |
Raccolte di proprietà generiche con pulizia esatta e visualizzazioni controllate |
Pacchetti applicativi di primo livello Grove l'albero include std-uuid 0,2. Fornisce senza allocazione UUID convalida del testo, convalida rigorosa UUIDv7 RFC 9562, deterministica uuid_v7_from_parts, e fallibile uuid_v7 generazione supportata dai millisecondi dell'orologio da parete ospitato più 74 bit dal sistema operativo controllato entropy pacchetto. Gli UUID rimangono identificatori anziché credenziali.
Proprietà e convenzioni di errore
I pacchetti operativi seguono il modello di proprietà della lingua:
- costruttori che allocano restituiscono
result<t, alloc_error>oalloc_result<t>; - i valori posseduti si muovono ed eseguono il loro distruttore esattamente una volta su uscite strutturate;
- preso in prestito
stre i risultati delle sezioni vengono preservati receiver/input provenienza; @muti metodi riceventi detengono prestiti esclusivi nell'ambito della chiamata e mantengono le modifiche nel chiamante;- gli aiutanti espliciti al consumo trasferiscono la proprietà anziché nascondere i cloni;
- la costruzione del puntatore grezzo rimane
unsafe, anche quando i metodi successivi sono sicuri perché il wrapper preserva l'invariante controllato; - recuperabile I/O e gli errori di analisi utilizzano gli ADT del pacchetto anziché la sentinella valori o terminazione implicita del processo.
I/O
Il nuovo codice dovrebbe preferire io rispetto ai wrapper di compatibilità file più stretti. La distinzione importante è l’input parziale:
input_stream.read(mut []u8)restituisce un conteggio data/EOF digitato;stdin_read_all()è disponibile quando si desidera conservare l'input completo;- le operazioni di output distinguono una scrittura da
write_all; - La stringa f
format_argspuò essere scritta direttamente senza allocare un valore di proprietà stringa.
byte_buffer e io condividono il contratto con prefisso inizializzato. I chiamanti sicuri non rispettano mai la capacità di riserva non inizializzata.
Grove esecuzione del comando
Il Grove command Il pacchetto fornisce un'esecuzione figlio limitata basata su argv per le applicazioni ospitate. command_run_configured_with_stdin_file ha lo stesso contratto di directory di lavoro, ambiente, timeout e limite di acquisizione di command_run_configurede inoltre collega un file di input regolare esistente all'input standard del bambino. Il file viene aperto senza seguire un collegamento simbolico finale e tutto parent/child i descrittori mantengono la pulizia esatta. Ciò è utile per i protocolli stdio limitati come i server linguistici senza invocare una shell o conservare una seconda copia in memoria della richiesta con frame.
Collezioni e fette
vec<t> è la sequenza generica coltivabile canonica. Fornisce capacità fallibile e operazioni push, controllate update/pop, visualizzazioni di sola lettura e modificabili e pulizia esatta per gli elementi di solo spostamento. I tipi di coda, set e mappa utilizzano lo stesso modello di proprietà.
Nativo []t e mut []t rimangono i tipi di sequenze presi in prestito standard. Il slice il pacchetto aggiunge algoritmi; controllato l'indicizzazione, l'affettatura, fill, copy_from, e split_at_mut sono operazioni fondamentali piuttosto che un involucro legacy di fette di grasso grezzo.
Compiti
task è un pacchetto ordinario, non un insieme di linguaggi integrati. Fornisce:
- canali delimitati dalla suddivisione della proprietà;
- digitato one-shot join e
result<t,e>risultati del compito; - eventi e cancellazioni;
- gruppi di attesa, semafori, barriere e serrature.
Gli endpoint e i ticket mantengono la loro linear/exact-cleanup contratti. Diretto spawn rimane lessicalmente strutturato e suffisso ? non può attraversare il confine del corpo generato mentre quel corpo ABI ritorna void.
Pacchetto sistemi
system obiettivi dichiarati profili indipendenti. Gli indirizzi grezzi, i puntatori MMIO, l'archiviazione atomica, i buffer bloccati, i buffer DMA e l'archiviazione di supporto dell'allocatore vengono creati tramite unsafe costruttori. I metodi sicuri si basano sull'allineamento, sulla durata, sullo spazio degli indirizzi, sulla sincronizzazione e sugli obblighi di proprietà di tali costruttori.
La presenza di questo pacchetto non implica che tutte le destinazioni ospitate o indipendenti forniscano tutti i servizi di sistema. Consultare System Primitives e la matrice target Gate 14.
Grove inventario dei pacchi
Il livello più alto grove/libs/ corpus completato classificazione G01–G22: 218 pacchetti manifestati sono coperti esattamente una volta dal Grove cablaggio del cancello. I pacchetti portati espongono le attuali interfacce elise dal codice sorgente; i pacchetti archiviati espongono solo i loro file documentati validation/unavailability confine. Vedi Grove Albero di compatibilità e Roadmap della biblioteca.
Ridge pacchetti v0.3
Lo stack del database locale Ridge v0.3 completato è suddiviso in pacchetti Grove ordinari:
| Pacchetto | Ruolo |
|---|---|
ridge |
B+Tree stoccaggio, WAL, MVCC, vincoli, backup/recovery, integrità e vuoto |
ridge_sql |
Più colonne delimitate SQL transazioni, indici, pianificatore, fuoriuscita, JSON, analisi e osservabilità |
ridge_pgwire |
Server pgwire loopback TLS/password e protocollo esteso di testo delimitato |
ridge_timeseries |
Chiavi temporali composite persistenti, range/bucket/rate/retention/downsampling operazioni |
ridge_fulltext |
Normalizzato persistente terms/positions, boolean/prefix/phrase ricerca, sottoinsieme BM25, evidenziazioni |
ridge_vector |
Risolti i vettori f32, top-k esatto, HNSW persistente limitato, filtri, recall/memory limiti |
ridge_ops |
Archivio PITR dei limiti di commit, esercitazioni di ripristino, migrazioni, manutenzione, health/metrics/logs/quotas |
Si tratta di contratti di database locale vincolati, non di parità PostgreSQL o di servizi cluster. Consulta il Ridge Database e il documento sulle funzionalità Ridge per le esatte forme supportate ed esclusioni.
Fonti di verità
- origine e manifest del pacchetto:
seed/compiler/llvm/libs/*/; - operazioni note al compilatore: Core Built-in e librerie standard;
- contratti di proprietà: Proprietà;
- limiti di implementazione e target: Stato attuale.