Grove Árvore de compatibilidade

<!-- verified-against: seed-llvm; examples: docs-examples-test -->

O diretório grove/ de nível superior contém o ecossistema da biblioteca convertida, além de aplicativos históricos e exemplos. Todos os 218 diretórios de bibliotecas agora têm uma disposição final G01–G22; aplicativos fora do grove/libs ainda exigem verificação de compatibilidade individual.

Estado atual

O compilador operacional e suas bibliotecas preparadas automaticamente residem em:

seed/compiler/llvm/
├── build/seed
└── libs/

O conjunto de bibliotecas atual está documentado em Library Reference. Esses pacotes usam a sintaxe atual da superfície v2 (enum, return, else if, UpperCamelCase nominals/variants, Some/None/Ok/Err), produzem interfaces .sdi atuais e participam dos conjuntos de portas do compilador.

Cada grove/libs pacote tem um manifesto atual e um caso de portão. As fontes de biblioteca retidas não contêm legado # comentários, nominais de cobra inferior, type/ret/elif, ou FFI direto. Um pacote ainda pode ser deliberadamente archived: sua interface atual valida configuration/ownership limites enquanto a antiga capacidade de execução permanece indisponível.

Portanto:

Layout do repositório

A árvore de compatibilidade é organizada como:

grove/
├── libs/      # G01–G22 classified library corpus
├── apps/      # mixed-generation applications and tools
└── examples/  # examples that require individual compatibility verification

Para bibliotecas, a disposição mais a evidência do portão comprovam o limite de suporte declarado. A presença no diretório por si só permanece insuficiente para aplicativos e exemplos.

O recuperado Ridge família de comando mora em grove/apps/ridge/. Seus sete programas são compilados contra o ridge pacote. A pilha incorporada reconstruída inclui ridge_sql, cujo núcleo relacional limitado possui projeção digitada executável, intervalo, junção, agregação, subconsulta, índice, restrição, transação e SQLite/PostgreSQL cobertura diferencial. O daemon pgwire de loopback suporta consultas simples e um subconjunto limitado de consultas preparadas. grove/apps/ridge/ROADMAP.md separa a evidência histórica da capacidade atual: a v0.2 está congelada com evidência P13 dispensada incompleta, enquanto a v0.3 V3-G0-G17 local MVCC/relational, transação, SQL e index/planner/spill o caminho está concluído e a expansão está ativa em V3-G18. O trabalho do cluster v0.4 está bloqueado por meio da V3-G25 e não foi iniciado. É SQLite/PostgreSQL o equipamento de comparação vive ao lado dos aplicativos em grove/apps/ridge/benchmarks/.

O guia consolidado do usuário e do operador é Ridge Database.

Portando um Grove pacote

Use esta sequência ao mover um pacote para a linguagem limpa:

  1. Execute ./seed/seed check path/to/src/lib.sd e retenha o diagnóstico como initial compatibility inventory.
  2. Substitua a sintaxe herdada: type → enum, nominais de cobra inferior → UpperCamelCase, ret → return, elif → else if, Name.{ } → Name { }, some/none → Some/None, ok/error → Ok/Err, # → //, and built-in channels/send/recv → ordinary task library.
  3. Substitua os auxiliares de tempo de execução implícitos pelas operações seguras atuais do compilador ou por um pacote comum sob seed/compiler/llvm/libs.
  4. Faça alocação, pânico, bloqueio, FFI, propriedade, clone e proveniência efeitos explícitos.
  5. Coloque ponteiros brutos, syscalls, FFI, uniões, atômicos, operações voláteis e memória bruta por trás de wrappers unsafe estreitos.
  6. Adicione um seed.toml; pacotes com declarações extern devem listar plataformas e forneça uma raiz INSTALL.md.
  7. Verifique a compilação direta da fonte e o consumo de .sdi com origem excluída.
  8. Adicione regressões positivas e negativas do compilador antes de documentar o pacote como operacional.

A portabilidade deve preservar o comportamento quando for útil, mas a sintaxe arquivada e os contratos de tempo de execução não são requisitos de compatibilidade para o compilador limpo.

Importações

Os pacotes atuais preparados pelo compilador usam importações de pacotes simples:

use "io"
use "parse"
use "vec"

Prefira importações de pacotes apoiadas por manifestos e .sdi interfaces. Uma importação do caminho de origem do repositório ignora esse limite do pacote e não deve ser introduzida em arquivos convertidos. Grove código.