Projet de Compilation
Note : Ce projet a été réalisé avec la version 1.36
d'emscripten et la version 3.9
de LLVM.
Instructions et indications
Vous trouverez dans ce répertoire deux sous-répertoires. Le premier p5-libraries
contient toute la bibliothèque p5 et sera exploité par les sorties d'Emscripten.
Dans le répertoire src/sources
vous pourrez trouver toutes les sources de notre compilateur,
ainsi que les fichiers de tests (dans src/final-tests
). un Makefile est mis à votre disposition pour pouvoir
utiliser le compilateur.
L'éxecutable produit lors de la compilation, parse
, vous permettra de parser les fichier C. Si vous donnez l'option
-o
suivie d'un nom de fichier, il sortira le résultat dans ce fichier plutôt que dans le fichier par défaut output.ll
.
Utilisation du Makefile
make
oumake all
: permet de compiler le compilateur. Produit l'exécutableparse
, à la racine du répertoiresrc
.make run [test name].c
: en remplaçanttest name
par le nom du test que vous souhaitez lancer, vous produirez un code llvm dans output.ll, correspondant au résultat de la compilation du test par notre compilateur.make compll [file].ll
: permet de lancer la compilation du llvm produit via l'outillli
, en passant en paramètrefile
le nom du fichier à prendre.make emcc [file].ll
: permet de compiler à l'aide d'emcc
un fichier.ll
donné en paramètre. Ceci produit un fichierfoo.js
résultant de la compilation. Par ailleurs il faut noter que nous avons par défaut mis les fonctionsmy_draw
etmy_setup
à exporter. Si vous souhaitez exporter d'autres fonctions il sera nécessaire de ne pas utiliser le raccourci crée par ce makefile.make clean
: permet de "nettoyer" le répertoire des fichiers compilés et intermédiaires de compilation.
Liste des tests possibles
Voici la liste (exhaustive) des tests que vous pouvez lancer, et que vous trouverez dans src/final-tests
- boucles
- errors
- fibonacci
- ifAndFunction
- simple
- warnings
Tests impliquant l'utilisation de p5 : (et donc d'emcc)
- get_started_p5
- get_started_advanced
- example_code_ex
- example_code_mandelbrot
Comment réaliser les tests ?
- Tout d'abord, assurez vous d'avoir bien compilé le compilateur : placez vous dans le répertoire
src
. Puis faites :make all
. - Ensuite, compilez le fichier de tests que vous souhaitez :
make run [votrefichier].c
. - Vous pourrez alors voir dans
output.ll
le résultat de la compilation. Pour le tester via le makefile avec le programmelli
, faites :make compll [votrefichier].ll
. Ici votre fichier sera doncoutput
. Vous aurez alors d'affiché le code de retour du programme.
==> Cas particulier : compilation et test avec la bibliothèque p5.js
Plutôt que d'utiliser make compll
utilisez make emcc [votrefichier].ll
où votre fichier sera
vraisemblablement output
. Firefox s'ouvrira alors avec le résultat de la compilation. Par exemple utilisez make run get_started_p5.c
suivi
de make emcc output.ll
pour tester le résultat de la compilation de ce fichier.