Lancement des nouvelles régulières de Nit, l'objectif est de garder une liste simple des trucs accomplis, en cours ou en projet (là ou le log des commits est insuffisant).
Les deux gros travaux du mois de juillet furent les annotations et le travail vers suppression de nitc (en faveur du nouveau MM).
Les annotations (commit de3ecaf4264f41436b077e627b1c941372b56fb9) se branchent sur les phases (cf commitcefe2c80f11b595676d65b1419b9891e6acc1fc2) et nécessitent de bien bricoler l'AST.
Le développement de phases simples est déjà semi-documenté (cf. div_by_zero.nit)
Les annotations, et les phases en général, posent aussi une nouvelle-fois le problème de la représentation à utiliser : ast ou icode?
Afin de mieux cerner le problème, un première annotation cached, qui permet de cacher le résultat d'une méthode dans un attribut est en développement. Bien qu'il reste quelques FIXME, le code est relativement lisible, voire simple (cf cached.nit)
Vu qu'il n'y a pas (encore?) de langage intermédiaire, le plus simple est de permettre de bricoler l'AST.
Un nouveau module parser_util permet de fabriquer un morceaux d'AST à partir d'une chaîne ou d'effectuer des requêtes simples de recherche.
Tant qu'à bricoler l'AST, les chaines littérales multi-lignes (triple-quoted strings) on étés ajoutés (commit17fca9389befff163372f1c5b893b3748d5a1819).
Ainsi, on peut maintenant écrire
var code = """
void foo(void) {
int i = {{{une_variable_en_nit}}};
printf("%d", i);
}"""
et c'est beau.
Notons que les accolades des super-chaines on été également triplés pour éviter d'avoir à échapper les accolades dans la majorité des cas.
Alexis et Alexandre travaillent à migrer la FFI et la nitdoc vers le nouveau méta-modèle. L'objectif, à court terme, est de ne plus maintenir l'ancien métamodèle et outils.
En ne conservant qu'un seul MM cela débloquera les évolutions du langage.