coucou747

Ce blog présente principalement les évolutions du compilateur metalang : les nouveaux backends, les nouvelles corrections de bugs, les nouvelles features, nouvaux tests, son utilisation dans le cadre du concours prologin.

le 05/06/2014

Une nouvelle passe de test

J'ai passé une partie de ma soirée à fixer le bug que j'ai cité dans un précédent article : j'ai ajouté une passe pour vérifier l'existance de mauvais returns. Il est désormais impossible de déclarer une fonction qui devrait renvoyer, sans mettre de return à la fin. Il est aussi impossible d'avoir un return dans une allocation de tableau.

La passe retient des codes qui auraient : soit échoué lors de la compilation java, C#, ocaml ou go, soit des codes très sales avec des boucles dans de l'allocation de tableaux. Ce sont ces derniers codes qui sont problématiques car il y a des exemples ou ils compilaient parfaitement bien, à la fois en metalang mais aussi en C#, java, ocaml go, etc... Maintenant ils sont refusés donc tout va bien.

En gros, en metalang, chaque chemin d'execution doit contenir un return à la fin, et une allocation de tableau ne peut contenir que ces returns là.

Dans Catégories/Metalang/Changelog.

Sujets : #metalang #tests