MiniPureScript compiler (L3 project)
  • OCaml 62.1%
  • PureScript 24.5%
  • C 6.1%
  • Shell 4.2%
  • Standard ML 2.5%
  • Other 0.6%
Find a file
Grégoire LE CORRE dd5f03b041 Clean
2024-01-21 19:35:41 +01:00
.github/workflows Add a key field for GitHub Cache action 2023-12-04 21:50:50 +01:00
iris@c512654563 Update iris 2024-01-21 17:52:35 +01:00
prt First iteration for compiling pattern matching 2024-01-21 14:49:38 +01:00
src Clean 2024-01-21 19:35:41 +01:00
test Add test used in the documentation 2024-01-21 14:52:05 +01:00
.editorconfig Use 2 spaces for indentation 2023-12-13 11:43:37 +01:00
.gitignore Ignore some editor folders 2024-01-18 21:29:51 +01:00
.gitmodules Support a GC using boehm-gc 2024-01-18 23:56:55 +01:00
.ocamlformat Format ! 2023-12-13 09:41:55 +01:00
dune Add Iris codegen library 2024-01-18 21:25:15 +01:00
dune-project Update 2023-12-12 22:12:20 +01:00
Makefile Update test framework 2024-01-19 17:26:58 +01:00
README.md Mis à jour de la doc 2024-01-21 17:57:43 +01:00

MiniPureScript

IMPORTANT: Le code produit par le compilateur a besoin d'une librarie d'exécution implémenté en C (elle se trouve dans PRT, PureScript RunTime). Il suffit de passer l'argument -Lprt/ -lprt à GCC, ou simplement prt/libprt.a. Sinon, il est possible d'utiliser les options -e ou -c du compilateur MiniPureScript pour qu'il appelle lui-même GCC.

Documentation du compilateur

Pour exécuter un fichier `test.ppurs``, il suffit de taper :

./ppurs -e test.ppurs

Ceci générera un fichier assembleur temporaire (dans /tmp), appelera GCC dessus, et exécutera le code à la volée.

Sinon, si aucun argument n'est donné, le compilateur affiche le code assembleur généré dans la sortie standard.

Il est aussi possible de générer un fichier executable (mais de ne pas l'exécuter directement) avec l'option -c. Le compilateur se charge d'appeler GCC en interne tout seul.

Compilation du compilateur

Le projet utilise dune pour sa compilation. Il suffit d'exécuter la commande dune build.

Toutefois, pour simplifier la compilation, un fichier Makefile est aussi fourni :

  • make: compile le compilateur et genére le program ppurs
  • make clear: nettoie les fichiers préalablement générés par make

Test

Le dossier test contient de nombreux tests provenant principalement du sujet, mais pas que.

Il est possible d'exécuter les tests en utilisant les commandes suivantes :

  • make test-syntax: execute les tests de syntaxe
  • make test-typing: execute les tests de typage
  • make test-exec: execute les tests de génération de code
  • make test: execute tous les tests