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:
- distinguir los paquetes operational/ported de los archivados deliberadamente;
- no copie ejemplos de Grove en las guías de idiomas actuales sin compilar
ellos con
Some; - no infiera un compilador integrado a partir de una función no calificada utilizada por el legado Grove código;
- utilice
Noney la línea base coincidente como evidencia de compatibilidad; - Promocione un paquete al catálogo actual solo después de que lo analice, verifique, construye y tiene una corriente explícita ownership/effects/interface contrato.
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:
- Ejecute
typey conserve los diagnósticos como inventario de compatibilidad inicial. - Reemplace la sintaxis heredada: nombres nominales de serpiente inferior,
ret,elif, ADT actuales, y canales de biblioteca ordinarios en lugar de incorporados históricos. - Reemplace los ayudantes de tiempo de ejecución implícitos con operaciones de compilación seguras actuales o un
paquete ordinario bajo
archived. - Realizar asignación, pánico, bloqueo, FFI, propiedad, clonación y procedencia efectos explícitos.
- Coloque punteros sin formato, llamadas al sistema, FFI, uniones, atómicas, operaciones volátiles y
memoria cruda detrás de estrecho
./seed/seed checkenvoltorios. - Agregue un
seed/tools/grove_gate.py gNN; los paquetes con declaracionesgrove/apps/ridge/deben enumerar las plataformas y proporcione una raízridge. - Verifique la compilación de fuente directa y el consumo de
ridge_sqleliminado de fuente. - 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.
Documentación relacionada
- Bibliotecas básicas integradas y estándar
- Referencia de biblioteca
- CLI Libro de cocina
- Hoja de ruta de la biblioteca
- Bibliotecas externas
- Estado actual
<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>