Grove Árvore de compatibilidade

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 sintaxe limpa de cobra inferior, produzem interfaces .sdi atuais e participam dos conjuntos de portas do compilador.

Cada pacote grove/libs possui um manifesto atual e um caso de portão. As fontes de biblioteca retidas não contêm comentários hash herdados, declarações nominais em maiúsculas ou FFI direto. Um pacote ainda pode ser deliberadamente archived: sua interface atual valida os limites configuration/ownership enquanto o antigo recurso 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 inventário de compatibilidade inicial.
  2. Substitua a sintaxe herdada: nomes nominais de cobra inferior, ret, //, ADTs atuais, e canais de biblioteca comuns em vez de recursos históricos.
  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.