Conclusion estimée : 35 %
Grove Feuille de route de conversion
Cette feuille de route ordonne la conversion de la génération mixte grove/libs corpus au nettoyage opérationnel LLVM langue. Compiler/backend le travail reste en seed/compiler/llvm/ROADMAP.md; Le travail détaillé sur les produits d'apprentissage automatique reste à la racine du référentiel roadmap-ml.md.
L'unité de conversion est un package et non un fichier source individuel. La présence ou le succès d'un répertoire sous un compilateur remplacé constitue uniquement une preuve d'inventaire.
Référence de l'inventaire — 2026-07-12
| Métrique | Valeur actuelle |
|---|---|
| Grove répertoires de bibliothèques | 218 |
.sd fichiers sous ces répertoires |
453 |
Total .sd lignes |
7 291 |
Forfaits avec seed.toml |
218 |
Paquets manquants seed.toml |
0 |
Forfaits avec direct extern déclarations |
0 |
Packages avec des commentaires # hérités dans src/ |
0 |
Packages avec déclarations nominales majuscules en src/ |
0 |
| Packages par étapes du compilateur déjà opérationnels | 18 |
Chaque package Grove dispose désormais d’un manifeste.
Aucune source Grove ne contient de FFI direct. Les paquets qui dépendaient auparavant d'un propriétaire étranger non audité sont explicitement archivés à leur limite de porte.
Analyse des dépendances
L'ordre des portes utilise des arêtes use explicites trouvées sous l'arborescence src/ de chaque package. Les packages de fan-in explicites les plus élevés sont :
| Forfait | Personnes à charge directes |
|---|---|
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 |
Ce graphique est une limite inférieure. La source héritée appelle souvent des assistants d'exécution implicites sans use, et les fichiers de référence mal formés contiennent des importations concaténées. Chaque porte doit donc rafraîchir les dépendances après parsing/porting ses packages. La découverte d'une dépendance cachée peut déplacer un paquet vers une porte ultérieure ; il ne doit jamais créer de dépendance silencieuse sur un package non converti.
Le plan couvre chaque bibliothèque Grove actuelle une seule fois. G01 à G21 contiennent chacun dix packages ; G22 en contient huit. Aucune dépendance actuellement explicite ne pointe vers une porte ultérieure. Les dépendances à l'intérieur d'une porte définissent l'ordre interne de cette porte.
Vocabulaire de statut
| Statut | Preuve requise |
|---|---|
| inventaire | le répertoire existe ; aucune réclamation de compatibilité |
| classé | parser/check/build échecs, FFI, manifestes et dépendances enregistrés |
| portage | mise en œuvre d'un langage propre en cours |
| opérationnel | source checks/builds, le manifeste actuel existe, ownership/effects examiné et les tests réussissent |
| source-élidée | le package opérationnel passe également .sdi-uniquement des tests consommateurs |
| installé | profile/target-qualified install/reuse/uninstall le comportement passe |
| archivé | conservé uniquement comme preuve historical/API/fixture et exclu des importations actuelles |
N'utilisez pas « implémenté » ou une coche simplement parce qu'une source héritée existe.
Contrat de promotion forfait universel
Chaque colis dans chaque porte doit satisfaire à toutes les exigences applicables :
- Disposition : choisir
merge,port,rename,archive, ouremove. Un Grove package qui chevauche un package opérationnel tel quemath,io,slice,sort,time, ouvecne doit pas créer un deuxième package canonique avec le même rôle. - Syntaxe : noms de serpent inférieur, déclarations actuelles,
ret,//, actuelle ADTs/options/results, et pas d'héritage channel/detached-spawn syntaxe. - Saisie : analyseur opérationnel, résolveur, vérifications generic/trait et cible les contrôles de mise en page réussissent.
- Propriété : déplacements, clones, vues, initialisation partielle, destructeurs et les sorties structurées ont un nettoyage exact.
- Effets : allocation, panique, blocage, I/O, FFI, appels système et non sécurisé les comportements sont explicites et valides pour le profil d'exécution.
- Erreurs : l'échec récupérable utilise le type options/results, non décoché sentinelles ou terminaison de processus cachée.
- Interfaces : émission actuelle de
.sdiet passe de consommation à la source, y compris les génériques, le destructeur, le clone, les effets et la provenance, le cas échéant. - Manifeste : identité, version, genre, target/profile métadonnées, dépendances,
et
publish --checkréussissent. - FFI : les plates-formes et la racine
INSTALL.mdsont présentes ; les déclarations brutes restent derrière la valeur nominale auditée owners/views. - Validation : positif, négatif, désinfectant, entrée malformée et cross-target tests exist in proportion to risk.
- Documentation : exemples compilés avec
build/run; pas d'environnement d'exécution existant helper is documented as a clean compiler built-in. - Preuve de clôture : enregistre les commandes, les colis, les dispositions, les exclusions,
targets, and test results in
seed/compiler/llvm/tests/GROVE_GXX_BASELINE.md.
Vague 1 : fondations du langage et du runtime
G01 — algorithmes scalaires et harnais de conversion
Forfaits : math, format, dtoa, fibonacci, primes, crc32, semver, protocol, test_framework, bench.
Dépend de : language/core opérationnel uniquement.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G01_BASELINE.md.
Clôture spécifique : résoudre les chevauchements avec les opérations math, format, et fibonacci; ajouter les manifestes manquants pour crc32 et protocol; établir le réutilisable Grove transformation test/benchmark exploiter sans globals hérités ou cachés output/time intégrés.
G02 — mémoire, texte, tranches et substrat binaire
Forfaits : slice, mem, bytes, raw_vec, str, str_view, stringbuilder, binary, sort, set.
Dépend de : G01.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G02_BASELINE.md.
Fermeture spécifique : mapper les tranches de graisse brute héritées et les poignées d'octets sur les natives []t/mut []t, bytes, shared_bytes, byte_buffer, vec, et la mémoire brute actuellement vérifiée. Prouvez l’étendue initialisée, la provenance, la version exacte et le comportement générique élidé à la source. Vérification bytes et str_view FFI.
G03 — collections et algorithmes de données réutilisables
Forfaits : hash, hashmap, hashtable, bloom, ringbuf, lru, heap, base64, binary_tree_i64, text_buffer.
Dépend de : G01–G02.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G03_BASELINE.md.
Fermeture spécifique : ajouter des manifestes pour hashtable et binary_tree_i64; remplacer les poignées brutes copiables par des propriétaires nominaux ; vérifier le déplacement uniquement keys/values, échec de redimensionnement, comportement de collision, limites, entrée binaire mal formée et nettoyage après une construction partielle.
G04 - base de processus, de système de fichiers et de mémoire virtuelle
Forfaits : errno, time, env, os, process, path, fs, dir, stat, mmap.
Dépend de : G01–G03.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G04_BASELINE.md.
Clôture spécifique : concilier time/process avec des packages opérationnels ; exposer emprunté process/environment des vues en toute sécurité ; créer des descripteurs, des mappages, des chemins, des partiels I/O, la disponibilité de la plate-forme et les erreurs du système d'exploitation sont explicites.
G05 — concurrence structurée et synchronisation
Forfaits : io, atomic, mutex, cond, rwlock, semaphore, barrier, waitgroup, chan, pool.
Dépend de : G01–G04.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G05_BASELINE.md.
Fermeture spécifique : utilisez les packages opérationnels task et io au lieu des anciens packages intégrés ; encoder les points de terminaison channel/ticket/lock en tant que propriétaires exacts une fois ; vérifiez l'annulation, le réveil bloqué du serveur, la suppression de la signalisation, l'ordre de la mémoire, l'interaction entre les régions et le stress du désinfectant. Audit atomic FFI.
G06 — boucles d'événements, primitives de mise en réseau et plateforme I/O
Forfaits : thread, threadpool, signal, inotify, epoll, net, epoll_loop, eventloop, io_uring, entropy.
Dépend de : G01–G05.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G06_BASELINE.md.
Clôture spécifique : concilier net avec le propriétaire de la socket opérationnelle ; faire registration/cancellation et durée de vie du descripteur explicite ; isoler Linux-uniquement les services dans les manifestes ; séparer les tâches structurées des anciens threads détachés ; vérifiez l'entropie en tant que CSPRNG plutôt que le PRNG d'exécution non secret.
Vague 2 : terminal, CLI, analyseurs et sécurité
G07 — primitives de terminal et aides à la présentation
Forfaits : tui, tty, terminal, pty, vtbuf, ansi, richtext, progress, prompt, widgets.
Dépend de : G01–G06.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G07_BASELINE.md.
Fermeture spécifique : définir le terminal détenu modes/descriptors, restauration garantie sur les sorties structurées, UTF-8/byte limites, comportement non interactif et testabilité PTY. Résoudre le tui/tty dépendance de même porte avant terminal et prompt.
G08 — TUI composition et CLI création
Forfaits : tui_input, tui_surface, tui_layout, tui_core, tui_widgets, tui_test, clap, command, completion, cli.
Dépend de : G01–G07.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G08_BASELINE.md.
Fermeture spécifique : port dans l'ordre des dépendances internes ; remplacer les types d'interface utilisateur en majuscules ; prouver les limites de la surface, resize/input gestion, propriété des processus, erreurs de commande, déterminisme d'achèvement et intégration PTY.
macOS AArch64 Clôture du suivi (2026-07-26) : le TUI Les packages fournissent désormais le chemin de ressource interactif complet que la ligne de base portable G08 d'origine maintenait indisponible. tui_core possède un coffre-fort raw/alternate-screen sessions et attentes d’événements typés ; tui_input gère les événements incrémentiels de clavier, de souris, de collage, de redimensionnement et de minuterie ; tui_surface fournit des cellules de graphème Unicode, des différences ANSI sales, un décapage ANSI et des commandes pilotées par terminal 8/256/truecolor/no-color politique; tui_layout et tui_widgets fournir une mise au point, une mise en page et des contrôles avec état réutilisables ; et tui_test rejoint les courses d'événements synthétiques avec vtbuf instantanés. seed-tui-demo fournit le déterministe update/render porte d'unité et un véritable test d'acceptation de contrôle-PTY couvrant le redimensionnement, l'entrée, l'Unicode, la restauration des terminaux, les signaux fatals et la contre-pression. Linux revalidation et Windows la prise en charge des terminaux reste des phases de portabilité distinctes.
G09 — formats de données de configuration et de texte
Forfaits : cli_completion, dotenv, ini, toml, yaml, json, json_parser, csv, xml, markdown.
Dépend de : G01–G08.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G09_BASELINE.md.
Fermeture spécifique : renvoie les erreurs d'analyse typées avec des décalages d'octets ; utiliser des vues empruntées et des tampons d'octets ; couverture invalide UTF-8, malformed/truncated documents, depth/size limites, échappement, champs en double, entrée en streaming et allers-retours.
G10 — configuration d'application et échange binaire
Forfaits : cli_config, url, mime, regex, protobuf, msgpack, rowcodec, tar, zip, compress.
Dépend de : G01–G09.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G10_BASELINE.md.
Fermeture spécifique : valider URL/range/overflow sémantique, sécurité du chemin d'archive, longueurs binaires, pires cas d'expression régulière, allers-retours de format et limites de décompression. Vérification compress FFI et supprimez le comportement basé sur le shell des API sécurisées.
G11 — cryptographie, caractère aléatoire et identité
Forfaits : random, uuid, aes, chacha20, hmac, bcrypt, scram, cookies, session, jwt.
Dépend de : G01–G10.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G11_BASELINE.md.
Fermeture spécifique : étiqueter les API PRNG non cryptographiques ; source UUID/session/CSRF les secrets de l'entropie auditée ; utiliser une comparaison à temps constant si nécessaire ; valider les vecteurs et le jeton expiry/encoding; zéro tampon temporaire sensible là où le contrat de propriété le permet. Vérification bcrypt FFI.
Évolution après fermeture : std-uuid 0.2 ajoute la construction et la validation RFC 9562 UUIDv7 à l'aide des millisecondes de l'horloge murale hébergée et de la limite d'entropie auditée du système d'exploitation. Le séquençage monotone UUIDv7 lors de la restauration de l'horloge reste une politique de persistance de niveau supérieur plutôt qu'un état global caché du processus.
Vague 3 — mise en réseau, HTTP et les couches Web
G12 — protocoles réseau et TLS base
Forfaits : tls, dns, icmp, redis, ssh, smtp, _pooltest, http_headers, http_body, http_cookie_jar.
Dépend de : G01–G11.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G12_BASELINE.md.
Clôture spécifique : audit TLS FFI et certificate/hostname politique; tapez les erreurs de transport et les délais d'attente ; trames de protocole liées et noms DNS ; convertir _pooltest dans un package nommé ou archivez-le ; prouver la propriété de la connexion groupée et du cookie expiration/domain/path règles.
G13 — HTTP primitives d'analyse, de service et de middleware
Forfaits : http_request, http_response, gzip, multipart, form_body, router, middleware, cors, http_server, http_connection_pool.
Dépend de : G01–G12.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G13_BASELINE.md.
Fermeture spécifique : pass fragmented/partial demande d'entrée, longueurs conflictuelles, segmentation, header/body limites, troncature en plusieurs parties, ambiguïté de route, politique CORS, annulation, maintien en vie et précision connection/buffer nettoyage.
G14 — HTTP clients, sécurité, mise en cache et exploration
Forfaits : http_client, http_client_tls, http_fetch, cache_http, static, websocket, auth, csrf, crawler, lifecycle.
Dépend de : G01–G13.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G14_BASELINE.md.
Fermeture spécifique : vérifier redirect/cookie/pool/TLS composition, validateurs et plages de cache, prévention de traversée de chemin, cadrage WebSocket, auth/session/CSRF stratégie, robot d'exploration bounds/rate limites et restauration du cycle de vie après une défaillance partielle.
G15 — composants de création Web
Forfaits : observability, template, webapp, web_request, web_response, web_security, web_static, web_template, web_metrics, websocket_server.
Dépend de : G01–G14.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G15_BASELINE.md.
Fermeture spécifique : expose les types publics de serpent inférieur, les vues dérivées des requêtes vérifiées, les modèles échappés par défaut, le HTML brut explicite, l'état des métriques limité, les chemins statiques sécurisés, le cycle de vie WebSocket typé et les API de gestionnaire élidées à la source.
G16 — exécution Web intégrée et prise en charge des applications
Forfaits : web_core, web_db, web_middleware, web_runtime, web, logging, tensor_graph, sep, table, bench2.
Dépend de : G01–G15.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G16_BASELINE.md.
Fermeture spécifique : prouver un environnement d'exécution Web vertical depuis le socket jusqu'à la demande analysée jusqu'à la réponse et le nettoyage détenus ; garder les hooks DB saisis mais neutres en termes de backend ; validez l'ordre du middleware, shutdown/drain, la contre-pression de journalisation, le streaming de recherche de fichiers, le rendu des tableaux, la propriété des graphiques et un manifeste pour bench2.
Vague 4 : stockage, fondements du ML et orchestration de haut niveau
G17 — moteurs de stockage et limites natives de la base de données
Forfaits : sqlitec, sqlite, pgc, pager, slotted_page, wal, heapfile, btree_page, btree_store, btree.
Dépend de : G01–G16.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G17_BASELINE.md.
Clôture spécifique : auditer les propriétaires de FFI SQLite/libpq et les domaines d'allocation ; ajoutez le manifeste btree ; prouvez la page checksums/layout/versioning, la commande WAL sécurisée, les écritures courtes, le rejet de corruption, le nettoyage des transactions et les interfaces de stockage élidées à la source.
G18 — Fondements des tenseurs et des ensembles de données
Forfaits : tensor, tensor_nd, tensor_cpu, tensor_device, metrics, model_io, quantization, datasets, features, text_features.
Dépend de : G01–G17.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G18_BASELINE.md.
Fermeture spécifique : établir une fermeture spécifique tensor/storage représentation; vérifier shape/stride/size débordement, dtype/layout, vues, transfert de périphérique, métadonnées sérialisées, limites de quantification, divisions d'ensembles de données déterministes et aucune copie cachée dans CPU/device API.
G19 — pipelines de formation et de fonctionnalités
Forfaits : nn, loss, optim, autograd, mixed_precision, linear_model, anomaly, image_features, audio_features, vision.
Dépend de : G01–G18.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G19_BASELINE.md.
Fermeture spécifique : vérifier la propriété et l'accumulation du gradient, l'état de l'optimiseur, overflow/loss mise à l'échelle, montages déterministes, vérifications aux différences finies, sécurité de forme image/audio transformations et nettoyage des graphiques de calcul partiels.
G20 — exécution, compatibilité et accélération du modèle
Forfaits : tokenizer, transformer, graph_runtime, onnx, model_compat, tensor_cuda, tensor_bench, vision_features, llm_config, text_dataset.
Dépend de : G01–G19.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G20_BASELINE.md.
Fermeture spécifique : reliée tokenizer/model entrées, valider les opérateurs graphiques et les données de tenseurs externes, rejeter les points de contrôle incompatibles, auditer CUDA FFI/device propriétaires et synchronisation, comparer CPU/GPU résultats et établir des résultats reproductibles performance/memory lignes de base.
G21 — composants du modèle formés
Forfaits : text_model, text_image_model, text_audio_model, audio_text_model, vision_text_model, llm_decoder, llm_train, llm_infer, llm_eval, llm_checkpoint.
Dépend de : G01–G20.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G21_BASELINE.md.
Fermeture spécifique : gel checkpoint/config identité, formation et inférence déterministes de petits modèles, état de l'optimiseur pouvant être repris, cache KV limité, compatibilité du tokenizer, contrats tenseurs multimodaux, reproductibilité de l'évaluation et nettoyage exact en cas d'échec load/train/infer opérations.
G22 — orchestration intégrée des données et de l'IA
Forfaits : sqlite_migrate, pg, pg_poolc, pg_pool, ridge, llm_experiment, llm_runner, multimodal_coordinator.
Dépend de : G01–G21.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G22_BASELINE.md.
Clôture spécifique : valider les migrations et la propriété des transactions groupées par rapport aux appareils de base de données en direct ; complet Ridge recovery/corruption tests; exécuter de bout en bout LLM experiment/runner/checkpoint flux ; vérifier le routage multimodal et les sorties non prises en charge ; publier des packages installables avec source élidée avec un externe explicite service/data exigences.
G01–G22 sont fermés. L'exécution en direct SQLite/PostgreSQL, l'exécution Ridge et l'exécution numérique LLM restent des fonctionnalités explicitement archivées plutôt qu'une fermeture simulée.
Gate protocole d'exécution
- Gates se ferme séquentiellement. Des packages indépendants à l'intérieur d'une porte peuvent être portés en parallèle après que leurs dépendances de même porte aient été identifiées.
- Démarrez chaque porte en régénérant son inventaire source/import/FFI/manifest et disposition d'enregistrement pour chaque colis.
- Effectuer des modifications fondamentales du package opérationnel avant les ports Grove dépendants ; ne conservez pas les alias de compatibilité qui nuisent à la propriété propre.
- Exécutez d'abord les tests locaux du package, puis les tests d'élimination de la source, du désinfectant, de la cible, du package, install/reuse et les contrôles de performance pertinents.
- Un paquet peut être archivé ou supprimé au lieu d'être porté, mais cette disposition et toutes les dépendances inverses doivent être explicites dans les preuves de porte.
- Fermez une porte uniquement lorsque chaque package répertorié est operational/source-elided ou délibérément archived/removed, et aucun package actif ne dépend d'une source non classifiée.
- Après la fermeture, mettez à jour Operational Library Reference, Grove Arbre de compatibilité, et toute page de domaine concernée.
Définition d'achèvement
La conversion Grove est terminée uniquement lorsque :
- les 218 colis de base ont tous une décision finale enregistrée ;
- chaque package conservé est construit avec la syntaxe et la sémantique actuelles ;
- le catalogue opérationnel est généré à partir de données vérifiées manifests/interfaces;
- aucune application actuelle ne dépend du comportement obsolète de compiler/runtime ;
- portes normales, de désinfectant, de cible, d'emballage, d'élidage à la source et d'installation couvrir l’écosystème conservé aux niveaux de soutien déclarés ;
- la dérive des stocks échoue automatiquement à la validation au lieu de changer silencieusement portée de porte.