Conclusão estimada: 35%
Grove Roteiro de conversão
Este roteiro ordena a conversão da geração mista grove/libs corpus para a limpeza operacional LLVM linguagem. Compiler/backend o trabalho permanece em seed/compiler/llvm/ROADMAP.md; o trabalho detalhado do produto de aprendizado de máquina permanece na raiz do repositório roadmap-ml.md.
A unidade de conversão é um pacote, não um arquivo de origem individual. A presença ou sucesso do diretório em um compilador substituído é apenas uma evidência de inventário.
Linha de base do inventário — 12/07/2026
| Métrica | Valor atual |
|---|---|
| Grove diretórios de biblioteca | 218 |
.sd arquivos nesses diretórios |
453 |
Total .sd linhas |
7.291 |
Pacotes com seed.toml |
218 |
Pacotes faltando seed.toml |
0 |
Pacotes com direto extern declarações |
0 |
Pacotes com comentários # herdados em src/ |
0 |
Pacotes com declarações nominais maiúsculas em src/ |
0 |
| Pacotes preparados pelo compilador já operacionais | 18 |
Cada pacote Grove agora possui um manifesto.
Nenhuma fonte Grove contém FFI direto. Os pacotes que anteriormente dependiam de um proprietário estrangeiro não auditado são explicitamente arquivados no limite do portão.
Análise de dependência
A ordem das portas usa arestas use explícitas encontradas na árvore src/ de cada pacote. Os pacotes de fan-in mais explícitos são:
| Pacote | Dependentes diretos |
|---|---|
tensor |
38 |
http_request |
24 |
bytes |
14 |
slice |
6 |
math |
17 |
binary |
13 |
tensor_cpu |
10 |
str |
10 |
web_request |
10 |
tokenizer |
9 |
http_response |
9 |
fs |
9 |
Este gráfico é um limite inferior. A fonte legada geralmente chama auxiliares de tempo de execução implícitos sem use, e arquivos de benchmark malformados contêm importações concatenadas. Cada portão deve, portanto, atualizar as dependências após parsing/porting seus pacotes. A descoberta de uma dependência oculta pode mover um pacote para uma porta posterior; nunca deve criar uma dependência silenciosa em um pacote não convertido.
O plano cobre cada biblioteca Grove atual exatamente uma vez. G01–G21 contém dez pacotes cada; G22 contém oito. Nenhuma dependência atualmente explícita aponta para uma porta posterior. As dependências dentro de uma porta definem a ordem interna dessa porta.
Vocabulário de status
| Estado | Evidência necessária |
|---|---|
| inventário | diretório existe; nenhuma reivindicação de compatibilidade |
| classificado | parser/check/build falhas, FFI, manifestos e dependências registradas |
| portabilidade | implementação de linguagem limpa em andamento |
| operacional | fonte checks/builds, manifesto atual existe, ownership/effects revisado e testes aprovados |
| fonte omitida | o pacote operacional também passa nos testes de consumo somente .sdi |
| instalado | profile/target-qualified install/reuse/uninstall comportamento passa |
| arquivado | retido apenas como prova historical/API/fixture e excluído das importações atuais |
Não use “implementado” ou uma marca de seleção apenas porque existe uma fonte legada.
Contrato de promoção de pacote universal
Cada pacote em cada portão deve satisfazer todos os requisitos aplicáveis:
- Disposição: escolha
merge,port,rename,archive, ouremove. Um Grove pacote que se sobrepõe a um pacote operacional comomath,io,slice,sort,time, ouvecnão deve criar um segundo pacote canônico com a mesma função. - Sintaxe: nomes de cobra inferior, declarações atuais,
ret,//, atual ADTs/options/results e sem legado channel/detached-spawn sintaxe. - Digitação: analisador operacional, resolvedor, verificações generic/trait e destino as verificações de layout são aprovadas.
- Propriedade: movimentações, clones, visualizações, inicialização parcial, destruidores e saídas estruturadas têm limpeza exata.
- Efeitos: alocação, pânico, bloqueio, I/O, FFI, syscalls e inseguro comportamento são explícitos e válidos para o perfil de tempo de execução.
- Erros: falha recuperável usa digitado options/results, não desmarcado sentinelas ou encerramento oculto de processos.
- Interfaces: emissão
.sdiatual e passagem de consumo eliminada pela fonte, incluindo genéricos, destruidor, clone, efeitos e proveniência, conforme aplicável. - Manifesto: identidade, versão, tipo, target/profile metadados, dependências,
e
publish --checkpassar. - FFI: plataformas e raiz
INSTALL.mdestão presentes; declarações brutas permanecem atrás do nominal auditado owners/views. - Validação: positivo, negativo, sanitizador, entrada malformada e cross-target tests exist in proportion to risk.
- Documentação: exemplos compilados com
build/run; nenhum tempo de execução legado helper is documented as a clean compiler built-in. - Evidência de fechamento: registre comandos, pacotes, disposições, exclusões,
targets, and test results in
seed/compiler/llvm/tests/GROVE_GXX_BASELINE.md.
Onda 1 – fundamentos de linguagem e tempo de execução
G01 — algoritmos escalares e chicote de conversão
Pacotes: math, format, dtoa, fibonacci, primes, crc32, semver, protocol, test_framework, bench.
Depende de: somente language/core operacional.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G01_BASELINE.md.
Encerramento específico: resolver sobreposição com operações math, formate fibonacci; adicione manifestos ausentes para crc32 e protocol; estabelecer o reutilizável Grove conversão test/benchmark aproveite sem legados globais ou ocultos output/time embutidos.
G02 — memória, texto, fatias e substrato binário
Pacotes: slice, mem, bytes, raw_vec, str, str_view, stringbuilder, binary, sort, set.
Depende de: G01.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G02_BASELINE.md.
Fechamento específico: mapeie fatias de gordura bruta herdadas e identificadores de bytes no nativo []t/mut []t, bytes, shared_bytes, byte_buffer, vece memória bruta verificada atualmente. Prove a extensão inicializada, a procedência, a liberação exata e o comportamento genérico omitido na fonte. Auditoria bytes e str_view FFI.
G03 — coleções e algoritmos de dados reutilizáveis
Pacotes: hash, hashmap, hashtable, bloom, ringbuf, lru, heap, base64, binary_tree_i64, text_buffer.
Depende de: G01–G02.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G03_BASELINE.md.
Fechamento específico: adicione manifestos para hashtable e binary_tree_i64; substituir identificadores brutos copiáveis por proprietários nominais; verificar somente movimentação keys/values, falha de redimensionamento, comportamento de colisão, limites, entrada binária malformada e limpeza após construção parcial.
G04 — processo, sistema de arquivos e base de memória virtual
Pacotes: errno, time, env, os, process, path, fs, dir, stat, mmap.
Depende de: G01–G03.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G04_BASELINE.md.
Fechamento específico: reconciliar time/process com pacotes operacionais; expor emprestado process/environment visualiza com segurança; faça descritores, mapeamentos, caminhos, parciais I/O, disponibilidade da plataforma e erros de sistema operacional explícitos.
G05 — simultaneidade estruturada e sincronização
Pacotes: io, atomic, mutex, cond, rwlock, semaphore, barrier, waitgroup, chan, pool.
Depende de: G01–G04.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G05_BASELINE.md.
Fechamento específico: use os pacotes operacionais task e io em vez de integrados legados; codificar endpoints channel/ticket/lock como proprietários exatos; verifique o cancelamento, a ativação do garçom bloqueada, a sinalização de queda, a ordenação da memória, a interação da região e o estresse do desinfetante. Auditoria atomic FFI.
G06 — loops de eventos, primitivas de rede e plataforma I/O
Pacotes: thread, threadpool, signal, inotify, epoll, net, epoll_loop, eventloop, io_uring, entropy.
Depende de: G01–G05.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G06_BASELINE.md.
Fechamento específico: reconciliar net com o proprietário do soquete operacional; fazer registration/cancellation e tempo de vida do descritor explícito; isolar Linux-somente serviços em manifestos; separar tarefas estruturadas de threads separados herdados; verifique a entropia como CSPRNG em vez do PRNG de tempo de execução não secreto.
Onda 2 — terminal, CLI, analisadores e segurança
G07 — primitivas de terminal e auxiliares de apresentação
Pacotes: tui, tty, terminal, pty, vtbuf, ansi, richtext, progress, prompt, widgets.
Depende de: G01–G06.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G07_BASELINE.md.
Fechamento específico: definir terminal próprio modes/descriptors, restauração garantida em saídas estruturadas, UTF-8/byte limites, comportamento não interativo e testabilidade PTY. Resolva o tui/tty dependência da mesma porta antes terminal e prompt.
G08 — TUI composição e CLI autoria
Pacotes: tui_input, tui_surface, tui_layout, tui_core, tui_widgets, tui_test, clap, command, completion, cli.
Depende de: G01–G07.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G08_BASELINE.md.
Encerramento específico: porta em ordem de dependência interna; substituir tipos de UI em letras maiúsculas; provar limites de superfície; resize/input manuseio, propriedade de processos, erros de comando, determinismo de conclusão e integração PTY.
macOS AArch64 encerramento de acompanhamento (2026-07-26): o TUI os pacotes agora fornecem o caminho completo do recurso interativo que a linha de base portátil original do G08 manteve indisponível. tui_core possui cofre raw/alternate-screen sessões e esperas de eventos digitados; tui_input lida com eventos incrementais de teclado, mouse, colagem, redimensionamento e temporizador; tui_surface fornece células de grafema Unicode, diferenças ANSI sujas, remoção ANSI e acionado por terminal 8/256/truecolor/no-color política; tui_layout e tui_widgets fornecer foco reutilizável, layout e controles com estado; e tui_test junta-se a corridas de eventos sintéticos com vtbuf instantâneos. seed-tui-demo fornece o determinístico update/render porta da unidade e um teste de aceitação de controle PTY real cobrindo redimensionamento, entrada, Unicode, restauração de terminal, sinais fatais e contrapressão. Linux revalidação e Windows suporte de terminal permanecem fases de portabilidade separadas.
G09 — configuração e formatos de dados de texto
Pacotes: cli_completion, dotenv, ini, toml, yaml, json, json_parser, csv, xml, markdown.
Depende de: G01–G08.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G09_BASELINE.md.
Fechamento específico: retorna erros de análise digitados com deslocamentos de bytes; use visualizações emprestadas e buffers de bytes; cobertura inválida UTF-8, malformed/truncated documentos, depth/size limites, escape, campos duplicados, entrada de streaming e viagens de ida e volta.
G10 — configuração da aplicação e intercâmbio binário
Pacotes: cli_config, url, mime, regex, protobuf, msgpack, rowcodec, tar, zip, compress.
Depende de: G01–G09.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G10_BASELINE.md.
Fechamento específico: validar URL/range/overflow semântica, segurança do caminho de arquivo, comprimentos binários, piores casos de regex, viagens de ida e volta de formato e limites de descompressão. Auditoria compress FFI e remover comportamento baseado em shell de APIs seguras.
G11 — criptografia, aleatoriedade e identidade
Pacotes: random, uuid, aes, chacha20, hmac, bcrypt, scram, cookies, session, jwt.
Depende de: G01–G10.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G11_BASELINE.md.
Fechamento específico: rotular APIs PRNG não criptográficas; fonte de segredos UUID/session/CSRF da entropia auditada; use comparação de tempo constante quando necessário; validar vetores e token expiry/encoding; zero buffers temporários sensíveis onde o contrato de propriedade permitir. Auditoria bcrypt FFI.
Evolução pós-fechamento: std-uuid 0.2 adiciona construção e validação RFC 9562 UUIDv7 usando milissegundos de relógio hospedado e o limite de entropia do sistema operacional auditado. O sequenciamento monotônico UUIDv7 durante a reversão do clock permanece uma política de persistência de nível superior, em vez de um estado global de processo oculto.
Onda 3 – networking, HTTP e camadas da web
G12 — protocolos de rede e TLS básico
Pacotes: tls, dns, icmp, redis, ssh, smtp, _pooltest, http_headers, http_body, http_cookie_jar.
Depende de: G01–G11.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G12_BASELINE.md.
Encerramento específico: auditoria TLS FFI e certificate/hostname política; digite erros de transporte e tempos limite; quadros de protocolo vinculados e nomes DNS; converter _pooltest em um pacote nomeado ou arquive-o; comprovar propriedade de conexão em pool e cookie expiration/domain/path regras.
G13 — HTTP análise, serviço e primitivas de middleware
Pacotes: http_request, http_response, gzip, multipart, form_body, router, middleware, cors, http_server, http_connection_pool.
Depende de: G01–G12.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G13_BASELINE.md.
Fechamento específico: aprovado fragmented/partial solicitação de entrada, comprimentos conflitantes, fragmentação, header/body limites, truncamento multiparte, ambigüidade de rota, política CORS, cancelamento, keep-alive e exato connection/buffer limpeza.
G14 — HTTP clientes, segurança, cache e rastreamento
Pacotes: http_client, http_client_tls, http_fetch, cache_http, static, websocket, auth, csrf, crawler, lifecycle.
Depende de: G01–G13.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G14_BASELINE.md.
Fechamento específico: verificar redirect/cookie/pool/TLS composição, validadores e intervalos de cache, prevenção de passagem de caminho, enquadramento WebSocket, auth/session/CSRF política, rastreador bounds/rate limites e reversão do ciclo de vida após falha parcial.
G15 — componentes de autoria web
Pacotes: observability, template, webapp, web_request, web_response, web_security, web_static, web_template, web_metrics, websocket_server.
Depende de: G01–G14.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G15_BASELINE.md.
Fechamento específico: expõe tipos públicos inferiores, visualizações derivadas de solicitação verificadas, modelos de escape por padrão, HTML bruto explícito, estado de métricas limitado, caminhos estáticos seguros, ciclo de vida de WebSocket digitado e APIs de manipulador com fonte ocultada.
G16 — tempo de execução web integrado e suporte a aplicativos
Pacotes: web_core, web_db, web_middleware, web_runtime, web, logging, tensor_graph, sep, table, bench2.
Depende de: G01–G15.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G16_BASELINE.md.
Fechamento específico: prove um tempo de execução vertical da web do soquete por meio da solicitação analisada até a resposta e limpeza próprias; mantenha os ganchos do banco de dados digitados, mas neutros no backend; validar a ordem do middleware, shutdown/drain, contrapressão de registro, streaming de pesquisa de arquivos, renderização de tabela, propriedade de gráfico e um manifesto para bench2.
Onda 4 — armazenamento, bases de ML e orquestração de alto nível
G17 — mecanismos de armazenamento e limites nativos de banco de dados
Pacotes: sqlitec, sqlite, pgc, pager, slotted_page, wal, heapfile, btree_page, btree_store, btree.
Depende de: G01–G16.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G17_BASELINE.md.
Encerramento específico: auditoria SQLite/libpq Proprietários de FFI e domínios alocadores; adicione o btree manifestar; provar página checksums/layout/versioning, seguro contra colisões WAL ordem, gravações curtas, rejeição de corrupção, limpeza de transações e interfaces de armazenamento com exclusão de origem.
G18 - fundamentos de tensores e conjuntos de dados
Pacotes: tensor, tensor_nd, tensor_cpu, tensor_device, metrics, model_io, quantization, datasets, features, text_features.
Depende de: G01–G17.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G18_BASELINE.md.
Encerramento específico: estabelecer um encerramento próprio tensor/storage representação; verificar shape/stride/size transbordar, dtype/layout, visualizações, transferência de dispositivos, metadados serializados, limites de quantização, divisões determinísticas de conjuntos de dados e nenhuma cópia oculta entre CPU/device APIs.
G19 — pipelines de treinamento e recursos
Pacotes: nn, loss, optim, autograd, mixed_precision, linear_model, anomaly, image_features, audio_features, vision.
Depende de: G01–G18.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G19_BASELINE.md.
Fechamento específico: verifique propriedade e acumulação de gradiente, estado do otimizador, overflow/loss dimensionamento, acessórios determinísticos, verificações de diferenças finitas, segurança de forma image/audio transformações e limpeza de gráficos de computação parciais.
G20 — execução, compatibilidade e aceleração do modelo
Pacotes: tokenizer, transformer, graph_runtime, onnx, model_compat, tensor_cuda, tensor_bench, vision_features, llm_config, text_dataset.
Depende de: G01–G19.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G20_BASELINE.md.
Fechamento específico: vinculado tokenizer/model entradas, validar operadores gráficos e dados de tensores externos, rejeitar pontos de verificação incompatíveis, auditar CUDA FFI/device proprietários e sincronização, compare CPU/GPU resultados e estabelecer resultados reprodutíveis performance/memory linhas de base.
G21 — componentes do modelo treinado
Pacotes: text_model, text_image_model, text_audio_model, audio_text_model, vision_text_model, llm_decoder, llm_train, llm_infer, llm_eval, llm_checkpoint.
Depende de: G01–G20.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G21_BASELINE.md.
Fechamento específico: congelar checkpoint/config identidade, treinamento e inferência determinísticos de modelos minúsculos, estado do otimizador recuperável, cache KV limitado, compatibilidade de tokenizador, contratos de tensor multimodal, reprodutibilidade de avaliação e limpeza exata em caso de falha load/train/infer operações.
G22 — dados integrados e orquestração de IA
Pacotes: sqlite_migrate, pg, pg_poolc, pg_pool, ridge, llm_experiment, llm_runner, multimodal_coordinator.
Depende de: G01–G21.
Status: fechado em 12/07/2026. Evidência: seed/compiler/llvm/tests/GROVE_G22_BASELINE.md.
Encerramento específico: validar migrações e propriedade de transações agrupadas em dispositivos de banco de dados ativos; testes Ridge recovery/corruption completos; executar fluxos LLM experiment/runner/checkpoint de ponta a ponta; verificar roteamento multimodal e saídas não suportadas; publicar pacotes instaláveis com exclusão de origem com requisitos service/data externos explícitos.
G01–G22 estão fechados. A execução ao vivo de SQLite/PostgreSQL, Ridge e a execução numérica de LLM permanecem recursos explicitamente arquivados em vez de fechamento simulado.
Gate protocolo de execução
- Gates fecha sequencialmente. Pacotes independentes dentro de um portão podem ser portados em paralelo depois que suas dependências da mesma porta forem identificadas.
- Inicie cada portão regenerando seu inventário source/import/FFI/manifest e disposição de gravação para cada pacote.
- Alterações básicas no pacote operacional antes das portas Grove dependentes; não retenha aliases de compatibilidade que prejudiquem a propriedade limpa.
- Execute os testes locais do pacote primeiro, depois os testes de origem, sanitizador, destino, pacote, install/reuse e verificações de desempenho relevantes.
- Um pacote pode ser arquivado ou removido em vez de portado, mas essa disposição e todas as dependências reversas devem estar explícitas na evidência do portão.
- Feche um portão somente quando cada pacote listado for operational/source-elided ou deliberadamente archived/removed, e nenhum pacote ativo depende de uma fonte não classificada.
- Após o fechamento, atualize Referência da Biblioteca Operacional, Grove Árvore de compatibilidadee qualquer página de domínio afetada.
Definição de conclusão
A conversão Grove será concluída somente quando:
- todos os 218 pacotes básicos têm disposição final registrada;
- cada pacote retido é construído com sintaxe e semântica atuais;
- o catálogo operacional é gerado a partir de dados verificados manifests/interfaces;
- nenhum aplicativo atual depende do comportamento compiler/runtime substituído;
- portas normais, sanitizador, alvo, pacote, fonte omitida e instalação cobrir o ecossistema retido nos níveis de apoio declarados;
- o desvio de estoque falha automaticamente na validação em vez de mudar silenciosamente escopo do portão.