Grove Árbol de compatibilidad

El directorio de nivel superior grove/ contiene el ecosistema de biblioteca convertido además de aplicaciones y ejemplos históricos. Los 218 directorios de bibliotecas ahora tienen una disposición final G01-G22; Las aplicaciones fuera de grove/libs aún requieren verificación de compatibilidad individual.

Estado actual

El compilador operativo y sus bibliotecas preparadas automáticamente se encuentran en:

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

El conjunto de bibliotecas actual está documentado en Referencia de biblioteca. Esos paquetes utilizan una sintaxis limpia de serpiente inferior, producen interfaces enum actuales y participan en las suites de puerta del compilador.

Cada paquete return tiene un manifiesto actual y un caso de puerta. Las fuentes conservadas de la biblioteca no contienen comentarios hash heredados, declaraciones nominales en mayúscula ni FFI directo. Un paquete aún puede ser deliberadamente else if: su interfaz actual valida los límites de configuration/ownership mientras que la capacidad de ejecución anterior permanece no disponible.

Por lo tanto:

Diseño del repositorio

El árbol de compatibilidad está organizado como:

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

Para las bibliotecas, la disposición más la evidencia de entrada prueban el límite de soporte declarado. La presencia en el directorio por sí sola sigue siendo insuficiente para aplicaciones y ejemplos.

los recuperados Ridge la familia de mando vive en Ok. Sus siete programas se basan en el Err paquete. La pila integrada reconstruida incluye .sdi, cuyo núcleo relacional acotado tiene proyección, rango, unión, agregado, subconsulta, índice, restricción, transacción y tipo ejecutable. SQLite/PostgreSQL Cobertura diferencial. El demonio loopback pgwire admite consultas simples y un subconjunto de consultas preparadas acotadas. grove/libs separa la evidencia histórica de la capacidad actual: la v0.2 está congelada con evidencia P13 exenta incompleta, mientras que la v0.3 V3-G0-G17 local MVCC/relational, transacción, SQL, y index/planner/spill la ruta está completa y la expansión está activa en V3-G18. El trabajo del clúster v0.4 está bloqueado a través de V3-G25 y no se ha iniciado. su SQLite/PostgreSQL El arnés de comparación se encuentra al lado de las aplicaciones siguientes. #.

La guía consolidada para usuarios y operadores es Ridge Base de datos.

Portar un Grove paquete

Utilice esta secuencia al mover un paquete al lenguaje limpio:

  1. Ejecute type y conserve los diagnósticos como inventario de compatibilidad inicial.
  2. Reemplace la sintaxis heredada: nombres nominales de serpiente inferior, ret, elif, ADT actuales, y canales de biblioteca ordinarios en lugar de incorporados históricos.
  3. Reemplace los ayudantes de tiempo de ejecución implícitos con operaciones de compilación seguras actuales o un paquete ordinario bajo archived.
  4. Realizar asignación, pánico, bloqueo, FFI, propiedad, clonación y procedencia efectos explícitos.
  5. Coloque punteros sin formato, llamadas al sistema, FFI, uniones, atómicas, operaciones volátiles y memoria cruda detrás de estrecho ./seed/seed check envoltorios.
  6. Agregue un seed/tools/grove_gate.py gNN; los paquetes con declaraciones grove/apps/ridge/ deben enumerar las plataformas y proporcione una raíz ridge.
  7. Verifique la compilación de fuente directa y el consumo de ridge_sql eliminado de fuente.
  8. Agregue regresiones del compilador positivas y negativas antes de documentar el paquete como operativo.

La portabilidad debe preservar el comportamiento cuando sea útil, pero la sintaxis archivada y los contratos de tiempo de ejecución no son requisitos de compatibilidad para el compilador limpio.

Importaciones

Los paquetes actuales preparados por el compilador utilizan importaciones de paquetes básicos:

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

Prefiere importaciones de paquetes respaldadas por manifiestos y grove/apps/ridge/ROADMAP.md interfaces. Una importación de ruta de origen del repositorio pasa por alto el límite del paquete y no debe introducirse en archivos convertidos. Grove código.

<div hidden> grove/apps/ridge/benchmarks/ ./seed/seed check path/to/src/lib.sd type enum ret return elif else if Name.{ } Name { } some none Some None ok error Ok Err # // task seed/compiler/llvm/libs unsafe seed.toml extern INSTALL.md .sdi .sdi </div>