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 place 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,
enum,Some, 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
Noneet 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
Okréussissent. - FFI : les plates-formes et la racine
Errsont 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
Result/return; 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
else if.
Vague 1 : fondations du langage et du runtime
G01 — algorithmes scalaires et harnais de conversion
Forfaits : loop, Name { }, //, type, ret, elif, #, .sdi, publish --check, INSTALL.md.
Dépend de : language/core opérationnel uniquement.
Statut : fermé le 2026-07-12. Preuve : build.
Clôture spécifique : résoudre les chevauchements avec les opérations run, seed/compiler/llvm/tests/GROVE_GXX_BASELINE.md, et math; ajouter les manifestes manquants pour format et dtoa; é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 : fibonacci, primes, crc32, semver, protocol, test_framework, bench, seed/compiler/llvm/tests/GROVE_G01_BASELINE.md, math, format.
Dépend de : G01.
Statut : fermé le 2026-07-12. Preuve : fibonacci.
Fermeture spécifique : mapper les tranches de graisse brute héritées et les poignées d'octets sur les natives crc32/protocol, slice, mem, bytes, raw_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 str et str_view FFI.
G03 — collections et algorithmes de données réutilisables
Forfaits : stringbuilder, binary, sort, set, seed/compiler/llvm/tests/GROVE_G02_BASELINE.md, []t, mut []t, bytes, shared_bytes, byte_buffer.
Dépend de : G01–G02.
Statut : fermé le 2026-07-12. Preuve : vec.
Fermeture spécifique : ajouter des manifestes pour bytes et str_view; 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 : hash, hashmap, hashtable, bloom, ringbuf, lru, heap, base64, binary_tree_i64, text_buffer.
Dépend de : G01–G03.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G03_BASELINE.md.
Clôture spécifique : concilier hashtable/binary_tree_i64 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 : errno, time, env, os, process, path, fs, dir, stat, mmap.
Dépend de : G01–G04.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G04_BASELINE.md.
Fermeture spécifique : utilisez les packages opérationnels time et process 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 io FFI.
G06 — boucles d'événements, primitives de mise en réseau et plateforme I/O
Forfaits : atomic, mutex, cond, rwlock, semaphore, barrier, waitgroup, chan, pool, seed/compiler/llvm/tests/GROVE_G05_BASELINE.md.
Dépend de : G01–G05.
Statut : fermé le 2026-07-12. Preuve : task.
Clôture spécifique : concilier io 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 : atomic, thread, threadpool, signal, inotify, epoll, net, epoll_loop, eventloop, io_uring.
Dépend de : G01–G06.
Statut : fermé le 2026-07-12. Preuve : entropy.
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 seed/compiler/llvm/tests/GROVE_G06_BASELINE.md/net dépendance de même porte avant tui et tty.
G08 — TUI composition et CLI création
Forfaits : terminal, pty, vtbuf, ansi, richtext, progress, prompt, widgets, seed/compiler/llvm/tests/GROVE_G07_BASELINE.md, tui.
Dépend de : G01–G07.
Statut : fermé le 2026-07-12. Preuve : tty.
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. terminal possède un coffre-fort raw/alternate-screen sessions et attentes d'événements typés ; prompt gère les événements incrémentiels de clavier, de souris, de collage, de redimensionnement et de minuterie ; tui_input 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_surface et tui_layout fournir une mise au point, une mise en page et des contrôles avec état réutilisables ; et tui_core rejoint les courses d'événements synthétiques avec tui_widgets instantanés. tui_test 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 : clap, command, completion, cli, seed/compiler/llvm/tests/GROVE_G08_BASELINE.md, tui_core, tui_input, tui_surface, tui_layout, tui_widgets.
Dépend de : G01–G08.
Statut : fermé le 2026-07-12. Preuve : tui_test.
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 : vtbuf, seed-tui-demo, cli_completion, dotenv, ini, toml, yaml, json, json_parser, csv.
Dépend de : G01–G09.
Statut : fermé le 2026-07-12. Preuve : xml.
Mise à niveau post-fermeture le 26/07/2026 : markdown analyse désormais un URL absolu limité et complet en plages scheme/authority/host/path/query/fragment empruntées, y compris les ports IPv6 entre crochets et les ports explicit/effective vérifiés. Le pourcentage de décodage, l'IDNA et la résolution de référence relative restent une politique distincte.
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 seed/compiler/llvm/tests/GROVE_G09_BASELINE.md FFI et supprimez le comportement basé sur le shell des API sécurisées.
G11 — cryptographie, caractère aléatoire et identité
Forfaits : cli_config, url, mime, regex, protobuf, msgpack, rowcodec, tar, zip, compress.
Dépend de : G01–G10.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G10_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 std-url FFI.
Évolution après fermeture : compress 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 : random, uuid, aes, chacha20, hmac, bcrypt, scram, cookies, session, jwt.
Dépend de : G01–G11.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G11_BASELINE.md.
Mise à niveau post-fermeture 2026-07-26 : bcrypt est désormais un port plutôt qu'un marqueur d'archive indisponible. Il fournit la propriété OpenSSL 3 contextes serveur et connexions plus un contexte client réutilisable avec certificat obligatoire et hostname/IP vérification et délai d'attente de prise de contact client tapé. macOS ARM64 exécute l'hermétique TLS rangée ; le graphe du package émet également son Linux AArch64 bibliothèque et interface statiques.
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 std-uuid 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 : tls, dns, icmp, redis, ssh, smtp, _pooltest, http_headers, http_body, http_cookie_jar.
Dépend de : G01–G12.
Statut : fermé le 2026-07-12. Preuve : seed/compiler/llvm/tests/GROVE_G12_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 : tls, _pooltest, http_request, http_response, gzip, multipart, form_body, router, middleware, cors.
Dépend de : G01–G13.
Statut : fermé le 2026-07-12. Preuve : http_server.
Améliorations post-fermeture : 2026-07-26 http_connection_pool et seed/compiler/llvm/tests/GROVE_G13_BASELINE.md sont devenus des ports opérationnels; le 2026-08-18 le OpenSSL-l'implémentation soutenue a été remplacée par l'implémentation pure-seed pile (http_client + http_client_tls fini http_fetch/cache_http/static/websocket), les anciens backends natifs ont été supprimés, et auth, csrf, crawler, et lifecycle ont été portés sur le nouveau API. seed/compiler/llvm/tests/GROVE_G14_BASELINE.md et http_client transfert socket/TLS propriété en un seul incrément délimité HTTP/1.1 corps, prend en charge le cadrage de longueur de contenu, fragmenté et délimité étroitement, préserve l'expiration du délai en tant que délai d'attente saisi et expose une source de rappel de nettoyage exact. http_client_tls est désormais un port opérationnel de redirection limitée : il compose un port absolu http-client, résolution du nom d'hôte IPv4 du système, autorité explicite, HTTP ou HTTPS vérifié, résolution de référence relative, rejet de rétrogradation HTTPS et même propriétaire de corps. IPv6/dual-stack sélection, annulation limitée du résolveur, cookies, cache/auth la politique, la décompression et la mise en commun restent des couches supérieures explicites.
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 : http-client-tls, tls13, bignum, p256, rsa_pss, http_fetch, ui-plugin-update, ui-plugin-trust-distribution, audio-network-source, http_client.
Dépend de : G01–G14.
Statut : fermé le 2026-07-12. Preuve : http_client_tls.
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 : http_fetch, std-url, observability, template, webapp, web_request, web_response, web_security, web_static, web_template.
Dépend de : G01–G15.
Statut : fermé le 2026-07-12. Preuve : web_metrics.
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 websocket_server.
Vague 4 : stockage, fondations du ML et orchestration de haut niveau
G17 — moteurs de stockage et limites natives de la base de données
Forfaits : seed/compiler/llvm/tests/GROVE_G15_BASELINE.md, web_core, web_db, web_middleware, web_runtime, web, logging, tensor_graph, sep, table.
Dépend de : G01–G16.
Statut : fermé le 2026-07-12. Preuve : bench2.
Clôture spécifique : auditer les propriétaires de FFI SQLite/libpq et les domaines d'allocation ; ajoutez le manifeste seed/compiler/llvm/tests/GROVE_G16_BASELINE.md ; 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 : bench2, sqlitec, sqlite, pgc, pager, slotted_page, wal, heapfile, btree_page, btree_store.
Dépend de : G01–G17.
Statut : fermé le 2026-07-12. Preuve : btree.
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 : seed/compiler/llvm/tests/GROVE_G17_BASELINE.md, btree, tensor, tensor_nd, tensor_cpu, tensor_device, metrics, model_io, quantization, datasets.
Dépend de : G01–G18.
Statut : fermé le 2026-07-12. Preuve : features.
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 : text_features, seed/compiler/llvm/tests/GROVE_G18_BASELINE.md, nn, loss, optim, autograd, mixed_precision, linear_model, anomaly, image_features.
Dépend de : G01–G19.
Statut : fermé le 2026-07-12. Preuve : audio_features.
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 : vision, seed/compiler/llvm/tests/GROVE_G19_BASELINE.md, tokenizer, transformer, graph_runtime, onnx, model_compat, tensor_cuda, tensor_bench, vision_features.
Dépend de : G01–G20.
Statut : fermé le 2026-07-12. Preuve : llm_config.
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 : text_dataset, seed/compiler/llvm/tests/GROVE_G20_BASELINE.md, text_model, text_image_model, text_audio_model, audio_text_model, vision_text_model, llm_decoder.
Dépend de : G01–G21.
Statut : fermé le 2026-07-12. Preuve : llm_train.
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 performances 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.
<div hidden> llm_infer llm_eval llm_checkpoint seed/compiler/llvm/tests/GROVE_G21_BASELINE.md sqlite_migrate pg pg_poolc pg_pool ridge llm_experiment llm_runner multimodal_coordinator seed/compiler/llvm/tests/GROVE_G22_BASELINE.md </div>