Referência da Biblioteca Operacional
Esta página cataloga os pacotes seed comuns preparados pelo compilador operacional LLVM de seed/compiler/llvm/libs. Ele não trata todos os diretórios da árvore de compatibilidade Grove de nível superior como um pacote atual.
Importar e construir modelo
Os pacotes principais do repositório usam importações simples:
use "io"
use "parse"
use "vec"
Os caminhos incrementais build e run do inicializador resolvem esses nomes, criam artefatos nativos profile/target-compatible e .sdi e reutilizam gerações instaladas exatas. O subcomando check mais restrito atualmente invoca a verificação direta da fonte e não prepara primeiro um pacote vazio ausente. Uma construção --static explícita seleciona dependências seed estáticas correspondentes; a vinculação hospedada comum usa os artefatos dinâmicos compatíveis com o perfil por padrão.
A disponibilidade permanece limitada pelo manifesto de cada pacote e pela matriz de capacidade de destino canônica. Um pacote presente na árvore de origem não adiciona serviços de tempo de execução a um destino que não os possui.
Catálogo de pacotes
| Pacote | Superfície pública principal | Função |
|---|---|---|
box |
box_new, view, into_inner |
Indireção de propriedade única falível para valores recursivos ou grandes |
byte_buffer |
byte_buffer_new, reserve, push, extend, resize, into_bytes |
Construção de bytes inicializados com reconhecimento de capacidade com crescimento falível verificado |
fibonacci |
fibonacci_i64 |
Fibonacci iterativo verificado sem alocação retornando none para entrada negativa ou estouro |
file |
write_text, write_stdout, write_stderr, variantes de formato |
Wrappers de compatibilidade de saída hospedados baseados em descritor |
format |
bool_text, option_bool_text |
Pequenos ajudantes em formato de texto estático |
io |
input_stream, output_buffer, read/write/all e operações de formato |
Digitado parcial e hospedado em buffer I/O com io_error |
math |
sqrt_*, abs_*, min_*, max_* |
Operações f32/f64 em linha portáteis |
net |
open_ipv4_stream, socket |
Wrapper de soquete de fluxo IPv4 de propriedade hospedado mínimo |
parse |
parse_i*, parse_u*, parse_*_or |
Análise de número inteiro verificada com parse_error digitado e padrões explícitos |
process |
current_id, argument_count, argument, environment, process_fork, process_exec_args, process_exec_args_with_environment, process_change_directory, process_wait |
Visualizações process/environment livres de alocação e primitivas de subprocesso hospedadas limitadas |
serialize |
encode_bool, decode_bool |
Superfície de serialização segura representativa mínima |
mobile |
ligações de plataforma, ciclo de vida, entrada, exibição, área de transferência | Android API 21/29/37 ARM64 AVD e iOS 26.5 Execução do simulador ARM64 |
path_file |
file_descriptor, open, read, write, metadata |
Descritores de arquivo de caminho de propriedade para sequencial verificado I/O, renomeação atômica e bloqueio consultivo |
slice |
slice_split_at_mut, reverter, girar, auxiliares de janela |
Algoritmos genéricos livres de alocação em fatias de tipo nativo |
sort |
funções de classificação escalar e sort_by_key |
Classificação de fatias mutáveis no local, incluindo envio de chave estática para valores somente de movimentação |
system |
wrappers de endereço, tabelas de páginas, MMIO, atômicos, alocação de bump, pinned/DMA valores | Abstrações de sistemas independentes auditados sobre construção insegura explícita |
task |
canais, junções, resultados digitados, eventos, cancelamento, grupos de espera, semáforos, barreiras, bloqueios | Comunicação e sincronização estruturadas apoiadas por agendador |
text |
utf8_next, utf8_count, utf8_validate, split_ascii |
Livre de alocação UTF-8 escalar validation/counting e cursores de token delimitados por ASCII |
time |
monotonic_ms, wall_time_seconds, wall_time_ms |
Valores de tempo decorrido hospedado e relógio de parede Unix |
vec |
vec, APIs de fila, conjunto, mapa e mutação falível |
Coleções genéricas de propriedade com limpeza exata e visualizações verificadas |
Pacotes de aplicativos de nível superior Grove árvore inclui std-uuid 0,2. Ele fornece livre de alocação UUID validação de texto, validação estrita RFC 9562 UUIDv7, determinística uuid_v7_from_partse falível uuid_v7 geração apoiada por milissegundos de relógio hospedado mais 74 bits do sistema operacional auditado entropy pacote. Os UUIDs permanecem identificadores em vez de credenciais.
Convenções de propriedade e erro
Os pacotes operacionais seguem o modelo de propriedade do idioma:
- construtores que alocam o retorno
result<t, alloc_error>oualloc_result<t>; - os valores possuídos movem-se e executam seu destruidor exatamente uma vez nas saídas estruturadas;
- emprestado
stre os resultados da fatia preservam receiver/input proveniência; @mutmétodos receptores mantêm empréstimos exclusivos com escopo de chamada e persistem alterações no chamador;- ajudantes consumidores explícitos transferem propriedade em vez de esconder clones;
- a construção bruta do ponteiro permanece
unsafe, mesmo quando métodos posteriores são seguros porque o wrapper preserva a invariante auditada; - recuperável I/O e falhas de análise usam ADTs de pacote em vez de sentinela valores ou encerramento implícito do processo.
I/O
O novo código deve preferir io aos wrappers de compatibilidade file mais restritos. A distinção importante é a entrada parcial:
input_stream.read(mut []u8)retorna uma contagem data/EOF digitada;stdin_read_all()está disponível quando se deseja reter a entrada completa;- as operações de saída distinguem uma gravação de
write_all; - A string f
format_argspode ser escrita diretamente sem alocar uma propriedade corda.
byte_buffer e io compartilham o contrato de prefixo inicializado. Chamadores seguros nunca observam capacidade não inicializada sobressalente.
Grove execução de comando
O Grove command O pacote fornece execução infantil baseada em argv limitada para aplicativos hospedados. command_run_configured_with_stdin_file tem o mesmo diretório de trabalho, ambiente, tempo limite e contrato de limite de captura que command_run_configurede, adicionalmente, conecta um arquivo de entrada regular existente à entrada padrão do filho. O arquivo é aberto sem seguir um link simbólico final e todos parent/child os descritores mantêm a limpeza exata. Isto é útil para protocolos stdio limitados, como servidores de linguagem, sem invocar um shell ou reter uma segunda cópia na memória da solicitação emoldurada.
Coleções e fatias
vec<t> é a sequência genérica canônica que pode ser cultivada. Ele fornece capacidade falível e operações push, verificadas update/pop, visualizações somente leitura e mutáveis e limpeza exata para elementos somente movimentação. Os tipos de fila, conjunto e mapa usam o mesmo modelo de propriedade.
Nativo []t e mut []t permanecem os tipos de sequência emprestados padrão. O slice pacote adiciona algoritmos; indexação verificada, fatiamento, fill, copy_frome split_at_mut são operações principais, em vez de um invólucro herdado de fatias de gordura brutas.
Tarefas
task é um pacote comum, não um conjunto de linguagens integradas. Ele fornece:
- canais limitados de divisão de propriedade;
- digitou uniões únicas e
result<t,e>resultados da tarefa; - eventos e cancelamento;
- grupos de espera, semáforos, barreiras e bloqueios.
Endpoints e tickets mantêm seus linear/exact-cleanup contratos. Direto spawn permanece lexicalmente estruturado e postfix ? não pode cruzar o limite do corpo gerado enquanto esse corpo ABI retorna void.
Pacote de sistemas
system alvos declarados perfis independentes. Endereços brutos, ponteiros MMIO, armazenamento atômico, buffers fixados, buffers DMA e armazenamento de apoio do alocador são criados por meio de unsafe construtores. Os métodos seguros dependem do alinhamento, vida útil, espaço de endereço, sincronização e obrigações de propriedade desses construtores.
A presença deste pacote não implica que todos os destinos hospedados ou independentes forneçam todos os serviços do sistema. Consulte System Primitives e a matriz de destino Gate 14.
Grove inventário de pacotes
O nível superior grove/libs/ corpus concluído Classificação G01–G22: 218 pacotes manifestados são cobertos exatamente uma vez pelo Grove arnês do portão. Pacotes portados expõem interfaces atuais excluídas da origem; pacotes arquivados expõem apenas seus documentos documentados validation/unavailability limite. Veja Grove Árvore de compatibilidade e Roteiro da Biblioteca.
Ridge pacotes v0.3
A pilha de banco de dados local Ridge v0.3 completa é dividida em pacotes Grove comuns:
| Pacote | Função |
|---|---|
ridge |
B+Tree armazenamento, WAL, MVCC, restrições, backup/recovery, integridade e vácuo |
ridge_sql |
Multicoluna limitada SQL, transações, índices, planejador, derramamento, JSON, análise e observabilidade |
ridge_pgwire |
Servidor pgwire Loopback TLS/password e protocolo estendido de texto limitado |
ridge_timeseries |
Chaves de tempo compostas persistentes, range/bucket/rate/retention/downsampling operações |
ridge_fulltext |
Normalizado persistente terms/positions, boolean/prefix/phrase pesquisa, subconjunto BM25, destaques |
ridge_vector |
Vetores f32 corrigidos, top-k exato, HNSW persistente limitado, filtros, recall/memory limites |
ridge_ops |
Arquivo de limite de commit PITR, exercícios de restauração, migrações, manutenção, health/metrics/logs/quotas |
Esses são contratos de banco de dados local limitados, não paridade PostgreSQL ou serviços de cluster. Consulte Ridge Database e o documento de capacidade Ridge para obter as formas e exclusões exatas suportadas.
Fontes da verdade
- fonte e manifestos do pacote:
seed/compiler/llvm/libs/*/; - operações conhecidas do compilador: Core Built-ins and Standard Libraries;
- contratos de propriedade: Propriedade;
- implementação e limites de meta: Status Atual.