Conclusión estimada: 35%
Grove Hoja de ruta de conversión
Esta hoja de ruta ordena la conversión de la generación mixta grove/libs corpus a la limpieza operativa LLVM idioma. Compiler/backend el trabajo permanece en seed/compiler/llvm/ROADMAP.md; El trabajo detallado del producto de aprendizaje automático permanece en la raíz del repositorio. roadmap-ml.md.
La unidad de conversión es un paquete, no un archivo fuente individual. La presencia o el éxito del directorio bajo un compilador reemplazado es solo evidencia de inventario.
Línea base del inventario: 2026-07-12
| Métrica | Valor actual |
|---|---|
| Grove directorios de bibliotecas | 218 |
.sd archivos bajo esos directorios |
453 |
totales .sd lineas |
7.291 |
Paquetes con seed.toml |
218 |
Faltan paquetes seed.toml |
0 |
Paquetes con directo extern declaraciones |
0 |
Paquetes con comentarios # heredados en src/ |
0 |
Paquetes con declaraciones nominales en mayúsculas en src/ |
0 |
| Paquetes preparados por el compilador ya operativos | 18 |
Cada paquete Grove ahora tiene un manifiesto.
Ninguna fuente Grove contiene FFI directo. Los paquetes que anteriormente dependían de un propietario extranjero no auditado se archivan explícitamente en el límite de su puerta de embarque.
Análisis de dependencia
El orden de puerta utiliza bordes use explícitos que se encuentran debajo del árbol src/ de cada paquete. Los paquetes de fan-in explícitos más altos son:
| Paquete | Dependientes directos |
|---|---|
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 es un límite inferior. El código fuente heredado a menudo llama a ayudantes de tiempo de ejecución implícitos sin use, y los archivos de referencia con formato incorrecto contienen importaciones concatenadas. Por lo tanto, cada puerta debe actualizar las dependencias después de parsing/porting sus paquetes. El descubrimiento de una dependencia oculta puede mover un paquete a una puerta posterior; nunca debe crear una dependencia silenciosa en un paquete no convertido.
El plan cubre cada biblioteca Grove actual exactamente una vez. G01–G21 contienen diez paquetes cada uno; G22 contiene ocho. Actualmente, ninguna dependencia explícita apunta a una puerta posterior. Las dependencias dentro de una puerta definen el orden interno de esa puerta.
Vocabulario de estado
| Estado | evidencia requerida |
|---|---|
| inventario | el directorio existe; sin reclamo de compatibilidad |
| clasificado | parser/check/build Fallos, FFI, manifiestos y dependencias registradas. |
| portabilidad | implementación de lenguaje limpio en progreso |
| operativo | fuente checks/builds, el manifiesto actual existe, ownership/effects revisado y las pruebas pasan |
| fuente elidida | El paquete operativo también pasa las pruebas de consumo exclusivas de .sdi. |
| instalado | profile/target-qualified install/reuse/uninstall pasa el comportamiento |
| archivado | retenido únicamente como evidencia historical/API/fixture y excluido de las importaciones actuales |
No utilice "implementado" o una marca de verificación simplemente porque existe una fuente heredada.
Contrato de promoción de paquete universal
Cada paquete en cada puerta debe cumplir con todos los requisitos aplicables:
- Disposición: elegir
merge,port,rename,archive, oremove. un Grove paquete que se superpone a un paquete operativo comomath,io,slice,sort,time, ovecno debe crear un segundo paquete canónico con el mismo rol. - Sintaxis: nombres de serpientes inferiores, declaraciones actuales,
ret,//, actual ADTs/options/results y sin legado channel/detached-spawn sintaxis. - Escribiendo: analizador operativo, solucionador, comprobaciones generic/trait y destino Pasan las comprobaciones de diseño.
- Propiedad: movimientos, clones, vistas, inicialización parcial, destructores y Las salidas estructuradas tienen limpieza exacta.
- Efectos: asignación, pánico, bloqueo, I/O, FFI, llamadas al sistema e inseguro El comportamiento es explícito y válido para el perfil de tiempo de ejecución.
- Errores: usos de falla recuperables escritos options/results, no sin marcar centinelas o terminación de procesos ocultos.
- Interfaces: emisión actual
.sdiy paso de consumo eludido en la fuente, incluidos genéricos, destructores, clones, efectos y procedencia, según corresponda. - Manifiesto: identidad, versión, tipo, target/profile metadatos, dependencias,
y
publish --checkpase. - FFI: plataformas y raíz
INSTALL.mdestán presentes; las declaraciones sin procesar permanecen detrás del nominal auditado owners/views. - Validación: positivo, negativo, desinfectante, entrada mal formada y cross-target tests exist in proportion to risk.
- Documentación: ejemplos compilados con
build/run; sin tiempo de ejecución heredado helper is documented as a clean compiler built-in. - Evidencia de cierre: registrar comandos, paquetes, disposiciones, exclusiones,
targets, and test results in
seed/compiler/llvm/tests/GROVE_GXX_BASELINE.md.
Ola 1: fundamentos del lenguaje y el tiempo de ejecución
G01: algoritmos escalares y arnés de conversión
Paquetes: math, format, dtoa, fibonacci, primes, crc32, semver, protocol, test_framework, bench.
Depende de: operativo language/core únicamente.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G01_BASELINE.md.
Cierre específico: resolver superposición con operaciones math, format, y fibonacci; agregar manifiestos faltantes para crc32 y protocol; establecer el reutilizable Grove conversión test/benchmark aprovechar sin globales heredados u ocultos output/time incorporados.
G02: memoria, texto, sectores y sustrato binario
Paquetes: slice, mem, bytes, raw_vec, str, str_view, stringbuilder, binary, sort, set.
Depende de: G01.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G02_BASELINE.md.
Cierre específico: asigne porciones de grasa cruda heredadas y identificadores de bytes a nativos []t/mut []t, bytes, shared_bytes, byte_buffer, vecy la memoria sin procesar actual comprobada. Demuestre la extensión inicializada, la procedencia, la publicación exacta y el comportamiento genérico eludido en la fuente. Auditoría bytes y str_view FFI.
G03 — colecciones y algoritmos de datos reutilizables
Paquetes: hash, hashmap, hashtable, bloom, ringbuf, lru, heap, base64, binary_tree_i64, text_buffer.
Depende de: G01–G02.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G03_BASELINE.md.
Cierre específico: agregar manifiestos para hashtable y binary_tree_i64; reemplazar los mangos en bruto copiables con propietarios nominales; verificar solo movimiento keys/values, error de cambio de tamaño, comportamiento de colisión, límites, entrada binaria con formato incorrecto y limpieza después de una construcción parcial.
G04: proceso, sistema de archivos y base de memoria virtual
Paquetes: errno, time, env, os, process, path, fs, dir, stat, mmap.
Depende de: G01–G03.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G04_BASELINE.md.
Cierre específico: conciliar time/process con paquetes operativos; exponer prestado process/environment vistas de forma segura; hacer descriptores, mapeos, rutas, parciales I/O, disponibilidad de la plataforma y errores del sistema operativo explícitos.
G05 — concurrencia estructurada y sincronización
Paquetes: io, atomic, mutex, cond, rwlock, semaphore, barrier, waitgroup, chan, pool.
Depende de: G01–G04.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G05_BASELINE.md.
Cierre específico: use los paquetes operativos task y io en lugar de los paquetes integrados heredados; codificar puntos finales channel/ticket/lock como propietarios únicos; verificar cancelación, activación de camarero bloqueado, señalización de entrega, orden de memoria, interacción de región y estrés por desinfectante. Auditoría atomic FFI.
G06: bucles de eventos, primitivas de red y plataforma I/O
Paquetes: thread, threadpool, signal, inotify, epoll, net, epoll_loop, eventloop, io_uring, entropy.
Depende de: G01–G05.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G06_BASELINE.md.
Cierre específico: conciliar net con el propietario del enchufe operativo; hacer registration/cancellation y duración del descriptor explícita; aislar Linux-solo servicios en manifiestos; separar las tareas estructuradas de los subprocesos independientes heredados; verifique la entropía como CSPRNG en lugar del PRNG de tiempo de ejecución no secreto.
Wave 2: terminal, CLI, analizadores y seguridad
G07: primitivas de terminal y ayudantes de presentación
Paquetes: tui, tty, terminal, pty, vtbuf, ansi, richtext, progress, prompt, widgets.
Depende de: G01–G06.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G07_BASELINE.md.
Cierre específico: definir terminal propia modes/descriptors, restauración garantizada en salidas estructuradas, UTF-8/byte límites, comportamiento no interactivo y capacidad de prueba de PTY. resolver el tui/tty dependencia de la misma puerta antes terminal y prompt.
G08— TUI composición y CLI autoría
Paquetes: tui_input, tui_surface, tui_layout, tui_core, tui_widgets, tui_test, clap, command, completion, cli.
Depende de: G01–G07.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G08_BASELINE.md.
Cierre específico: puerto en orden de dependencia interna; reemplazar los tipos de UI en mayúsculas; demostrar límites de superficie, resize/input manejo, propiedad del proceso, errores de comando, determinismo de finalización e integración de PTY.
macOS AArch64 cierre de seguimiento (2026-07-26): el TUI Los paquetes ahora proporcionan la ruta de recursos interactiva completa que la línea de base portátil original G08 no mantenía disponible. tui_core posee caja fuerte raw/alternate-screen sesiones y esperas de eventos escritos; tui_input maneja eventos incrementales de teclado, mouse, pegar, cambiar tamaño y temporizador; tui_surface proporciona celdas de grafema Unicode, diferencias ANSI sucias, eliminación de ANSI y control por terminal 8/256/truecolor/no-color política; tui_layout y tui_widgets proporcionar enfoque, diseño y controles de estado reutilizables; y tui_test se une a carreras de eventos sintéticos con vtbuf instantáneas. seed-tui-demo suministra el determinista update/render puerta de la unidad y una prueba de aceptación de PTY de control real que cubre cambio de tamaño, entrada, Unicode, restauración de terminales, señales fatales y contrapresión. Linux revalidación y Windows El soporte del terminal sigue siendo una fase de portabilidad separada.
G09 — configuración y formatos de datos de texto
Paquetes: cli_completion, dotenv, ini, toml, yaml, json, json_parser, csv, xml, markdown.
Depende de: G01–G08.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G09_BASELINE.md.
Cierre específico: devolver errores de análisis escritos con compensaciones de bytes; utilizar vistas prestadas y buffers de bytes; cubierta inválida UTF-8, malformed/truncated documentos, depth/size límites, escape, campos duplicados, entrada de streaming y viajes de ida y vuelta.
G10: configuración de aplicaciones e intercambio binario
Paquetes: cli_config, url, mime, regex, protobuf, msgpack, rowcodec, tar, zip, compress.
Depende de: G01–G09.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G10_BASELINE.md.
Cierre específico: validar URL/range/overflow semántica, seguridad de rutas de archivos, longitudes binarias, peores casos de expresiones regulares, viajes de ida y vuelta de formato y límites de descompresión. Auditoría compress FFI y eliminar el comportamiento respaldado por shell de API seguras.
G11: criptografía, aleatoriedad e identidad
Paquetes: random, uuid, aes, chacha20, hmac, bcrypt, scram, cookies, session, jwt.
Depende de: G01–G10.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G11_BASELINE.md.
Cierre específico: etiquetar API PRNG no criptográficas; fuente de secretos UUID/session/CSRF de entropía auditada; utilizar comparación en tiempo constante cuando sea necesario; validar vectores y token expiry/encoding; cero reservas temporales sensibles cuando el contrato de propiedad lo permita. Auditoría bcrypt FFI.
Evolución posterior al cierre: std-uuid 0.2 agrega construcción y validación RFC 9562 UUIDv7 utilizando milisegundos de reloj de pared alojado y el límite de entropía del sistema operativo auditado. La secuenciación monótona de UUIDv7 a través de la reversión del reloj sigue siendo una política de persistencia de nivel superior en lugar de un estado global de proceso oculto.
Ola 3: creación de redes, HTTP y capas web
G12 — protocolos de red y TLS base
Paquetes: tls, dns, icmp, redis, ssh, smtp, _pooltest, http_headers, http_body, http_cookie_jar.
Depende de: G01–G11.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G12_BASELINE.md.
Cierre específico: auditoría TLS FFI y certificate/hostname política; escriba errores de transporte y tiempos de espera; marcos de protocolo vinculados y nombres DNS; convertir _pooltest en un paquete con nombre o archívelo; demostrar la propiedad de la conexión agrupada y la cookie expiration/domain/path reglas.
G13— HTTP primitivas de análisis, servicio y middleware
Paquetes: http_request, http_response, gzip, multipart, form_body, router, middleware, cors, http_server, http_connection_pool.
Depende de: G01–G12.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G13_BASELINE.md.
Cierre específico: pase fragmented/partial solicitar información, longitudes conflictivas, fragmentación, header/body límites, truncamiento multiparte, ambigüedad de ruta, política CORS, cancelación, mantener vivo y exacto connection/buffer limpieza.
G14— HTTP Clientes, seguridad, almacenamiento en caché y rastreo.
Paquetes: http_client, http_client_tls, http_fetch, cache_http, static, websocket, auth, csrf, crawler, lifecycle.
Depende de: G01–G13.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G14_BASELINE.md.
Cierre específico: verificar redirect/cookie/pool/TLS composición, validadores y rangos de caché, prevención de cruce de rutas, encuadre WebSocket, auth/session/CSRF política, rastreador bounds/rate límites y reversión del ciclo de vida después de una falla parcial.
G15: componentes de creación web
Paquetes: observability, template, webapp, web_request, web_response, web_security, web_static, web_template, web_metrics, websocket_server.
Depende de: G01–G14.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G15_BASELINE.md.
Cierre específico: exponer tipos públicos de serpiente inferior, vistas derivadas de solicitudes verificadas, plantillas con escape de forma predeterminada, HTML sin formato explícito, estado de métricas delimitadas, rutas estáticas seguras, ciclo de vida de WebSocket con tipo y API de controlador de fuente eludida.
G16: tiempo de ejecución web integrado y soporte de aplicaciones
Paquetes: web_core, web_db, web_middleware, web_runtime, web, logging, tensor_graph, sep, table, bench2.
Depende de: G01–G15.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G16_BASELINE.md.
Cierre específico: demuestre un tiempo de ejecución web vertical desde el socket hasta la solicitud analizada hasta la respuesta propia y la limpieza; mantenga los ganchos de base de datos escritos pero neutrales en cuanto al backend; validar el orden del middleware, shutdown/drain, contrapresión de registro, transmisión de búsqueda de archivos, representación de tablas, propiedad de gráficos y un manifiesto para bench2.
Ola 4: almacenamiento, fundamentos del aprendizaje automático y orquestación de alto nivel
G17: motores de almacenamiento y límites de bases de datos nativas
Paquetes: sqlitec, sqlite, pgc, pager, slotted_page, wal, heapfile, btree_page, btree_store, btree.
Depende de: G01–G16.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G17_BASELINE.md.
Cierre específico: auditoría SQLite/libpq Propietarios de FFI y dominios asignadores; agregar el btree manifiesto; página de prueba checksums/layout/versioning, a prueba de accidentes WAL orden, escrituras breves, rechazo de corrupción, limpieza de transacciones e interfaces de almacenamiento con fuente eliminada.
G18: fundamentos de tensores y conjuntos de datos
Paquetes: tensor, tensor_nd, tensor_cpu, tensor_device, metrics, model_io, quantization, datasets, features, text_features.
Depende de: G01–G17.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G18_BASELINE.md.
Cierre específico: establecer uno propio tensor/storage representación; comprobar shape/stride/size desbordamiento, dtype/layout, vistas, transferencia de dispositivos, metadatos serializados, límites de cuantificación, divisiones deterministas de conjuntos de datos y sin copias ocultas entre CPU/device API.
G19: canalizaciones de funciones y capacitación
Paquetes: nn, loss, optim, autograd, mixed_precision, linear_model, anomaly, image_features, audio_features, vision.
Depende de: G01–G18.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G19_BASELINE.md.
Cierre específico: verificar la propiedad y acumulación del gradiente, el estado del optimizador, overflow/loss escalado, fijaciones deterministas, comprobaciones de diferencias finitas, forma segura image/audio transformaciones y limpieza de gráficos de cálculo parcial.
G20: ejecución, compatibilidad y aceleración del modelo
Paquetes: tokenizer, transformer, graph_runtime, onnx, model_compat, tensor_cuda, tensor_bench, vision_features, llm_config, text_dataset.
Depende de: G01–G19.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G20_BASELINE.md.
Cierre específico: encuadernado tokenizer/model entradas, validar operadores de gráficos y datos de tensor externo, rechazar puntos de control incompatibles, auditar CUDA FFI/device propietarios y sincronización, comparar CPU/GPU resultados y establecer reproducibles performance/memory líneas de base.
G21: componentes del modelo entrenado
Paquetes: 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.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G21_BASELINE.md.
Cierre específico: congelar checkpoint/config identidad, entrenamiento e inferencia determinista de modelos diminutos, estado del optimizador reanudable, caché KV limitada, compatibilidad con tokenizadores, contratos tensoriales multimodales, reproducibilidad de la evaluación y limpieza exacta en situaciones fallidas. load/train/infer operaciones.
G22: datos integrados y orquestación de IA
Paquetes: sqlite_migrate, pg, pg_poolc, pg_pool, ridge, llm_experiment, llm_runner, multimodal_coordinator.
Depende de: G01–G21.
Estado: cerrado 2026-07-12. Evidencia: seed/compiler/llvm/tests/GROVE_G22_BASELINE.md.
Cierre específico: validar las migraciones y la propiedad de transacciones agrupadas frente a dispositivos de base de datos en vivo; completo Ridge recovery/corruption pruebas; ejecutar de un extremo a otro LLM experiment/runner/checkpoint fluye; verificar el enrutamiento multimodal y las salidas no compatibles; publicar paquetes instalables con fuentes eliminadas con contenido externo explícito service/data requisitos.
G01–G22 están cerrados. La ejecución en vivo de SQLite/PostgreSQL, Ridge y la ejecución numérica de LLM siguen siendo capacidades archivadas explícitamente en lugar de un cierre simulado.
Gate protocolo de ejecución
- Gates se cierra secuencialmente. Se pueden transferir paquetes independientes dentro de una puerta en paralelo después de que se identifiquen sus dependencias en la misma puerta.
- Inicie cada puerta regenerando su inventario source/import/FFI/manifest y disposición de registro para cada paquete.
- Cambios en el paquete operativo fundamental de la tierra antes de los dependientes Grove puertos; no conserve alias de compatibilidad que socaven la propiedad limpia.
- Ejecute primero las pruebas locales del paquete, luego las eliminadas de origen, sanitizador, destino, paquete, install/reuse y controles de desempeño relevantes.
- Un paquete puede archivarse o eliminarse en lugar de transferirse, pero esa disposición y todas las dependencias inversas deben ser explícitas en la evidencia de puerta.
- Cierre una puerta sólo cuando cada paquete listado sea operational/source-elided o deliberadamente archived/removed, y ningún paquete activo depende de una fuente no clasificada.
- Después del cierre, actualice Referencia de biblioteca operativa, Grove Árbol de compatibilidady cualquier página de dominio afectada.
Definición de finalización
La conversión Grove se completa solo cuando:
- los 218 paquetes básicos tienen una disposición final registrada;
- cada paquete retenido se construye con la sintaxis y la semántica actuales;
- El catálogo operativo se genera a partir de datos verificados. manifests/interfaces;
- ninguna aplicación actual depende del comportamiento de compiler/runtime reemplazado;
- Puertas normales, desinfectantes, de destino, de paquete, de fuente eliminada y de instalación. cubrir el ecosistema retenido en los niveles de soporte declarados;
- La deriva del inventario falla automáticamente en la validación en lugar de cambiar silenciosamente. alcance de la puerta.