103 views
 owned this note
# Journal de bord Rustre [TOC] :::info **Tuto: comment se souvenir de ce qu'on a fait un jour donné ?** * Discord * [🔗 Historique des commits](https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23/26/rustre/-/commits/main) ::: ## Mention importante Le projet Rustre avait été originellement créé comme projet personnel. On part donc d'une base pré-existante (presque uniquement constituée d'un lexeur-parseur). ## Lundi 16 Janvier ### `rustre-parser` * Correction de la localisation des erreurs dans les fichiers sources: les erreurs reportées par le parseur contiennent l'emplacement de l'erreur * Nettoyage de l'interface publique de `rustre_parser` en vue de commencer à l'utiliser dans un module "parent" ### documentation * mise en place de la documentation avec mdbook * rédaction de pages sur l'architecture du projet ## Lundi 23 Janvier ### Intégration continue * Ajout d'une pipeline d'intégration continue qui teste l'intégralité du projet (des tests unitaires étaient déjà en place sur le parseur). Certains tests non-déterministes ont été rendu optionnels afin de ne pas s'exécuter en CI. * Cette pipeline permet également de construire la **rustdoc** (documentation de l'API des modules) [![](https://img.shields.io/badge/docs-rustre__parser-green)](https://projets-info4.gricad-pages.univ-grenoble-alpes.fr/22-23/26/rustre/rustre_parser/) [![](https://img.shields.io/badge/docs-rustre__core-green)](https://projets-info4.gricad-pages.univ-grenoble-alpes.fr/22-23/26/rustre/rustre_core/) ## Lundi 30 Janvier ### `rustre-parser` * Ajout de quelques règles ungrammar au parseur * Intégration de salsa au projet ## Lundi 6 Février * Création de yéter, un framework de calcul incrémental pour remplacer [`salsa`](https://lib.rs/crates/salsa) <details><summary>Explication de la blague</summary> <img src="https://media.discordapp.net/attachments/1062020724275023912/1072529234809061396/Yeter.jpg?width=493&height=447"> <p> <i>Salsa = sauce</i> </p> </details> ## Lundi 20 Février * Rédaction du livre de documentation ### `yeter` * Nouvelle version de yéter * Intégration de yéter au reste du projet (et suppression de salsa) ### `rustre-parser` * Ajout de nouvelles règles ungrammar ### `rustre-core` * Travail (en avance) sur un système pour supporter l'initialisation partielle des variables lustres. Ecriture d'un jeu de tests. ![](https://media.discordapp.net/attachments/1062020724275023912/1078723255952740372/image.png) ## Lundi 27 Février * Complétion des LeftNodes ungrammar * Début du TypeChecker * Préparation de la présentation pour la soutenance ## Mardi 28 Février * Rédaction du livre de documentation * Complétion du système de génération de graphes d'expressions dans les noeuds. ![](https://media.discordapp.net/attachments/1062020724275023912/1079161114555854888/image.png?width=463&height=447) Le système est toujours très incomplet et ne supporte qu'un petit sous-ensemble d'opérateurs. ## Lundi 6 Mars * Yéter : début d'une implémentation d'un système d'effets de bords pour gérer les erreurs de compilation ### Docs * Rédaction d'une page sur l'initialisation partielle ## Mardi 7 Mars * Début d'implémentation d'un point d'entrée pour l'interpréteur embarqué, qui interragis en entrée/sortie avec du CSV * Nous sommes évidemment bloqués par le type-checker, mais les fondations sont déjà posées pour cet interpréteur ## Lundi 13 Mars * Fin de l'implémentation dans yéter des effets de bords, publication de la version 0.3.0 ### Docs * Ajout de détails sur les différentes implémentations possibles d'initialisation partielle * Début de rédaction d'une page sur le type-checking ## Mardi 14 Mars ### `rustre-core` * Création de queries yéter pour la résolution de nom * Avancée dans le type-checking ## Lundi 20 Mars ### `rustre-core` * Mise à jour de yéter vers une version avec plus de fonctionnalités, développée en parallèle * Merge de plusieurs branches pour repartir d'une bonne base commune pas trop divergente de `main` * Ajout de queries pour la résolution de nom (trouver à quelle constante/variable une expression "ident" se réfère) ## Mardi 21 Mars ### `yeter` * Ajout de nombreuses fonctionnalités à yéter, pour permettre d'atteindre des meilleurs performances (support des lifetimes ou des types génériques dans les queries yéter, ce qui rend possible du passage de références) * Correction de bugs ### `rustre-core` * Suppression de la représentation intermédiaire en graphe, jugée pas pertinente au vu du paradigme encouragé par yéter (enrichissement de l'AST, plutôt que rafinement de celui-ci). * Début de création d'une query pour évaluer la quantité de mémoire qu'un nœud Lustre a besoin d'avoir à sa disposition pour faire persister des données entre chaque "invocation", lors de l'utilisation d'opérateurs temporels (`pre`, `->`, `fby`) * Commencement de l'interpréteur d'expressions constantes ## Lundi 27 Mars ### `rustre-core` * Avancement de l'interpréteur d'expressions constantes + vérification à l'aide de tests * Type-checking des Left Nodes complété, refactoring du fichier types.rs et début de la query générale de type-checking avec l'ajout d'un type Tuple